diff --git a/base/assets/gm4/font/container_gui.json b/base/assets/gm4/font/container_gui.json new file mode 100644 index 0000000000..cb030f2a59 --- /dev/null +++ b/base/assets/gm4/font/container_gui.json @@ -0,0 +1,11 @@ +{ + "providers": [ + { + "type": "space", + "advances": { + "\uf824": 3, + "\uf808": -10 + } + } + ] +} diff --git a/base/assets/gm4/font/default.json b/base/assets/gm4/font/default.json new file mode 100644 index 0000000000..79982124a2 --- /dev/null +++ b/base/assets/gm4/font/default.json @@ -0,0 +1,18 @@ +{ + "providers": [ + { + "type": "space", + "advances": { + " ": 4, + "\u200c": 0 + } + }, + { + "type": "ttf", + "file": "gm4:minecraft.ttf", + "shift": [0,-0.5], + "size": 13, + "oversample": 7 + } + ] +} diff --git a/base/assets/gm4/font/half_invert.json b/base/assets/gm4/font/half_invert.json new file mode 100644 index 0000000000..0be4596248 --- /dev/null +++ b/base/assets/gm4/font/half_invert.json @@ -0,0 +1,18 @@ +{ + "providers": [ + { + "type": "space", + "advances": { + " ": -2, + "\u200c": 0 + } + }, + { + "type": "ttf", + "file": "gm4:minecraft.ttf", + "shift": [0, -32768], + "size": -6.5, + "oversample": 1.0 + } + ] +} diff --git a/base/assets/gm4/font/minecraft.ttf b/base/assets/gm4/font/minecraft.ttf new file mode 100644 index 0000000000..079171abb3 Binary files /dev/null and b/base/assets/gm4/font/minecraft.ttf differ diff --git a/base/assets/gm4/font/offscreen.json b/base/assets/gm4/font/offscreen.json new file mode 100644 index 0000000000..3228dc92df --- /dev/null +++ b/base/assets/gm4/font/offscreen.json @@ -0,0 +1,18 @@ +{ + "providers": [ + { + "type": "space", + "advances": { + " ": 4, + "\u200c": 0 + } + }, + { + "type": "ttf", + "file": "gm4:minecraft.ttf", + "shift": [0, -32768], + "size": 13, + "oversample": 1.0 + } + ] +} diff --git a/base/assets/gm4/lang/en_us.json b/base/assets/gm4/lang/en_us.json new file mode 100644 index 0000000000..1a317bab82 --- /dev/null +++ b/base/assets/gm4/lang/en_us.json @@ -0,0 +1,3 @@ +{ + "gm4.second": "%2$s" +} diff --git a/base/assets/gm4/models/block/cube_with_plate.json b/base/assets/gm4/models/block/cube_with_plate.json new file mode 100644 index 0000000000..a6c95e430f --- /dev/null +++ b/base/assets/gm4/models/block/cube_with_plate.json @@ -0,0 +1,143 @@ +{ + "parent": "minecraft:block/cube", + "elements": [ + { + "name": "plate", + "from": [ + 1.0, + 16.0, + 1.0 + ], + "to": [ + 15.0, + 17.0, + 15.0 + ], + "faces": { + "north": { + "texture": "#plate", + "uv": [ + 1.0, + 0.0, + 15.0, + 1.0 + ] + }, + "east": { + "texture": "#plate", + "uv": [ + 1.0, + 0.0, + 15.0, + 1.0 + ] + }, + "south": { + "texture": "#plate", + "uv": [ + 1.0, + 0.0, + 15.0, + 1.0 + ] + }, + "west": { + "texture": "#plate", + "uv": [ + 1.0, + 0.0, + 15.0, + 1.0 + ] + }, + "up": { + "texture": "#plate", + "uv": [ + 1.0, + 1.0, + 15.0, + 15.0 + ] + }, + "down": { + "texture": "#plate", + "uv": [ + 1.0, + 1.0, + 15.0, + 15.0 + ] + } + } + }, + { + "name": "cube", + "from": [ + 0.0, + 0.0, + 0.0 + ], + "to": [ + 16.0, + 16.0, + 16.0 + ], + "faces": { + "north": { + "texture": "#front", + "uv": [ + 0.0, + 0.0, + 16.0, + 16.0 + ] + }, + "east": { + "texture": "#side", + "uv": [ + 0.0, + 0.0, + 16.0, + 16.0 + ] + }, + "south": { + "texture": "#side", + "uv": [ + 0.0, + 0.0, + 16.0, + 16.0 + ] + }, + "west": { + "texture": "#side", + "uv": [ + 0.0, + 0.0, + 16.0, + 16.0 + ] + }, + "up": { + "texture": "#top", + "uv": [ + 0.0, + 0.0, + 16.0, + 16.0 + ] + }, + "down": { + "texture": "#bottom", + "uv": [ + 0.0, + 0.0, + 16.0, + 16.0 + ] + } + } + } + ] +} diff --git a/base/assets/gm4/models/block/plate.json b/base/assets/gm4/models/block/plate.json new file mode 100644 index 0000000000..26e79d8095 --- /dev/null +++ b/base/assets/gm4/models/block/plate.json @@ -0,0 +1,73 @@ +{ + "elements": [ + { + "name": "plate", + "from": [ + 1.0, + 16.0, + 1.0 + ], + "to": [ + 15.0, + 17.0, + 15.0 + ], + "faces": { + "north": { + "texture": "#top", + "uv": [ + 1.0, + 0.0, + 15.0, + 1.0 + ] + }, + "east": { + "texture": "#top", + "uv": [ + 1.0, + 0.0, + 15.0, + 1.0 + ] + }, + "south": { + "texture": "#top", + "uv": [ + 1.0, + 0.0, + 15.0, + 1.0 + ] + }, + "west": { + "texture": "#top", + "uv": [ + 1.0, + 0.0, + 15.0, + 1.0 + ] + }, + "up": { + "texture": "#top", + "uv": [ + 1.0, + 1.0, + 15.0, + 15.0 + ] + }, + "down": { + "texture": "#top", + "uv": [ + 1.0, + 1.0, + 15.0, + 15.0 + ] + } + } + } + ] +} diff --git a/base/assets/gm4/textures/gui/advancement/root.png b/base/assets/gm4/textures/gui/advancement/root.png new file mode 100644 index 0000000000..7cc4eb8b1b Binary files /dev/null and b/base/assets/gm4/textures/gui/advancement/root.png differ diff --git a/base/assets/gm4/textures/gui/container/empty_dropper.png b/base/assets/gm4/textures/gui/container/empty_dropper.png new file mode 100644 index 0000000000..87119b1a11 Binary files /dev/null and b/base/assets/gm4/textures/gui/container/empty_dropper.png differ diff --git a/base/assets/gm4/textures/gui/container/empty_hopper.png b/base/assets/gm4/textures/gui/container/empty_hopper.png new file mode 100644 index 0000000000..511e9d1fde Binary files /dev/null and b/base/assets/gm4/textures/gui/container/empty_hopper.png differ diff --git a/base/assets/gm4/textures/item/empty.png b/base/assets/gm4/textures/item/empty.png new file mode 100644 index 0000000000..4e6ecf3cab Binary files /dev/null and b/base/assets/gm4/textures/item/empty.png differ diff --git a/base/assets/minecraft/atlases/blocks.json b/base/assets/minecraft/atlases/blocks.json new file mode 100644 index 0000000000..2faa4bfb8e --- /dev/null +++ b/base/assets/minecraft/atlases/blocks.json @@ -0,0 +1,14 @@ +{ + "sources": [ + { + "type": "directory", + "source": "gui", + "prefix": "gui/" + }, + { + "type": "directory", + "source": "entity", + "prefix": "entity/" + } + ] +} \ No newline at end of file diff --git a/base/assets/minecraft/optifine/emissive.properties b/base/assets/minecraft/optifine/emissive.properties new file mode 100644 index 0000000000..3ce7dca01a --- /dev/null +++ b/base/assets/minecraft/optifine/emissive.properties @@ -0,0 +1 @@ +suffix.emissive=_e \ No newline at end of file diff --git a/base/assets/translations.csv b/base/assets/translations.csv new file mode 100644 index 0000000000..b83b9d444b --- /dev/null +++ b/base/assets/translations.csv @@ -0,0 +1,3 @@ +key,en_us +advancement.gm4.root.title,"Gamemode 4", +advancement.gm4.root.description,"Semi-funny blurb about GM4", diff --git a/base/beet.yaml b/base/beet.yaml index 662062e48e..ca6e89a3ae 100644 --- a/base/beet.yaml +++ b/base/beet.yaml @@ -5,7 +5,16 @@ data_pack: load: data: data +resource_pack: + load: + assets: assets + +require: + - gm4.plugins.resource_pack + pipeline: + - beet.contrib.babelbox + - gm4.plugins.resource_pack.build - gm4.plugins.versioning.base meta: @@ -14,3 +23,10 @@ meta: extra_version_injections: advancements: - 'gm4:intro_song/play_song' + model_data: + - item: command_block + reference: gm4:gui/advancement/root + template: generated + babelbox: + load: assets/translations.csv + namespace: gm4_translations diff --git a/beet-dev.yaml b/beet-dev.yaml index 6fd443bfd0..4581857ba4 100644 --- a/beet-dev.yaml +++ b/beet-dev.yaml @@ -1,10 +1,52 @@ -ignore: - - gm4/skin_cache.json - pipeline: - gm4.plugins.list_modules - gm4.plugins.manifest.create + - gm4.plugins.resource_pack.setup + - broadcast: null + extend: beet.yaml + require: + - gm4.plugins.output + - gm4.plugins.player_heads + - gm4.plugins.resource_pack + - beet.contrib.model_merging + - beet.contrib.optifine + - beet.contrib.babelbox + - gm4_guidebook.generate_guidebooks.load_page_data + - gm4_guidebook.generate_guidebooks.load_custom_recipes + - gm4.plugins.test.load_tests + pipeline: + - gm4.plugins.write_mcmeta + meta: + gm4_dev: True + mecha: + formatting: + layout: preserve + nbt_compact: True + cmd_compact: True + babelbox: + load: + - assets/translations.csv + - translations.csv + namespace: gm4_translations + unicode_escape: True + dialect: excel + model_merging: + predicate_order: [custom_model_data] + - extend: beet.yaml + directory: resource_pack + pipeline: + - resource_pack.dev_description + - gm4.plugins.resource_pack.pad_model_overrides + - gm4.plugins.resource_pack.link_resource_pack + - gm4.plugins.output.resource_pack + - gm4.plugins.resource_pack.dump_registry + - gm4.plugins.finished meta: autosave: link: false + gm4_dev: True + +ignore: + - gm4/skin_cache.json + - gm4/modeldata_registry.json diff --git a/beet-release.yaml b/beet-release.yaml index 1bb3f487c1..2507679f31 100644 --- a/beet-release.yaml +++ b/beet-release.yaml @@ -1,36 +1,20 @@ pipeline: - gm4.plugins.annotations - gm4.plugins.manifest.create - - gm4.plugins.manifest.update_patch - gm4.plugins.output.clear_release - - gm4.plugins.manifest.write_meta - - broadcast: 'gm4_*' + - gm4.plugins.resource_pack.setup + + - broadcast: 'lib_*' extend: 'beet.yaml' require: - gm4.plugins.annotations.add_module_dir_to_diagnostics - gm4.plugins.output.release - - gm4.plugins.player_heads - - gm4_guidebook.generate_guidebooks.load_page_data - - gm4_guidebook.generate_guidebooks.load_custom_recipes - pipeline: - - gm4.plugins.test.strip_tests - - gm4.plugins.manifest.write_updates - - gm4.plugins.manifest.write_credits - - require: [beet.contrib.copy_files] - meta: {copy_files: {data_pack: {LICENSE.md: "../LICENSE.md"}}} - - gm4.plugins.readme_generator - - gm4.plugins.write_mcmeta - meta: - mecha: - formatting: - layout: preserve - nbt_compact: True - - broadcast: 'lib_*' - extend: 'beet.yaml' + - gm4.plugins.manifest.update_patch pipeline: - beet.contrib.lantern_load.base_data_pack - gm4.plugins.versioning.isolated_library - gm4.plugins.manifest.write_credits + - gm4.plugins.test.strip_tests - require: [beet.contrib.copy_files] meta: copy_files: @@ -40,13 +24,69 @@ pipeline: pack.png: "pack.png" - gm4.plugins.module.default_pack_icon - gm4.plugins.readme_generator.libraries - - gm4.plugins.write_mcmeta - - gm4.plugins.output.release meta: mecha: formatting: layout: preserve nbt_compact: True + + - broadcast: 'gm4_*' + extend: 'beet.yaml' + require: + - gm4.plugins.worker.clear_on_exit + - gm4.plugins.worker.store_project + - gm4.plugins.worker.freeze_last_stored + - gm4.plugins.manifest.update_patch + - gm4.plugins.player_heads + - gm4.plugins.resource_pack + - beet.contrib.model_merging + - beet.contrib.optifine + - beet.contrib.babelbox + - gm4_guidebook.generate_guidebooks.load_page_data + - gm4_guidebook.generate_guidebooks.load_custom_recipes + pipeline: + - gm4.plugins.manifest.write_credits + - gm4.plugins.test.strip_tests + - require: [beet.contrib.copy_files] + meta: {copy_files: {data_pack: {LICENSE.md: "../LICENSE.md"}}} + - gm4.plugins.readme_generator + meta: + mecha: + formatting: + layout: preserve + nbt_compact: True + babelbox: + load: + - assets/translations.csv + - translations.csv + namespace: gm4_translations + unicode_escape: True + dialect: excel + model_merging: + predicate_order: [custom_model_data] + + - pipeline: + - gm4.plugins.worker.retrieve_and_run + meta: + plugins: + - gm4.plugins.output.release + - gm4.plugins.manifest.write_updates + - gm4.plugins.write_mcmeta + - gm4.plugins.worker.store_project + + - extend: beet.yaml + directory: resource_pack + require: + - gm4.plugins.worker.retrieve_and_merge + - gm4.plugins.output.release_resource_pack + - gm4.plugins.write_mcmeta + - gm4.plugins.manifest.update_patch + - gm4.plugins.resource_pack.pad_model_overrides + meta: + pack_scan: resource_pack + + - gm4.plugins.manifest.write_meta + meta: autosave: link: false diff --git a/beet-test.yaml b/beet-test.yaml index 725f2f1cc9..c01e0bd328 100644 --- a/beet-test.yaml +++ b/beet-test.yaml @@ -1,19 +1,20 @@ pipeline: - gm4.plugins.list_modules - gm4.plugins.manifest.create - - gm4.plugins.manifest.update_patch - gm4.plugins.output.clear_release + - gm4.plugins.resource_pack.setup - gm4.plugins.manifest.write_meta - broadcast: 'gm4_*' extend: 'beet.yaml' require: - gm4.plugins.output.test - gm4.plugins.player_heads + - gm4.plugins.resource_pack - gm4_guidebook.generate_guidebooks.load_page_data - gm4_guidebook.generate_guidebooks.load_custom_recipes - gm4.plugins.test.load_tests + - gm4.plugins.test.skip_mecha_lint pipeline: - - gm4.plugins.manifest.write_updates - gm4.plugins.write_mcmeta meta: mecha: diff --git a/beet.yaml b/beet.yaml deleted file mode 100644 index 42533ec5f3..0000000000 --- a/beet.yaml +++ /dev/null @@ -1,17 +0,0 @@ -pipeline: - - gm4.plugins.list_modules - - gm4.plugins.manifest.create - - broadcast: 'gm4_*' - extend: 'beet.yaml' - require: - - gm4.plugins.output - - gm4.plugins.player_heads - - gm4_guidebook.generate_guidebooks.load_page_data - - gm4_guidebook.generate_guidebooks.load_custom_recipes - pipeline: - - gm4.plugins.write_mcmeta - meta: - mecha: - layout: preserve - nbt_compact: True - cmd_compact: True diff --git a/gm4/commands.py b/gm4/commands.py index 53e72573e1..82599217b9 100644 --- a/gm4/commands.py +++ b/gm4/commands.py @@ -1,10 +1,24 @@ -import click import json -import shutil import logging +import os +import shutil +from pathlib import Path +from tempfile import NamedTemporaryFile +from typing import Any + +import beet.toolchain.commands as commands +import click +import yaml from beet import Project from beet.toolchain.cli import beet -import beet.toolchain.commands as commands + +# NOTE pydantic.v1 does not allow reloading models with custom validators, which beet watch will do normally. +# Importing them here prevents their reload on each watch cycle. This may change in pydantic.v2 - revisit then +from gm4.utils import MapOption # type: ignore +from gm4.plugins.resource_pack import ModelData # type: ignore + +# import worker plugin to prevent 'worker reload' warnings +import gm4.plugins.worker # type: ignore pass_project = click.make_pass_decorator(Project) # type: ignore @@ -35,41 +49,15 @@ def dev(ctx: click.Context, project: Project, modules: tuple[str, ...], watch: b logger.setLevel(log) # logger.addHandler(LogHandler()) # TODO configure the log handler to GM4's preferred formatting - project.config_path = "beet-dev.yaml" - config = { - "broadcast": modules, - "extend": "beet.yaml", - "require": [ - "gm4.plugins.output", - "beet.contrib.livereload", - "gm4.plugins.player_heads", - "gm4_guidebook.generate_guidebooks.load_page_data", - "gm4_guidebook.generate_guidebooks.load_custom_recipes", - "gm4.plugins.test.load_tests" - ] if reload else [ - "gm4.plugins.output", - "gm4.plugins.player_heads", - "gm4_guidebook.generate_guidebooks.load_page_data", - "gm4_guidebook.generate_guidebooks.load_custom_recipes", - "gm4.plugins.test.load_tests" - ], - "pipeline": [ - "gm4.plugins.write_mcmeta" - ], - "meta": { - "mecha" : { - "formatting":{ - "layout": "preserve", - "nbt_compact": True, - "cmd_compact": True - } } } - } - project.config_overrides = [ - f"pipeline[] = {json.dumps(config)}", - f"pipeline[] = gm4.plugins.finished", - ] + config = yaml.safe_load(Path("beet-dev.yaml").read_text()) - ctx.invoke(commands.watch if watch else commands.build, link=link) + # command-determined config options + broadcast_config: dict[str, Any] = next((p for p in config["pipeline"] if isinstance(p, dict))) # type: ignore + broadcast_config["broadcast"] = modules + if reload: + broadcast_config["require"].insert(0, "beet.contrib.livereload") + + build_dynamic_config(config, ctx, project, watch, link) # start the project build @beet.command() @@ -100,25 +88,44 @@ def readme_gen(ctx: click.Context, project: Project, modules: tuple[str, ...], w click.echo(f"[GM4] Generating READMEs for: {', '.join(modules)}") - project.config_path = "beet-dev.yaml" - config = { - "broadcast": modules, - "extend": "beet.yaml", - "meta": {"readme-gen": True}, - "require":[ - "gm4.plugins.player_heads", - ], - "pipeline": [ + # we want to only read in the metadata from each project fo make a readme, not run the whole build pipeline + # so we have to manually expand the broadcast instead of relying on beet's broadcast option. + subprojects: list[dict[str,Any]] = [] + for module in modules: + module_config = yaml.safe_load(Path(f"{module}/beet.yaml").read_text()) + for key in ["data_pack", "resource_pack", "pipeline", "require"]: # remove pack resources + module_config.pop(key, None) + module_config["pipeline"] = [ "gm4.plugins.manifest.write_credits", "gm4.plugins.readme_generator", "gm4.plugins.output.readmes" ] + subprojects.append(module_config) + + config = { + "pipeline": [ + *subprojects, + "gm4.plugins.finished" + ], + "meta": { + "autosave": { + "link": False + } + } } - project.config_overrides = [ - f"pipeline[] = gm4.plugins.manifest.create", - f"pipeline[] = {json.dumps(config)}", - f"pipeline[] = gm4.plugins.finished", - ] + build_dynamic_config(config, ctx, project, watch, link=None) + + +def build_dynamic_config(config: dict[str,Any], ctx: click.Context, project: Project, watch: bool, link: str|None): + """Creates a tempfile on disk to pass to beet. Enables runtime dynamic setup of the build process that is compatiable with `beet watch`""" - ctx.invoke(commands.watch if watch else commands.build) + config["directory"] = str(project.directory) # set working directory to where CLI was invoked + + with NamedTemporaryFile(mode="wt", delete=False, suffix=".json") as f: + project.config_path = f.name + json.dump(config, f, indent=1) + + project.reset() # delete previously resolved config + ctx.invoke(commands.watch if watch else commands.build, link=link) + os.remove(f.name) # delete tempfile diff --git a/gm4/contributors.json b/gm4/contributors.json index bfc966ee1d..05c95c2b5f 100644 --- a/gm4/contributors.json +++ b/gm4/contributors.json @@ -56,7 +56,7 @@ "links": ["https://twitter.com/Pandakruthers"] }, { - "name": "kyrkis", + "name": "Kyrius", "links": ["http://discordapp.com/users/287287322360414218"] }, { diff --git a/gm4/modeldata_registry.json b/gm4/modeldata_registry.json new file mode 100644 index 0000000000..d41d3bd0d4 --- /dev/null +++ b/gm4/modeldata_registry.json @@ -0,0 +1,1676 @@ +{ + "items": { + "acacia_door": { + "gm4_double_doors:guidebook_icon/double_doors": 1 + }, + "acacia_hanging_sign": { + "gm4_trapped_signs:item/secret_trapped_acacia_hanging_sign": 1, + "gm4_trapped_signs:item/trapped_acacia_hanging_sign": 2 + }, + "acacia_sign": { + "gm4_trapped_signs:item/trapped_acacia_sign": 1, + "gm4_trapped_signs:item/secret_trapped_acacia_sign": 2 + }, + "anvil": { + "gm4_desire_lines:guidebook_icon/celaro_shamir": 1, + "gm4_weighted_armour:guidebook_icon/helious_shamir": 2, + "gm4_metallurgy:guidebook_icon/arborenda_shamir": 100, + "gm4_metallurgy:guidebook_icon/defuse_shamir": 101, + "gm4_metallurgy:guidebook_icon/ender_bolt_shamir": 102, + "gm4_metallurgy:guidebook_icon/forterra_shamir": 103, + "gm4_metallurgy:guidebook_icon/gemini_shamir": 104, + "gm4_metallurgy:guidebook_icon/hypexperia_shamir": 105, + "gm4_metallurgy:guidebook_icon/infinitas_shamir": 106, + "gm4_metallurgy:guidebook_icon/metallurgy": 107, + "gm4_metallurgy:guidebook_icon/moneo_shamir": 108, + "gm4_metallurgy:guidebook_icon/musical_shamir": 109, + "gm4_metallurgy:guidebook_icon/sensus_shamir": 110, + "gm4_metallurgy:guidebook_icon/tinker_shamir": 111, + "gm4_metallurgy:guidebook_icon/vibro_shamir": 112, + "gm4_animi_shamir:guidebook_icon/animi_shamir": 113, + "gm4_audere_shamir:guidebook_icon/audere_shamir": 114, + "gm4_fulcio_shamir:guidebook_icon/fulcio_shamir": 115, + "gm4_iacio_shamir:guidebook_icon/iacio_shamir": 116, + "gm4_lumos_shamir:guidebook_icon/lumos_shamir": 117, + "gm4_percurro_shamir:guidebook_icon/percurro_shamir": 118, + "gm4_vecto_shamir:guidebook_icon/vecto_shamir": 119, + "gm4_vigere_shamir:guidebook_icon/vigere_shamir": 120, + "gm4_orb_of_ankou:guidebook_icon/corripio_shamir": 200 + }, + "apple": { + "gm4_apple_trees:block/apple_unripe": 1, + "gm4_apple_trees:guidebook_icon/apple_trees": 3 + }, + "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 + }, + "bamboo_hanging_sign": { + "gm4_trapped_signs:item/secret_trapped_bamboo_hanging_sign": 1, + "gm4_trapped_signs:item/trapped_bamboo_hanging_sign": 2 + }, + "bamboo_sign": { + "gm4_trapped_signs:item/trapped_bamboo_sign": 1, + "gm4_trapped_signs:item/secret_trapped_bamboo_sign": 2 + }, + "beehive": { + "gm4_beehive_inspector:guidebook_icon/beehive_inspector": 1 + }, + "big_dripleaf": { + "gm4_dripleaf_filters:guidebook_icon/dripleaf_filters": 1, + "gm4_dripleaf_launchers:guidebook_icon/dripleaf_launchers": 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 + }, + "command_block": { + "gm4:gui/advancement/root": 1 + }, + "compass": { + "gm4_metallurgy:shamir/sensus": 101, + "gm4_fulcio_shamir:shamir/fulcio": 115, + "gm4_animi_shamir:shamir/animi": 124 + }, + "copper_block": { + "gm4_auto_crafting:guidebook_icon/auto_crafting": 1 + }, + "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, + "gm4_custom_crafters:gui/advancement/custom_crafters": 3, + "gm4_custom_crafters:guidebook_icon/custom_crafters": 4, + "gm4_custom_crafters:block/custom_crafter_side": 6, + "gm4_custom_crafters:block/custom_crafter_down": 7, + "gm4_auto_crafting:block/auto_crafter": 8, + "gm4_tnt_landmines:entity/tnt_landmine_crafting_table": 45 + }, + "crimson_hanging_sign": { + "gm4_trapped_signs:item/secret_trapped_crimson_hanging_sign": 1, + "gm4_trapped_signs:item/trapped_crimson_hanging_sign": 2 + }, + "crimson_sign": { + "gm4_trapped_signs:item/trapped_crimson_sign": 1, + "gm4_trapped_signs:item/secret_trapped_crimson_sign": 2 + }, + "crossbow": { + "gm4_crossbow_cartridges:guidebook_icon/crossbow_cartridges": 1, + "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 + }, + "deepslate_gold_ore": { + "gm4_smelteries:block/ore_display/deepslate_gold_ore": 1 + }, + "deepslate_iron_ore": { + "gm4_smelteries:block/ore_display/deepslate_iron_ore": 1 + }, + "diamond": { + "gm4_end_fishing:item/end_city_ore_1": 10, + "gm4_end_fishing:item/end_city_ore_2": 11, + "gm4_end_fishing:item/end_city_ore_3": 12, + "gm4_end_fishing:item/end_city_ore_4": 13, + "gm4_end_fishing:item/end_city_ore_5": 14, + "gm4_end_fishing:item/end_city_ore_6": 15 + }, + "diamond_axe": { + "gm4_mending_tanks:guidebook_icon/mending_tanks": 1, + "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, + "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 + }, + "diamond_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 + }, + "diamond_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 + }, + "diamond_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 + }, + "diamond_horse_armor": { + "gm4_end_fishing:item/end_city_horse_armor_1": 10, + "gm4_end_fishing:item/end_city_horse_armor_2": 11, + "gm4_end_fishing:item/end_city_horse_armor_3": 12, + "gm4_end_fishing:item/end_city_horse_armor_4": 13, + "gm4_end_fishing:item/end_city_horse_armor_5": 14 + }, + "diamond_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 + }, + "diamond_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 + }, + "diamond_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 + }, + "diamond_sword": { + "gm4_end_fishing:gui/advancement/end_fishing_swords": 1, + "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 + }, + "dirt": { + "gm4_tnt_landmines:entity/tnt_landmine_dirt": 42 + }, + "dirt_path": { + "gm4_speed_paths:guidebook_icon/speed_paths": 1 + }, + "elytra": { + "gm4_end_fishing:gui/advancement/end_fishing_phantom": 1, + "gm4_end_fishing:item/captains_wings": 10, + "gm4_end_fishing:item/ravaged_wings": 11, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_animi_shamir:shamir/animi": 124, + "gm4_orb_of_ankou:gui/advancement/orb_of_ankou_soaring_pneuma": 200 + }, + "emerald": { + "gm4_apple_trees:block/apple_unripe": 0, + "gm4_calling_bell:gui/advancement/calling_bell": 1, + "gm4_calling_bell:guidebook_icon/calling_bell": 2, + "gm4_end_fishing:item/end_city_ore_1": 10, + "gm4_end_fishing:item/end_city_ore_2": 11, + "gm4_end_fishing:item/end_city_ore_3": 12, + "gm4_end_fishing:item/end_city_ore_4": 13, + "gm4_end_fishing:item/end_city_ore_5": 14, + "gm4_end_fishing:item/end_city_ore_6": 15 + }, + "enchanted_book": { + "gm4_enchantment_extractors:gui/advancement/enchantment_extractors_mending": 1, + "gm4_book_binders:gui/advancement/book_binders_bind": 2, + "gm4_book_binders:guidebook_icon/book_binders": 3 + }, + "enchanting_table": { + "gm4_enchantment_extractors:block/enchantment_extractor": 1, + "gm4_enchantment_extractors:gui/advancement/enchantment_extractors": 2, + "gm4_enchantment_extractors:guidebook_icon/enchantment_extractors": 3, + "gm4_enchantment_extractors:block/enchantment_extractor_side": 4, + "gm4_enchantment_extractors:block/enchantment_extractor_down": 5 + }, + "end_portal_frame": { + "gm4_teleportation_anchors:block/teleportation_anchor": 1 + }, + "end_rod": { + "gm4_teleportation_anchors:gui/advancement/teleportation_jammer": 1 + }, + "end_stone": { + "gm4_mysterious_midnights:item/endermite_egg": 1, + "gm4_mysterious_midnights:guidebook_icon/falling_stars": 2 + }, + "ender_chest": { + "gm4_xp_storage:guidebook_icon/xp_storage": 1 + }, + "ender_eye": { + "gm4_ender_hoppers:guidebook_icon/ender_hoppers": 1 + }, + "experience_bottle": { + "standard_liquids:gui/advancement/standard_liquids": 1 + }, + "firework_rocket": { + "gm4_phantom_scarecrows:gui/advancement/phantom_scarecrows": 1 + }, + "firework_star": { + "gm4_orb_of_ankou:item/orb_of_ankou": 1, + "gm4_everstone:item/everstone": 2, + "gm4_everstone:gui/advancement/everstones": 3, + "gm4_everstone:guidebook_icon/everstone": 4, + "gm4_zauber_cauldrons:item/crystal/speed": 12, + "gm4_zauber_cauldrons:item/crystal/regeneration": 13, + "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_orb_of_ankou:gui/advancement/orb_of_ankou_max_orb": 200 + }, + "fishing_rod": { + "gm4_end_fishing:gui/advancement/end_fishing": 1, + "gm4_end_fishing:guidebook_icon/end_fishing": 2, + "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: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 + }, + "flint_and_steel": { + "gm4_orb_of_ankou:gui/advancement/orb_of_ankou_soul_forge": 1, + "gm4_better_fire:guidebook_icon/better_fire": 2, + "gm4_animi_shamir:shamir/animi": 124, + "gm4_orb_of_ankou:guidebook_icon/orb_of_ankou": 200 + }, + "furnace": { + "gm4_smelteries:gui/advancement/smelteries": 1, + "gm4_forming_press:guidebook_icon/forming_press": 2, + "gm4_smelteries:guidebook_icon/smelteries": 3, + "gm4_teleportation_anchors:guidebook_icon/teleportation_anchors": 4 + }, + "furnace_minecart": { + "gm4_tunnel_bores:item/piston_minecart": 1 + }, + "glass": { + "gm4_liquid_tanks:block/liquid_tank": 1, + "gm4_liquid_tanks:guidebook_icon/liquid_tanks": 2, + "gm4_liquid_tanks:block/liquid_tank_side": 3 + }, + "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/end_city_ore_1": 10, + "gm4_end_fishing:item/end_city_ore_2": 11, + "gm4_end_fishing:item/end_city_ore_3": 12, + "gm4_end_fishing:item/end_city_ore_4": 13, + "gm4_end_fishing:item/end_city_ore_5": 14, + "gm4_end_fishing:item/end_city_ore_6": 15 + }, + "gold_ore": { + "gm4_smelteries:block/ore_display/gold_ore": 1 + }, + "golden_apple": { + "gm4_apple_trees:block/golden_apple_unripe": 1, + "gm4_mob_curing:guidebook_icon/mob_curing": 2 + }, + "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_boost": 2, + "gm4_zauber_cauldrons:item/zauber_armor/attack_boost": 3, + "gm4_zauber_cauldrons:item/zauber_armor/speed_boost": 4, + "gm4_zauber_cauldrons:item/zauber_armor/armor_boost": 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_boost": 2, + "gm4_zauber_cauldrons:item/zauber_armor/attack_boost": 3, + "gm4_zauber_cauldrons:item/zauber_armor/speed_boost": 4, + "gm4_zauber_cauldrons:item/zauber_armor/armor_boost": 5, + "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_boost": 2, + "gm4_zauber_cauldrons:item/zauber_armor/attack_boost": 3, + "gm4_zauber_cauldrons:item/zauber_armor/speed_boost": 4, + "gm4_zauber_cauldrons:item/zauber_armor/armor_boost": 5, + "gm4_orb_of_ankou:entity/fire_sprite": 6, + "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/end_city_horse_armor_1": 10, + "gm4_end_fishing:item/end_city_horse_armor_2": 11, + "gm4_end_fishing:item/end_city_horse_armor_3": 12, + "gm4_end_fishing:item/end_city_horse_armor_4": 13, + "gm4_end_fishing:item/end_city_horse_armor_5": 14 + }, + "golden_leggings": { + "gm4_zauber_cauldrons:item/zauber_armor/health_boost": 2, + "gm4_zauber_cauldrons:item/zauber_armor/attack_boost": 3, + "gm4_zauber_cauldrons:item/zauber_armor/speed_boost": 4, + "gm4_zauber_cauldrons:item/zauber_armor/armor_boost": 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_sunken_treasure:guidebook_icon/sunken_treasure": 1, + "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_potion_swords:gui/advancement/potion_swords": 1, + "gm4_potion_swords:guidebook_icon/potion_swords": 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 + }, + "grass_block": { + "gm4_tnt_landmines:entity/tnt_landmine_grass": 41, + "gm4_zauber_cauldrons:gui/advancement/zauber_cauldrons_paint_biome": 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, + "gm4_bat_grenades:guidebook_icon/bat_grenades": 3 + }, + "honey_block": { + "gm4_liquid_tanks:block/cast_honey_block": 1 + }, + "hopper": { + "gm4_liquid_tanks:gui/advancement/liquid_tanks_create": 1 + }, + "hopper_minecart": { + "gm4_liquid_minecarts:gui/advancement/liquid_minecarts_create": 1, + "gm4_ender_hoppers:item/ender_hopper_minecart": 2, + "gm4_liquid_minecarts:item/liquid_minecart": 3, + "gm4_liquid_minecarts:guidebook_icon/liquid_minecarts": 4 + }, + "horn_coral": { + "gm4_scuba_gear:guidebook_icon/scuba_gear": 1 + }, + "ice": { + "gm4_midnight_menaces:guidebook_icon/icy_strays": 1 + }, + "ink_sac": { + "gm4_ink_spitting_squid:gui/advancement/ink_spitting_squid": 1, + "gm4_ink_spitting_squid:guidebook_icon/ink_spitting_squid": 2 + }, + "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_tinkering_compressors:guidebook_icon/tinkering_compressors": 1, + "gm4_smelteries:block/smeltery_unlit": 2, + "gm4_smelteries:block/smeltery_lit": 3 + }, + "iron_boots": { + "gm4_mountaineering:item/skis": 1, + "gm4_mountaineering:gui/advancement/ski": 2, + "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 + }, + "iron_chestplate": { + "gm4_weighted_armour:guidebook_icon/weighted_armour": 1, + "gm4_combat_expanded:gui/advancement/combat_expanded_full_set": 3, + "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 + }, + "iron_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 + }, + "iron_hoe": { + "gm4_pig_tractors:guidebook_icon/pig_tractors": 1, + "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/end_city_horse_armor_1": 10, + "gm4_end_fishing:item/end_city_horse_armor_2": 11, + "gm4_end_fishing:item/end_city_horse_armor_3": 12, + "gm4_end_fishing:item/end_city_horse_armor_4": 13, + "gm4_end_fishing:item/end_city_horse_armor_5": 14 + }, + "iron_ingot": { + "gm4_end_fishing:item/end_city_ore_1": 10, + "gm4_end_fishing:item/end_city_ore_2": 11, + "gm4_end_fishing:item/end_city_ore_3": 12, + "gm4_end_fishing:item/end_city_ore_4": 13, + "gm4_end_fishing:item/end_city_ore_5": 14, + "gm4_end_fishing:item/end_city_ore_6": 15 + }, + "iron_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 + }, + "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_hanging_sign": { + "gm4_trapped_signs:item/secret_trapped_jungle_hanging_sign": 1, + "gm4_trapped_signs:item/trapped_jungle_hanging_sign": 2 + }, + "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, + "gm4_rope_ladders:gui/advancement/rope_ladders": 2, + "gm4_rope_ladders:guidebook_icon/rope_ladders": 3, + "gm4_tower_structures:guidebook_icon/tower_structures": 4, + "gm4_vertical_rails:guidebook_icon/vertical_rails": 5 + }, + "lava_bucket": { + "gm4_metallurgy:gui/advancement/metallurgy_overheat_cast": 1, + "gm4_liquid_tanks:guidebook_icon/standard_liquids": 2, + "gm4_metallurgy:shamir/infinitas": 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_boots_of_ostara:guidebook_icon/boots_of_ostara": 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 + }, + "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_tower_structures:item/pirate_hat": 2, + "gm4_weighted_armour:shamir/helious": 103, + "gm4_metallurgy:shamir/defuse": 106, + "gm4_animi_shamir:shamir/animi": 124 + }, + "leather_leggings": { + "gm4_washing_tanks:guidebook_icon/washing_tanks": 1, + "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 + }, + "light_blue_concrete_powder": { + "gm4_cement_mixers:guidebook_icon/cement_mixers": 1, + "gm4_zauber_cauldrons:block/liquid_magicol/light_blue": 300 + }, + "light_gray_concrete_powder": { + "gm4_zauber_cauldrons:block/liquid_magicol/light_gray": 300 + }, + "lightning_rod": { + "gm4_lightning_in_a_bottle:guidebook_icon/lightning_in_a_bottle": 1 + }, + "lime_concrete_powder": { + "gm4_zauber_cauldrons:block/liquid_magicol/lime": 300 + }, + "lingering_potion": { + "gm4_midnight_menaces:guidebook_icon/illusioner_nights": 1, + "gm4_lightning_in_a_bottle:item/lingering_lightning_in_a_bottle": 4, + "gm4_zauber_cauldrons:item/bottled_magicol/polar": 300, + "gm4_zauber_cauldrons:item/bottled_magicol/temperate": 301, + "gm4_zauber_cauldrons:item/bottled_magicol/arid": 302, + "gm4_zauber_cauldrons:item/bottled_magicol_soulution/polar": 303, + "gm4_zauber_cauldrons:item/bottled_magicol_soulution/temperate": 304, + "gm4_zauber_cauldrons:item/bottled_magicol_soulution/arid": 305, + "gm4_zauber_cauldrons:item/soulution_potion/instant_damage": 306, + "gm4_zauber_cauldrons:item/soulution_potion/instant_health": 307, + "gm4_zauber_cauldrons:item/soulution_potion/jump_boost": 308, + "gm4_zauber_cauldrons:item/soulution_potion/poison": 309, + "gm4_zauber_cauldrons:item/soulution_potion/regeneration": 310, + "gm4_zauber_cauldrons:item/soulution_potion/speed": 311, + "gm4_zauber_cauldrons:item/soulution_potion/strength": 312 + }, + "lodestone": { + "gm4_teleportation_anchors:gui/advancement/teleportation_anchor": 1 + }, + "magenta_concrete_powder": { + "gm4_zauber_cauldrons:block/liquid_magicol/magenta": 300 + }, + "mangrove_hanging_sign": { + "gm4_trapped_signs:item/secret_trapped_mangrove_hanging_sign": 1, + "gm4_trapped_signs:item/trapped_mangrove_hanging_sign": 2 + }, + "mangrove_sign": { + "gm4_trapped_signs:item/trapped_mangrove_sign": 1, + "gm4_trapped_signs:item/secret_trapped_mangrove_sign": 2 + }, + "milk_bucket": { + "gm4_metallurgy:shamir/infinitas": 100 + }, + "minecart": { + "gm4_ziprails:gui/advancement/ziprails": 1, + "gm4_ziprails:guidebook_icon/ziprails": 2 + }, + "music_disc_11": { + "gm4_record_crafting:guidebook_icon/record_crafting": 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 + }, + "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_combat_expanded:guidebook_icon/combat_expanded": 1, + "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 + }, + "note_block": { + "gm4_note_block_interface:guidebook_icon/note_block_interface": 1 + }, + "oak_hanging_sign": { + "gm4_trapped_signs:item/secret_trapped_oak_hanging_sign": 1, + "gm4_trapped_signs:item/trapped_oak_hanging_sign": 2 + }, + "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 + }, + "potion": { + "gm4_zauber_cauldrons:item/wormhole_in_a_bottle": 1, + "gm4_potion_liquids:gui/advancement/potion_liquids": 2, + "gm4_lightning_in_a_bottle:gui/advancement/lightning_in_a_bottle_drink": 3, + "gm4_lightning_in_a_bottle:item/lightning_in_a_bottle": 4, + "gm4_mob_curing:gui/advancement/mob_curing": 5, + "gm4_potion_liquids:guidebook_icon/potion_liquids": 6, + "gm4_standard_liquids:item/ink_bottle": 7, + "gm4_standard_liquids:item/glow_ink_bottle": 8, + "gm4_zauber_liquids:guidebook_icon/zauber_liquids": 9, + "gm4_zauber_cauldrons:item/bottled_magicol/polar": 300, + "gm4_zauber_cauldrons:item/bottled_magicol/temperate": 301, + "gm4_zauber_cauldrons:item/bottled_magicol/arid": 302, + "gm4_zauber_cauldrons:item/bottled_magicol_soulution/polar": 303, + "gm4_zauber_cauldrons:item/bottled_magicol_soulution/temperate": 304, + "gm4_zauber_cauldrons:item/bottled_magicol_soulution/arid": 305, + "gm4_zauber_cauldrons:item/soulution_potion/instant_damage": 306, + "gm4_zauber_cauldrons:item/soulution_potion/instant_health": 307, + "gm4_zauber_cauldrons:item/soulution_potion/jump_boost": 308, + "gm4_zauber_cauldrons:item/soulution_potion/poison": 309, + "gm4_zauber_cauldrons:item/soulution_potion/regeneration": 310, + "gm4_zauber_cauldrons:item/soulution_potion/speed": 311, + "gm4_zauber_cauldrons:item/soulution_potion/strength": 312, + "gm4_zauber_cauldrons:gui/advancement/zauber_cauldrons_drink_all_magicol": 313 + }, + "powder_snow_bucket": { + "gm4_metallurgy:shamir/infinitas": 100 + }, + "prismarine_shard": { + "gm4_zauber_cauldrons:item/enchanted_prismarine_shard": 1 + }, + "pufferfish": { + "gm4_live_catch:gui/advancement/live_catch": 1 + }, + "pufferfish_bucket": { + "gm4_metallurgy:shamir/infinitas": 100 + }, + "purple_concrete_powder": { + "gm4_zauber_cauldrons:block/liquid_magicol/purple": 300 + }, + "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 + }, + "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:shamir/animi": 124 + }, + "red_concrete_powder": { + "gm4_zauber_cauldrons:block/liquid_magicol/red": 300 + }, + "red_mushroom": { + "gm4_shroomites:gui/advancement/shroomites": 1 + }, + "red_sand": { + "gm4_smelteries:block/ore_display/red_sand": 1 + }, + "rotten_flesh": { + "gm4_mysterious_midnights:guidebook_icon/resurrecting_zombies": 1, + "gm4_undead_players:guidebook_icon/undead_players": 2 + }, + "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, + "gm4_dangerous_dungeons:guidebook_icon/dangerous_dungeons": 2, + "gm4_spawner_minecarts:guidebook_icon/spawner_minecarts": 3 + }, + "splash_potion": { + "gm4_display_frames:gui/advancement/display_frames": 1, + "gm4_display_frames:guidebook_icon/display_frames": 2, + "gm4_lightning_in_a_bottle:item/splash_lightning_in_a_bottle": 4, + "gm4_zauber_cauldrons:item/bottled_magicol/polar": 300, + "gm4_zauber_cauldrons:item/bottled_magicol/temperate": 301, + "gm4_zauber_cauldrons:item/bottled_magicol/arid": 302, + "gm4_zauber_cauldrons:item/bottled_magicol_soulution/polar": 303, + "gm4_zauber_cauldrons:item/bottled_magicol_soulution/temperate": 304, + "gm4_zauber_cauldrons:item/bottled_magicol_soulution/arid": 305, + "gm4_zauber_cauldrons:item/soulution_potion/instant_damage": 306, + "gm4_zauber_cauldrons:item/soulution_potion/instant_health": 307, + "gm4_zauber_cauldrons:item/soulution_potion/jump_boost": 308, + "gm4_zauber_cauldrons:item/soulution_potion/poison": 309, + "gm4_zauber_cauldrons:item/soulution_potion/regeneration": 310, + "gm4_zauber_cauldrons:item/soulution_potion/speed": 311, + "gm4_zauber_cauldrons:item/soulution_potion/strength": 312 + }, + "spruce_hanging_sign": { + "gm4_trapped_signs:item/secret_trapped_spruce_hanging_sign": 1, + "gm4_trapped_signs:item/trapped_spruce_hanging_sign": 2 + }, + "spruce_sapling": { + "gm4_podzol_rooting_soil:guidebook_icon/podzol_rooting_soil": 1 + }, + "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 + }, + "yellow_concrete_powder": { + "gm4_zauber_cauldrons:block/liquid_magicol/yellow": 300 + }, + "zombie_head": { + "gm4_undead_players:gui/advancement/undead_players": 1 + } + }, + "allocations": { + "gm4_metallurgy": [ + 100, + 199 + ], + "gm4_orb_of_ankou": [ + 200, + 299 + ], + "*_shamir": [ + 100, + 199 + ], + "gm4_zauber_cauldrons": [ + 300, + 349 + ] + } +} diff --git a/gm4/plugins/autoload.py b/gm4/plugins/autoload.py new file mode 100644 index 0000000000..a373c90b6a --- /dev/null +++ b/gm4/plugins/autoload.py @@ -0,0 +1,13 @@ +from beet import Context + +def beet_default(ctx: Context): + """Loads plugins auto-added to every beet subproject. Configured in pyproject.toml + Used primarily to load custom-merge-rules that will apply between broadcast packs, at least until a better option is available in beet""" + ctx.meta["model_merging"] = { + "predicate_order": ["custom_model_data"] # set default model_merging config for these broadcast-created subprojects + } + ctx.require( + "beet.contrib.default", + "beet.contrib.model_merging", + "gm4_metallurgy.shamir_model_template.merge_policy" + ) diff --git a/gm4/plugins/manifest.py b/gm4/plugins/manifest.py index 99c2dd5f30..4acf6a460e 100644 --- a/gm4/plugins/manifest.py +++ b/gm4/plugins/manifest.py @@ -1,17 +1,22 @@ import datetime +import hashlib import json import logging import os -from functools import cache +from gzip import GzipFile +from io import BytesIO from pathlib import Path from typing import Any, Optional -from pydantic.v1 import Extra, BaseModel import yaml -from beet import Context, JsonFile, PluginOptions, TextFile, load_config, InvalidProjectConfig +from beet import Context, InvalidProjectConfig, PluginOptions, TextFile, load_config +from beet.library.base import _dump_files # type: ignore ; private method used to deterministicify pack dumping +from nbtlib.contrib.minecraft import StructureFileData, StructureFile # type: ignore ; no stub +from pydantic.v1 import BaseModel, Extra +from repro_zipfile import ReproducibleZipFile # type: ignore ; no stub +from gm4.plugins.output import ModrinthConfig, PMCConfig, SmithedConfig from gm4.plugins.versioning import VersioningConfig -from gm4.plugins.output import ModrinthConfig, SmithedConfig, PMCConfig from gm4.utils import Version, run parent_logger = logging.getLogger("gm4.manifest") @@ -39,6 +44,7 @@ class ManifestModuleModel(BaseModel): id: str name: str version: str + hash: str video_link: str = "" wiki_link: str = "" credits: CreditsModel @@ -80,7 +86,7 @@ def create(ctx: Context): "video": None, "wiki": None } - for glob, manifest_section, config_overrides in [("gm4_*", manifest.modules, {}), ("lib_*", manifest.libraries, LIB_OVERRIDES)]: + for glob, manifest_section, config_overrides in [("gm4_*", manifest.modules, {}), ("lib_*", manifest.libraries, LIB_OVERRIDES), ("resource_pack", manifest.modules, {})]: for pack_id in [p.name for p in sorted(ctx.directory.glob(glob))]: try: config = load_config(Path(pack_id) / "beet.yaml") @@ -93,6 +99,7 @@ def create(ctx: Context): id = config.id, name = config.name, version = config.version, + hash = "", video_link = gm4_meta.video or "", wiki_link = gm4_meta.wiki or "", credits = gm4_meta.credits, @@ -127,91 +134,73 @@ def create(ctx: Context): # Cache the new manifest, so sub-pipelines can access it ctx.cache["gm4_manifest"].json = manifest.dict() - -def update_patch(ctx: Context): - """Retrieves manifest from previous build, and increments patch number - if there are any changes between last commit and HEAD in module or any of its dependancies""" + # Read in the previous manifest, if found version = os.getenv("VERSION", "1.20") release_dir = Path('release') / version manifest_file = release_dir / "meta.json" - logger = parent_logger.getChild("update_patch") - skin_cache = JsonFile(source_path="gm4/skin_cache.json").data - - manifest_cache = ManifestCacheModel.parse_obj(ctx.cache["gm4_manifest"].json) if manifest_file.exists(): - manifest = ManifestFileModel.parse_obj(json.loads(manifest_file.read_text())) - last_commit = manifest.last_commit - released_modules: dict[str, ManifestModuleModel] = {m.id:m for m in manifest.modules if m.version} - released_modules |= manifest.libraries + ctx.cache["previous_manifest"].json = json.loads(manifest_file.read_text()) else: - logger.debug("No existing meta.json manifest file was located") - last_commit = None - released_modules = {} - - for packs in (manifest_cache.modules, manifest_cache.libraries): - for id in packs: - pack = packs[id] - released = released_modules.get(id, None) - last_ver = Version(released.version) if released else Version("0.0.0") - version = Version(pack.version) - - publish_date = released.publish_date if released else None - pack.publish_date = publish_date or datetime.datetime.now().date().isoformat() - - if version != last_ver.replace(patch=None): # check for forced content-less version increment - diff = True - - else: # otherwise check for file differences - deps = _traverse_includes(id) - if packs is manifest_cache.modules: - deps |= {"base"} # scan the base directory if this is a module - deps_dirs = [element for sublist in [[f"{d}/data", f"{d}/overlay_*/data", f"{d}/*py"] for d in deps] for element in sublist] - - # add watches to skins this module uses from other modules. NOTE this could be done in a more extendable way in the future, rather than "hardcoded" - skin_dep_dirs: list[str] = [] - for skin_ref in skin_cache["nonnative_references"].get(id, []): - d = skin_cache["skins"][skin_ref]["parent_module"] - ns, path = skin_ref.split(":") - skin_dep_dirs.append(f"{d}/data/{ns}/skins/{path}.png") - - watch_dirs = deps_dirs+skin_dep_dirs - - diff = run(["git", "diff", last_commit, "--shortstat", "--", f"{id}/data", f"{id}/overlay_*", f"{id}/*.py"] + watch_dirs) if last_commit else True - # NOTE it may be needed later to only search overlay_*/data, but that currently caused some issues with GH action - - if not diff and released: - # No changes were made, keep the same patch version - pack.version = released.version - elif not released: - # First release - pack.version = pack.version.replace("X", "0") - logger.debug(f"First release of {id}") - else: - # Changes were made, bump the patch - if version.minor > last_ver.minor or version.major > last_ver.major: # type: ignore - version.patch = 0 - logger.info(f"Feature update for {id}, setting version to {version}") - else: - version.patch = last_ver.patch + 1 # type: ignore - logger.info(f"Updating {id} patch to {version.patch}") # type: ignore - - pack.version = str(version) - - ctx.cache["gm4_manifest"].json = manifest_cache.dict() - -@cache -def _traverse_includes(project_id: str) -> set[str]: - """Recursively assembles list of included dependencies and sub-dependencies for a given module""" - project_file = Path(project_id) / "beet.yaml" - project_config = yaml.safe_load(project_file.read_text()) - all_deps: set[str] = set() - for p in project_config.get('pipeline', []): - if "gm4.plugins.include" in p: - dep = p.split(".")[-1] - sub_deps = _traverse_includes(dep) - all_deps.update({dep, *sub_deps}) - return all_deps + if not ctx.meta.get("gm4_dev"): + logger.warn("No existing meta.json manifest file was located") + ctx.cache["previous_manifest"].json = ManifestFileModel(last_commit="",modules=[],libraries={},contributors=[]).dict() + + + +def update_patch(ctx: Context): + """Checks the datapack files for changes from last build, and increments patch number""" + yield + logger = logging.getLogger(__name__) + + # load current manifest from cache + this_manifest = ManifestCacheModel.parse_obj(ctx.cache["gm4_manifest"].json) + pack = ({e.id:e for e in (this_manifest.libraries|this_manifest.modules).values()})[ctx.project_id] + + # attempt to load prior meta.json manifest + last_manifest = ManifestFileModel.parse_obj(ctx.cache["previous_manifest"].json) + released_modules: dict[str, ManifestModuleModel] = {m.id:m for m in last_manifest.modules if m.version}|{l.id:l for l in last_manifest.libraries.values()} + + # determine this modules status + released = released_modules.get(ctx.project_id, None) + last_ver = Version(released.version) if released else Version("0.0.0") + this_ver = Version(ctx.project_version) + publish_date = released.publish_date if released else None + pack.publish_date = publish_date or datetime.datetime.now().date().isoformat() + old_hash = released.hash if released else "" + + # watch for output file changes + fileobj = BytesIO() + scanned_pack = ctx.packs[0 if ctx.meta.get("pack_scan")=="resource_pack" else 1] + with ReproducibleZipFile(fileobj, mode='w') as zf: + _dump_files(zf, sorted(scanned_pack.list_files())) # write datapack to temporary memory + # beet's default dump depends on file load order, which is nondeterministic + # here we recreate the ctx.data.dump(zf) behavior but by sorting the files first + + new_hash = hashlib.sha1(fileobj.getvalue()).hexdigest() + pack.hash = new_hash + + # first release of a module + if not released: + pack.version = pack.version.replace("X", "0") + logger.debug(f"First release of {ctx.project_id}") + + # otherwise check for changes + else: + if (this_ver != last_ver.replace(patch=None)) or (new_hash != old_hash): # changes were made, bump the patch + if this_ver.minor > last_ver.minor or this_ver.major > last_ver.major: # type: ignore + this_ver.patch = 0 + logger.info(f"Feature update for {ctx.project_id}, setting version to {this_ver}") + else: + this_ver.patch = last_ver.patch + 1 # type: ignore + logger.info(f"Updating {ctx.project_id} patch to {this_ver.patch}") # type: ignore + + pack.version = str(this_ver) + + else: # no changes, keep the patch + pack.version = released.version + + ctx.cache["gm4_manifest"].json = this_manifest.dict() def write_meta(ctx: Context): @@ -291,8 +280,18 @@ def write_updates(ctx: Context): # Append the module update list regardless if the marker existed init.lines.append("# Module update list") init.lines.append("data remove storage gm4:log queue[{type:'outdated'}]") - for m in modules.values(): + for i, m in modules.items(): + if not i.startswith("gm4_"): + continue # not a datapack (ie the rp) and has score to print version = Version(m.version).int_rep() website = f"https://gm4.co/modules/{m.id[4:].replace('_','-')}" init.lines.append(f"execute if score {m.id} load.status matches -1.. if score {m.id.removeprefix('gm4_')} gm4_modules matches ..{version - 1} run data modify storage gm4:log queue append value {{type:'outdated',module:'{m.name}',download:'{website}',render:'{{\"text\":\"{m.name}\",\"clickEvent\":{{\"action\":\"open_url\",\"value\":\"{website}\"}},\"hoverEvent\":{{\"action\":\"show_text\",\"value\":{{\"text\":\"Click to visit {website}\",\"color\":\"#4AA0C7\"}}}}}}'}}") +def repro_structure_to_bytes(content: StructureFileData) -> bytes: + """a modified Structure.to_bytes from beet, which ensures the GZip does not add + the current time.time to the nbt file header. + Used for deterministic pack builds and auto-patch detection""" + dst = BytesIO() + with GzipFile(fileobj=dst, mode="wb", mtime=0) as fileobj: + StructureFile(content).write(fileobj) # type: ignore ; nbtlib has no type annotations + return dst.getvalue() diff --git a/gm4/plugins/output.py b/gm4/plugins/output.py index 7e1a534d30..8e2fce67b2 100644 --- a/gm4/plugins/output.py +++ b/gm4/plugins/output.py @@ -42,6 +42,29 @@ def beet_default(ctx: Context): overwrite=True, ) +def resource_pack(ctx: Context): + """Saves the resourcepack to the ./out folder.""" + version = os.getenv("VERSION", "1.20") + out_dir = Path("out") + + ctx.assets.save( + path=out_dir / f"gm4_resource_pack_{version.replace('.', '_')}", + overwrite=True + ) + +def release_resource_pack(ctx: Context): + """Saves the resourcepack to the ./out folder.""" + version = os.getenv("VERSION", "1.20") + release_dir = Path("release") / version + + yield + + ctx.assets.save( + path=release_dir / f"gm4_resource_pack_{version.replace('.', '_')}.zip", + overwrite=True, + zipped=True + ) + def test(ctx: Context): """Saves the zipped datapack to the ./out folder in it's exit phase. diff --git a/gm4/plugins/player_heads.py b/gm4/plugins/player_heads.py index efe0ed8f95..d51cdc737e 100644 --- a/gm4/plugins/player_heads.py +++ b/gm4/plugins/player_heads.py @@ -10,8 +10,8 @@ from typing import Any, Callable, ClassVar, Generator import requests -from beet import Context, FileDeserialize, JsonFile, PngFile, TextFile -from mecha import CompilationUnit, Diagnostic, Mecha, MutatingReducer, rule +from beet import Context, FileDeserialize, JsonFile, PngFile +from mecha import Diagnostic, Mecha, MutatingReducer, rule from mecha.ast import ( AstChildren, AstCommand, @@ -25,7 +25,7 @@ from PIL.Image import Image from tokenstream import set_location -from gm4.utils import nested_get +from gm4.utils import InvokeOnJsonNbt parent_logger = logging.getLogger("gm4.player_heads") @@ -36,6 +36,7 @@ def beet_default(ctx: Context): ctx.data.extend_namespace.append(Skin) # register new filetype to datapack tf = ctx.inject(SkinNbtTransformer) ctx.inject(Mecha).transform.extend(tf) # register new ruleset to mecha + ctx.require("mecha.contrib.json_files") yield tf.cache_nonnative_references() @@ -50,7 +51,7 @@ class Skin(PngFile): image: ClassVar[FileDeserialize[Image]] = FileDeserialize() # purely here to solve type-warnings on PIL images -class SkinNbtTransformer(MutatingReducer): +class SkinNbtTransformer(MutatingReducer, InvokeOnJsonNbt): """Reducer class defining custom mecha parsing rules for skin texture data, and storing needed data for those operations""" def __init__(self, ctx: Context): self.ctx: Context = ctx @@ -209,48 +210,13 @@ def log_unused_textures(self): def cache_nonnative_references(self): """Adds any skin references from another module into skin_cache.json, so changes can trigger patch increments""" if (nonnative_refs := set(self.used_textures) - set(self.ctx.data[Skin])): - self.skin_cache["nonnative_references"][self.ctx.project_id] = list(nonnative_refs) + self.skin_cache["nonnative_references"][self.ctx.project_id] = sorted(nonnative_refs) else: self.skin_cache["nonnative_references"].pop(self.ctx.project_id, None) def output_skin_cache(self): JsonFile(self.skin_cache).dump(origin="", path="gm4/skin_cache.json") -def process_json_files(ctx: Context): - """Passes nbt contained in advancements, loot_tables ect.. through the custom Mecha AST rule for appropiate texture replacements""" - tf = ctx.inject(SkinNbtTransformer) - mc = ctx.inject(Mecha) - - def transform_snbt(snbt: str, db_entry_key: TextFile) -> str: - escaped_snbt = snbt.replace("\n", "\\\\n") - # NOTE snbt in loot-tables reacts weird to \n characters. Both \n and \\\\n produce the same ingame output (\\n). - # gm4 only has one case of \n in loot tables, so this replacement forces \n->\\\\n for the mecha parser to read it right. - # this may need to be altered in the future, but for now this means that \\\\n, while valid in vanilla loot-tables, will not - # work after being put through the mecha parser - node = mc.parse(escaped_snbt, type=AstNbtCompound) # parse string to AST - filename = os.path.relpath(jsonfile.original.source_path, ctx.directory) if jsonfile.original.source_path else None # get relative filepath for Diagnostics - mc.database.update({db_entry_key: CompilationUnit(source=snbt)}) #type:ignore # register fake CompilationUnit for Diagnostic printing, using unique string as key instead of the File() object, to support multiple entries from the same file - return mc.serialize(tf.invoke(node, filename=filename, file=db_entry_key)) # run AST through custom rule, and serialize back to string, passing along data for Diagnostic - - for name, jsonfile in [*ctx.data.loot_tables.items(), *ctx.data.item_modifiers.items()]: - # item modifiers, annoyingly, can have a list as the root, so we wrap in a dict to use nested_get - contents = {"listroot": jsonfile.data} if type(jsonfile.data) is list else jsonfile.data - - for func_list in nested_get(contents, "functions"): - f: Callable[[Any], bool] = lambda e: e["function"].removeprefix('minecraft:')=="set_nbt" - for i, entry in enumerate(filter(f, func_list)): - key = TextFile(_content=f"{name}_{i}", source_path=jsonfile.source_path) - entry["tag"] = transform_snbt(entry["tag"], db_entry_key=key) - - for name, jsonfile in ctx.data.advancements.items(): - for i, entry in enumerate(nested_get(jsonfile.data, "icon")): - key = TextFile(_content=f"{name}_{i}", source_path=jsonfile.source_path) - entry["nbt"] = transform_snbt(entry["nbt"], db_entry_key=key) - - # send any raised diagnostic errors to Mecha for reporting - mc.diagnostics.extend(tf.diagnostics) - - class MineskinAuthManager(): """A process for managing mineskin access credentials, prompting the user if needed""" def __init__(self, ctx: Context): diff --git a/gm4/plugins/prefabs.py b/gm4/plugins/prefabs.py index 1914c0f180..5be5a14ad5 100644 --- a/gm4/plugins/prefabs.py +++ b/gm4/plugins/prefabs.py @@ -2,8 +2,9 @@ from beet.contrib.find_replace import find_replace from beet.contrib.rename_files import rename_files from pydantic.v1 import Extra -import nbtlib # type: ignore +import nbtlib # type: ignore ; no stub file import re +from gm4.plugins.manifest import repro_structure_to_bytes class PrefabConfig(PluginOptions, extra=Extra.ignore): @@ -39,6 +40,7 @@ def structure_deep_rename(ctx: Context, find_namespace: str, repl_namespace: str # rename structure-file references for s in ctx.data.structures: - blocks = ctx.data.structures[s].data["blocks"].snbt() # type: ignore - updated_blocks_data = re.sub(f"{find_namespace}:([a-z0-9_/]+)", f"{repl_namespace}:\\1", blocks) # type: ignore - ctx.data.structures[s].data["blocks"] = nbtlib.parse_nbt(updated_blocks_data) # type: ignore + blocks = ctx.data.structures[s].data["blocks"].snbt() # type: ignore ; nbtlib typing missing + updated_blocks_data = re.sub(f"{find_namespace}:([a-z0-9_/]+)", f"{repl_namespace}:\\1", blocks) # type: ignore ; nbtlib typing missing + ctx.data.structures[s].serializer = repro_structure_to_bytes + ctx.data.structures[s].data["blocks"] = nbtlib.parse_nbt(updated_blocks_data) # type: ignore ; nbtlib typing missing diff --git a/gm4/plugins/resource_pack.py b/gm4/plugins/resource_pack.py new file mode 100644 index 0000000000..c4866103e2 --- /dev/null +++ b/gm4/plugins/resource_pack.py @@ -0,0 +1,970 @@ +import csv +import glob +import logging +import os +import re +import sys +from copy import deepcopy +from dataclasses import replace +from functools import cache +from fnmatch import fnmatch +from itertools import cycle +from typing import Any, ClassVar, Literal, Optional + +import numpy as np +from beet import ( + Cache, + Context, + Font, + InvalidOptions, + JsonFile, + Language, + ListOption, + Model, + NamespaceProxy, + PluginOptions, + WrappedException, + YamlFile +) +from beet.contrib.link import LinkManager +from beet.contrib.optifine import OptifineProperties +from beet.contrib.vanilla import Vanilla +from beet.core.utils import format_validation_error +from mecha import ( + AstChildren, + AstCommand, + AstJson, + AstJsonObject, + AstNbtCompoundEntry, + AstNbtPath, + AstNbtPathKey, + AstNbtValue, + Diagnostic, + DiagnosticCollection, + DiagnosticError, + Mecha, + MutatingReducer, + Reducer, + rule, +) +from nbtlib import String # type: ignore ; nbtlib missing stubfile +from pydantic.v1 import BaseModel, Extra, Field, ValidationError, validator # type: ignore ; v1 validator behaves strangely with type checking +from pydantic.v1.error_wrappers import ErrorWrapper +from tokenstream import set_location + +from gm4.utils import ( + InvokeOnJsonNbt, + MapOption, + add_namespace, + propagate_location, +) + +CUSTOM_MODEL_PREFIX = 3420000 + +parent_logger = logging.getLogger("gm4.resource_pack") + +#== Pydantic Plugin Config Models ==# +class ModelData(BaseModel): + """A complete config for a single model""" + item: ListOption[str] + reference: str + model: MapOption[str|list[dict[str,Any]]] = "" # defaults to same value as 'reference' #type:ignore ; the validator handles the default value + template: 'str|TemplateOptions' = "custom" + transforms: Optional[list['TransformOptions']] + textures: MapOption[str] = [] # defaults to same value as reference #type:ignore ; the validator handles the default value + + @validator('model', pre=True, always=True) # type: ignore ; v1 validator behaves strangely with type checking + def default_model(cls, model: Any, values: dict[str,Any]) -> dict[str, str|list[dict[str,Any]]]: + if isinstance(model, str): + model = [model] # so we can check len for number of items + if not model and "reference" in values: # no reference set, default to reference string + return {item: values["reference"] for item in values['item'].entries()} + if len(i:=values['item'].entries()) == 1 and isinstance(model, list) and isinstance(model[0], dict): # only one item id, predicate model allowed to be single list + return {i[0]: model} + if len(model)!=len(values["item"].entries()) and len(model)>1: # a single model name may be broadcast to all items, but otherwise lengths match # type: ignore ; 'model' inherits list[Unknown] from previous isinstance check + raise ValidationError([ErrorWrapper(ValueError("length of 'item' and 'model' do not match"), loc=())], model=ModelData) + if isinstance(model, list): # apply item->model map data + return dict(zip(values['item'].entries(), cycle(model))) # type: ignore + if isinstance(model, dict) and set(model.keys())!=set(values['item'].entries()): # make sure the map keys match the item types # type: ignore ; model is Unknown type + raise ValidationError([ErrorWrapper(ValueError("dict keys do not match values in 'item'"), loc=())], model=ModelData) + return model # model is already a mapped dict, of the same length as item # type: ignore + + @validator('template') # type: ignore ; v1 validator behaves strangely with type checking + def enforce_custom_with_override_predicates(cls, template: 'str|TemplateOptions', values: dict[str,Any]) -> 'TemplateOptions': + # if isinstance(values.get('model'), list) and template != "custom": + # raise ValidationError([ErrorWrapper(ValueError("specifying complex predicates in 'model' is not compatiable with templating. Option must be 'custom'"), loc=())], model=ModelData) + # # NOTE I don't believe this is a valid check anymore, but I'll leave it here commented in case it needs to be repaired in the future + # find and apply proper submodel + name = template.name if isinstance(template, TemplateOptions) else template + try: + submodel = {m.name: m for m in TemplateOptions.__subclasses__()}[name] + return submodel.parse_obj(template.dict() if isinstance(template, TemplateOptions) else {"name": template}) + except KeyError: + raise ValidationError([ErrorWrapper(ValueError(f"the specified template '{name}' could not be found"), loc=())], model=ModelData) + + @validator('transforms', each_item=True) # type: ignore ; v1 validator behaves strangely with type checking + def apply_transform_submodel(cls, transform: 'TransformOptions', values: dict[str,Any]) -> 'None|TransformOptions': + # find and apply proper submodel + try: + submodel = {m.name: m for m in TransformOptions.__subclasses__()}[transform.name] + return submodel.parse_obj(transform.dict()) + except KeyError: + raise ValidationError([ErrorWrapper(ValueError(f"the specified template '{transform.name}' could not be found"), loc=())], model=ModelData) + + @validator('textures', pre=True, always=True) # type: ignore ; v1 validator behaves strangely with type checking + def default_texture(cls, textures: MapOption[str], values: dict[str,Any]) -> MapOption[str]: + empty_list = False + if textures is None: # type: ignore + empty_list = True + elif isinstance(textures, (list,dict)): + empty_list = len(textures)==0 + elif isinstance(textures, MapOption): # type: ignore + empty_list = len(textures.entries())==0 + if empty_list and isinstance(v:=values.get("reference"), str): + return MapOption(__root__=[v]) + return textures + + def add_namespace(self, namespace: str) -> 'ModelData': + """Returns a new ModelData with the given given namespace applied to any fields""" + ret_dict = self.dict() + ret_dict["reference"] = add_namespace(self.reference, namespace) + ret_model = deepcopy(self.model.entries()) + for i, model_name in enumerate(ret_model): + if isinstance(model_name, str): + ret_model[i] = add_namespace(model_name, namespace) # accessed by index to overwrite original + else: # isinstance(model_name, list[dict]), add namespace to buried model parameter + for predicated_model in model_name: + if 'model' in predicated_model: + predicated_model['model'] = add_namespace(predicated_model['model'], namespace) + ret_dict["model"] = ret_model + if self.textures: + if isinstance(self.textures.__root__, list): + ret_dict["textures"] = [add_namespace(t, namespace) for t in self.textures.entries()] + else: # isinstance(self.textures.__root__, dict): + ret_dict["textures"] = {k: add_namespace(v, namespace) for k, v in self.textures.items()} + ret_dict["template"] = self.template.add_namespace(namespace) # type: ignore ; pydantic validation ensures type is TemplateBase + return ModelData.parse_obj(ret_dict) + +class NestedModelData(BaseModel): + """A potentially incomplete config, allowing for nested inheritance of fields""" + item: Optional[ListOption[str]] + reference: Optional[str] + model: Optional[Any] # defalts to reference, expects type of 'Optional[MapOption[str|list[dict[str,Any]]]]', but Pydantic casting caused unknown issues + template: Optional["str|TemplateOptions"] = "custom" + transforms: Optional[list['TransformOptions']] + textures: Optional[MapOption[str]] + broadcast: Optional[list['NestedModelData']] = [] + + def collapse_broadcast(self) -> list['NestedModelData']: + """Recursively collapses broadcast fields into a list of NestedModelData""" + if not self.broadcast: + return [self] + ret_list: list[NestedModelData] = [] + for child in self.broadcast: + m = NestedModelData.parse_obj(self.dict(exclude_unset=True,exclude={"broadcast"}) | child.dict(exclude_unset=True)) + if m.broadcast: + m = m.collapse_broadcast() + ret_list.extend(m) + else: + ret_list.append(m) + return ret_list + +class GuiFont(BaseModel): + """config for a single container gui using custom fonts""" + translation: str + container: 'str|ContainerGuiOptions' + texture: str + + @validator('container') # type: ignore ; v1 validator behaves strangely with type checking + def resolve_container(cls, container: 'str|ContainerGuiOptions', values: dict[str,Any]) -> 'ContainerGuiOptions': + container_type = container.container if isinstance(container, ContainerGuiOptions) else container + try: + subclass = {m.container: m for m in ContainerGuiOptions.__subclasses__()}[container_type] + return subclass.parse_obj(container.dict() if isinstance(container, ContainerGuiOptions) else {"name": container}) + except KeyError: + raise ValidationError([ErrorWrapper(ValueError(f"the specified template '{container_type}' could not be found"), loc=())], model=GuiFont) + + def add_namespace(self, namespace: str) -> 'GuiFont': + """returns a new GuiFont with the texture field namespaced""" + return GuiFont( + translation=self.translation, + container=self.container, + texture=add_namespace(self.texture, namespace) + ) + +class FlatResourcePackOptions(BaseModel): + """Contains a flat list of complete rp config objects""" + model_data: list[ModelData] + gui_fonts: list[GuiFont] + + def add_namespace(self, namespace:str): + self.model_data=[m.add_namespace(namespace) for m in self.model_data] + self.gui_fonts=[g.add_namespace(namespace) for g in self.gui_fonts] + + def template_mutations(self): + for m in self.model_data: + m.template.mutate_config(m) # type: ignore , model validation ensures tempalte is type TemplateOptions() + +class ResourcePackOptions(PluginOptions, extra=Extra.ignore): + model_data: list[NestedModelData] = [] + gui_fonts: list[GuiFont] = [] + + def process_inheritance(self) -> FlatResourcePackOptions: + """Collapses and returns any broadcast fields into processed flat list""" + ret: list[ModelData] = [] + errors: list[tuple[int, ValidationError]] = [] + for i, model in enumerate(self.model_data): + try: + ret.extend([ModelData.parse_obj(m.dict()) for m in model.collapse_broadcast()]) + except ValidationError as exc: + errors.append((i, exc)) + + if errors: # generate traceback for configs missing information + wrapper_errors: list[ErrorWrapper] = [] + for i, error in errors: + primary_loc = ("model_data", i) + s = format_validation_error("gm4", ValidationError(model=ModelData, errors=[ + ErrorWrapper(ValueError(e['msg']), loc=(*primary_loc,*e['loc'])) + for e in error.errors() + ])) + sub_explainations = "\n\t"+"\n\t".join(s.split("\n")) + wrapper_errors.append(ErrorWrapper(ValueError("a child inherited incomplete options:"+sub_explainations), loc=primary_loc)) + complete_explaination = format_validation_error("gm4", ValidationError(model=ModelData, errors=wrapper_errors)) + raise InvalidOptions("gm4", complete_explaination) + + return FlatResourcePackOptions(model_data=ret, gui_fonts=self.gui_fonts) + + +class TranslationLinterOptions(PluginOptions, extra=Extra.ignore): + translation_linter_ignores: list[str] = [] + +#== Configurable Base Classes ==# +class TemplateOptions(BaseModel, extra=Extra.allow): + """A pydantic model to extend for configured model templates, which generate model files for common""" + default_transforms: ClassVar[list['TransformOptions']] = [] + name: ClassVar[str] + texture_map: ClassVar[list[str]|None] = None + + def __init_subclass__(cls) -> None: + cls.__config__.extra = Extra.ignore # prevent subclasses from inheriting Extra.allow + + def dict(self, **kwargs: Any) -> dict[str,Any]: + return super().dict(**kwargs) | {"name": self.name} # ensure name class-var is preserved in dict-casting + + def generate_model(self, config: ModelData, models_container: NamespaceProxy[Model]) -> None: + """Processes the template, and applies transforms""" + if self.texture_map and config.textures and isinstance(config.textures.__root__, list): + config = ModelData(**config.dict() | {"textures": dict(zip(self.texture_map, config.textures.entries()))}) + for output_model in self.process(config, models_container): # for each returned pointer, add transforms as needed + if self.default_transforms: + for transform in self.default_transforms: + transform.apply_transform(output_model) + if config.transforms: + for transform in config.transforms: + transform.apply_transform(output_model) + + def process(self, config: ModelData, models_container: NamespaceProxy[Model]) -> list[Model]: + """Overridden to create and mount the model object, and return pointers to them""" + raise NotImplementedError() + + def add_namespace(self, namespace: str): + """Overridden to add namespace data to sub-config fields added by a template""" + return self.dict() + + def mutate_config(self, config: ModelData): + """Overridden to let a template mutate/mangle root level fields of ModelData""" + pass + +class TransformOptions(BaseModel, extra=Extra.allow): + """A pydantic model to extend for configured model transformers, which add model offset/scale ect.. to model files""" + name: ClassVar[str] + def __init_subclass__(cls) -> None: + cls.__config__.extra = Extra.ignore # prevent subclasses from inheriting Extra.allow + + def dict(self, **kwargs: Any) -> dict[str,Any]: + return super().dict(**kwargs) | {"name": self.name} # ensure name class-var is preserved in dict-casting + + def apply_transform(self, model: Model) -> None: + """Modifies the given model, applying transformation data to the display compound""" + raise NotImplementedError() + +class ContainerGuiOptions(BaseModel, extra=Extra.allow): + """a pydantic model to extend for container gui fonts""" + container: ClassVar[str] + def __init_subclass__(cls) -> None: + cls.__config__.extra = Extra.ignore # prevent subclasses from inheriting Extra.allow + + def process(self, config: GuiFont, counter_cache: Cache) -> tuple[str, list[dict[str,Any]]]: + """requisitions unicode characters and returns the translation and font providers that make it up""" + raise NotImplementedError() + + def next_unicode(self, counter_cache: Cache) -> str: + ret = counter_cache.json["__next__"] + counter_cache.json["__next__"] += 1 + return chr(ret) + + def dict(self, **kwargs: Any) -> dict[str,Any]: + return super().dict(**kwargs) | {"container": self.container} # ensure name class-var is preserved in dict-casting + + +NestedModelData.update_forward_refs() +ModelData.update_forward_refs() +GuiFont.update_forward_refs() + +#== Beet Plugins ==# +def beet_default(ctx: Context): + rp = ctx.inject(GM4ResourcePack) + tl = ctx.inject(TranslationLinter) + ctx.require("mecha.contrib.json_files") + # mecha register + ctx.inject(Mecha).transform.extend(rp) + ctx.inject(Mecha).lint.extend(tl) + + logging.getLogger("beet.contrib.babelbox").addFilter(block_incomplete_translation) + logging.getLogger("mecha").addFilter(limit_mecha_diagnostics) + + yield + tl.warn_unused_translations() + tl.apply_babelbox_backfill() + rp.lint_model_textures() + +def build(ctx: Context): + rp = ctx.inject(GM4ResourcePack) + rp.resolve_config() + rp.generate_gui_fonts() + rp.update_modeldata_registry() + rp.generate_model_files() + rp.process_optifine() + rp.generate_model_overrides() + + if not ctx.assets.extra.get("pack.png") and ctx.data.extra.get("pack.png"): + ctx.assets.icon = ctx.data.icon + +def setup(ctx: Context): + mount_registry(ctx) + + # init font counter + ctx.cache["gui_font_counter"].json = { + "__next__": ord("\u9000") + } + + # check for CLI meta-variable for backfilling the translations.csv + ## beet -s meta.gm4.babelbox_backfill=True dev bat_grenades + babelbox_backfill: bool = ctx.meta.get("gm4",{}).get("babelbox_backfill", False) + + # clear and compile cross-module translation key list + ctx.cache["translations"].clear() + keys: list[str] = [] + for path in glob.glob("*/assets/translations.csv"): + with open(path) as f: + reader = csv.DictReader(f) + if reader.fieldnames and reader.fieldnames[0] != "key": + raise KeyError(f"{path} must contain a column named 'key'") + keys.extend([row['key'] for row in reader]) # type: ignore ; csv only contains strings + ctx.cache["translations"].json = {"keys": list(set(keys)), "backfill": babelbox_backfill} + +def mount_registry(ctx: Context): + ctx.cache["modeldata_registry"].json = JsonFile(source_path="gm4/modeldata_registry.json").data + +def dump_registry(ctx: Context): + registry = ctx.cache["modeldata_registry"].json + # sort registriy alphabetically and numerically + registry["items"] = dict(sorted(registry["items"].items())) + for item_id, ref_map in registry["items"].items(): + registry["items"][item_id] = dict(sorted(ref_map.items(), key=lambda e: e[1])) + + JsonFile(registry).dump(origin="", path="gm4/modeldata_registry.json") + ctx.cache["modeldata_registry"].delete() + +def pad_model_overrides(ctx: Context): + """Adds overrides for the vanilla model, filling in gaps between CMD values""" + vanilla = ctx.inject(Vanilla) + vanilla_models_jar = vanilla.mount("assets/minecraft/models/item") + + for name, model in ctx.assets["minecraft"].models.items(): + vanilla_overrides = [{"predicate":{},"model": f"minecraft:{name}"}] + vanilla_models_jar.assets["minecraft"].models[name].data.get("overrides", []) + overrides: list[Any] = model.data["overrides"] + prior_cmd = 1e8 + for i, override in reversed(list(enumerate(overrides))): + if "custom_model_data" in (pred:=override.get("predicate")): + if prior_cmd-(prior_cmd:=pred["custom_model_data"]) > 1: # theres a gap to fill with the vanilla model + for entry in vanilla_overrides: + entry["predicate"]["custom_model_data"] = prior_cmd+1 + for vanilla_override in reversed(vanilla_overrides): + overrides.insert(i+1, deepcopy(vanilla_override)) + + +def link_resource_pack(ctx: Context): + """manually links the combined resource pack to minecraft's RP folder when using 'beet dev'""" + ctx.assets.name = "DEV gm4_resource_pack" + lm = ctx.inject(LinkManager) + + # clear DP link, we only want to send a RP to minecraft + dp_dir = lm.data_pack + lm.data_pack = None + + lm.autosave_handler(ctx) # send RP to minecraft + + lm.data_pack = dp_dir # restore the DP link + +class GM4ResourcePack(MutatingReducer, InvokeOnJsonNbt): + """Service Object handling CustomModelData and generated item models""" + + def __init__(self, ctx: Context): + self.ctx = ctx + self.cmd_prefix = CUSTOM_MODEL_PREFIX # enables value to be changed by other projects, like the public server + self.registry = ctx.cache["modeldata_registry"].json + self.logger = parent_logger.getChild(ctx.project_id) + self._opts = FlatResourcePackOptions(model_data=[], gui_fonts=[]) # unloaded config + super().__init__() + + @property + def opts(self) -> FlatResourcePackOptions: + return self._opts + + def resolve_config(self): + if (p:=self.ctx.directory/"assets/model_data.yaml").exists(): + addtl_config = YamlFile(source_path=p).data.get("model_data") + self.ctx.meta["gm4"]["model_data"].extend(addtl_config) + self._opts = self.ctx.validate("gm4", validator=ResourcePackOptions).process_inheritance() + self._opts.add_namespace(self.ctx.project_id) + self._opts.template_mutations() + + #== Custom Model Data registration and management ==# + def update_modeldata_registry(self): + """Updates shared modeldata_registry.json with entries from the beet.yaml""" + item_registry: dict[str, dict[str, int]] = self.registry.setdefault("items", {}) + + # add new references and assign values + for m in self.opts.model_data: + conflicts = False + i, err = self.retrieve_index(m.reference) + if not err: # existing index, is it available to assign to all items? + for item_id in m.item.entries(): + reg = item_registry.setdefault(item_id, {}) + used_idxs = {k: reg[k] for k in reg.keys() - {m.reference}}.values() + if i in used_idxs: + self.logger.warning(f"Failed to share existing CustomModelData for '{m.reference}' to '{item_id}'. A new value will be assigned for this reference; existing items may lose their texture!") + conflicts = True + if not conflicts: # existing CMD is available to apply to any new items + for item_id in [e for e in m.item.entries() if m.reference not in item_registry.get(e, {})]: + self.set_index(item_id, i, m.reference) + if err or conflicts: # no existing index, or existing isn't available; get a new one + self.find_new_index(m.item.entries(), m.reference) + + # remove unused references + # NOTE deleting modeldata is really only supported for development cycles. Once published, a cmd value should be permanent. + # Thus, a reference will only be removed if it is no longer present on *any* item in the beet.yaml + all_refs = {r.reference for r in self.opts.model_data if r.reference.startswith(self.ctx.project_id)} + for item_id, reg in item_registry.items(): + for ref in list(reg.keys()): + if ref.startswith(self.ctx.project_id) and ref not in all_refs and self.ctx.project_id != 'gm4': + self.logger.info(f"Removing undefined CustomModelData from {item_id} registry: '{ref}'") + del reg[ref] + + def generate_model_overrides(self): + """Generates item model overrides in the 'minecraft' namespace, adding predicates for CustomModelData""" + vanilla = self.ctx.inject(Vanilla) + vanilla_models_jar = vanilla.mount("assets/minecraft/models/item") + # group models by item id + for item_id in {i for m in self.opts.model_data for i in m.item.entries()}: + models = filter(lambda m: item_id in m.item.entries(), self.opts.model_data) # with this item_id + models = sorted(models, key=lambda m: self.retrieve_index(m.reference)[0]) + + vanilla_model = deepcopy( (v:=vanilla_models_jar.assets.models[f"minecraft:item/{item_id}"].data) | ({} if v.get("overrides") else {"overrides": []}) ) + vanilla_overrides: list[Any] = vanilla_model["overrides"] + for override in vanilla_overrides: + override["model"] = add_namespace(override["model"], "minecraft") # ensure vanilla models have namespaced files + unchanged_vanilla_overrides = vanilla_overrides.copy() + + for model in models: + m = model.model[item_id] # model string, or predicate settings, for this particular item id + # setup overrides to add CMD to + if isinstance(m, list): # manual predicate merging specified + merge_overrides = [o|{"user_defined": True} for o in m] + else: + merge_overrides = unchanged_vanilla_overrides.copy() # get vanilla overrides + merge_overrides.append({}) # add an empty predicate to add CMD onto, without all other case checks + + for pred in merge_overrides: + if not pred.get("model") and not isinstance(m, str): + self.logger.warn(f"Manually specified model predicate has no 'model' field, and is malformed:\n\t{pred}") + vanilla_overrides.append({ + "predicate": { + "custom_model_data": self.cmd_prefix+self.retrieve_index(model.reference)[0], + } | pred.get("predicate", {}), + "model": pred["model"] if pred.get("user_defined") else m # type:ignore , user-defined model predicates use their own model reference. m is a string in all other cases + }) + self.ctx.assets.models[f"minecraft:item/{item_id}"] = Model(vanilla_model) + + def retrieve_index(self, reference: str) -> tuple[int, KeyError|None]: + """retrieves the CMD value for the given reference""" + for reg in self.registry["items"].values(): + if reference in reg: + return reg[reference], None + return -self.cmd_prefix, KeyError(f"{reference} has no asscioated index") + + def find_new_index(self, item_ids: list[str], reference: str): + """finds the next available CMD value for the given items and applies it to the registry""" + try: + allocation_id = next(filter(lambda k: fnmatch(self.ctx.project_id, k), self.registry["allocations"].keys())) #type: ignore ; type checker thinks 'k' is _T@next, not str + except StopIteration: + allocation_id = None + l, u = self.registry["allocations"].get(allocation_id, (1,99)) + available_indices = set(range(l, u+1)) + + for item_id in item_ids: + used_values = set(self.registry["items"].get(item_id, {}).values()) + available_indices -= used_values + + if not available_indices: + self.logger.warning("No Valid CMD is open for assignment! Your module may require a specially assigned value allocation if registering many CMD values.") + raise RuntimeError("Ran out of CMD values to assign!") + + i = min(available_indices) + self.logger.info(f"Issuing new CustomModelData for '{reference}': {i}") + for item_id in item_ids: + self.set_index(item_id, i, reference) + + def set_index(self, item_id: str, index: int, reference: str): + """sets the given cmd index on the item""" + if os.getenv("GITHUB_ACTIONS"): + self.logger.error(f"Model-Data cache is outdated. Github Actions cannot issue CustomModelData. Run the build locally and commit changes to modeldata_registry.json") + sys.exit(1) # stop the build and mark the github action as failed + + self.registry.setdefault("items", {}).setdefault(item_id, {})[reference] = index + self.logger.info(f"Issuing CustomModelData {index} for {item_id}") + + #== Mecha Transformer Rules ==# + @rule(AstNbtCompoundEntry) + def cmd_substitutions(self, node: AstNbtCompoundEntry, **kwargs: Any): + if node.key.value == "CustomModelData": + match node.value.evaluate(): + case String(reference): + index, exc = self.retrieve_index(add_namespace(reference, self.ctx.project_id)) + if exc: + yield Diagnostic("error", str(exc), filename=kwargs.get("filename"), file=kwargs.get("file")) + node = replace(node, value=AstNbtValue.from_value(index+self.cmd_prefix)) + case _: + pass + return node + + @rule(AstCommand, identifier="data:modify:storage:target:targetPath:set:value:value") + @rule(AstCommand, identifier="data:modify:block:targetPos:targetPath:set:value:value") + @rule(AstCommand, identifier="data:modify:entity:target:targetPath:set:value:value") + def cmd_subs_datamodify(self, node: AstCommand): + ast_target, ast_target_path, ast_nbt = node.arguments + match ast_target_path, ast_nbt.evaluate(): # type: ignore ; ast_nbt is AstNbtValue|AstNbtCompound, which do have .evaluate() methods + case AstNbtPath(components=[*_, AstNbtPathKey(value="CustomModelData")]), String(reference): + index, exc = self.retrieve_index(add_namespace(reference, self.ctx.project_id)) + if exc: + d = Diagnostic("error", str(exc)) + yield set_location(d, ast_nbt) + node = replace(node, arguments=AstChildren([ast_target, ast_target_path, AstNbtValue.from_value(index+self.cmd_prefix)])) + return node + + + #== Non-mecha CMD filling ==# + def process_optifine(self): + """Handles string references in the .properties files of Optifine""" + pattern = re.compile(r"^nbt.CustomModelData=(?:regex:\()?(.+?)\)?$", re.MULTILINE) + for name, propfile in self.ctx.assets[OptifineProperties].items(): + match = pattern.search(propfile.text) + if not match: + continue + + for ref in [r for r in match.group(1).split("|") if r.startswith("$")]: + index, exc = self.retrieve_index(add_namespace(ref.lstrip("$"), self.ctx.project_id)) + if exc: + raise WrappedException(f"Optifine CIT file {name}.properties") from exc + propfile.text = propfile.text.replace(ref, str(index+self.cmd_prefix)) + + #== Model file generation ==# + def generate_model_files(self): + """Create individual models for each item/block according to its config""" + for model in self.opts.model_data: + if isinstance(model.template, str): # type annotation, ensured by model validation + continue + + # generate model and mount to the pack + model.template.generate_model(model, self.ctx.assets.models) + + def lint_model_textures(self): + """Checks model files to ensure referenced textures exist""" + for name, model in list(self.ctx.assets.models.items()): + if name.startswith("minecraft:"): + continue # vanilla model - will have vanilla textures so do not check + for tex in model.data.get("textures", {}).values(): + if not tex.startswith("minecraft:") and tex not in self.ctx.assets.textures: + self.logger.warning(f"Missing texture '{tex}' in {name}") + + #== Font-Gui file generation ==# + def generate_gui_fonts(self): + for gui in self.opts.gui_fonts: + if not isinstance(gui.container, ContainerGuiOptions): + continue # model validation ensures this + + translation, providers = gui.container.process(gui, self.ctx.cache["gui_font_counter"]) + self.ctx.generate("gm4:en_us", merge=Language({ + gui.translation: translation + })) + self.ctx.generate("gm4:container_gui", merge=Font({ + "providers": providers + })) + +class TranslationLinter(Reducer): + """Mecha linter ensuring all translation keys are registered in translations.csv""" + def __init__(self, ctx: Context): + self.ctx = ctx + self.mecha_database = ctx.inject(Mecha).database + vanilla_lang = ctx.inject(Vanilla).mount("assets/minecraft/lang/en_us.json") + self.vanilla_keys = set(vanilla_lang.assets.languages["minecraft:en_us"].data.keys()) + self.total_keys: set[str] = set() + self.local_keys: set[str] = set() + self.used_keys: set[str] = set() + self.logger = parent_logger.getChild(ctx.project_id) + self.backfill_enable: bool = ctx.cache["translations"].json["backfill"] + self.backfill_values: dict[str, str] = {} + self.ignored_keys: set[str] = set(ctx.validate("gm4", TranslationLinterOptions).translation_linter_ignores) + super().__init__() + + @rule(AstNbtValue) + def check_nbt_json(self, node: AstNbtValue): + mc = self.ctx.inject(Mecha) + if isinstance(node.value, (String, str)): + try: + json_ast = mc.parse(node.value, type=AstJson) + with self.use_diagnostics(collec:=DiagnosticCollection()): + self.invoke(json_ast) # process new node with reducer rules + for exc in collec.exceptions: + yield propagate_location(exc, node) + except DiagnosticError: + pass # string is not json + + @rule(AstJsonObject) + def missing_en_us_translations(self, node: AstJsonObject): + self.setup_translation_lookups() + + # manually skip gm4 root advancement, which contains globally defined translations + resource_location = self.mecha_database[self.mecha_database.current].resource_location or "null:null" + if resource_location == "gm4:root": + return + + # check node fallback contents against babelbox translations + match node.evaluate(): # type: ignore , node has evaluate() method + case {"translate": str(transl_key), "fallback": str(fallback)}: + if transl_key.startswith("gui.gm4") or transl_key=="gm4.second": + # gui-texture translations from other modules are defined in their gui_fonts segment of beet.yaml, so they won't be + # known to the linter easily. For now, we just ignore their warnings + return + if self.babelbox_lang.get(transl_key) != fallback: + if transl_key in self.babelbox_lang and not self.backfill_enable: + yield set_location(Diagnostic("info", f"Fallback for {transl_key} does not match that provided in 'translations.csv'"), node) + + elif self.backfill_enable and transl_key not in self.backfill_values and transl_key not in self.total_keys: + self.logger.info(f"Backfilling the fallback for {transl_key} into 'translations.csv'") + self.backfill_values[transl_key] = fallback + yield self.check_key(transl_key, node) + + case {"translate": str(transl_key), **other_keys}: + if "fallback" not in other_keys and self.babelbox_lang.get(transl_key): # if non-technical translation + yield set_location(Diagnostic("warn", f"No translation fallback specified for {transl_key}"), node) + yield self.check_key(transl_key, node) + return + + def check_key(self, transl_key: str, node: Any): + self.used_keys.add(transl_key) + if transl_key not in self.total_keys and not self.backfill_enable: + return set_location(Diagnostic("warn", f"Translation key not defined in en_us: {transl_key}"), node) + return + + def setup_translation_lookups(self): + # setup lookup list if first invocation + if not self.total_keys: + self.babelbox_lang = self.ctx.assets.languages.get("gm4_translations:en_us", Language()).data + self.local_keys = ( + set(self.babelbox_lang.keys()) | + set(self.ctx.assets.languages.get("gm4:en_us", Language()).data.keys()) + ) + self.total_keys = ( + self.vanilla_keys | + self.local_keys | + self.ignored_keys | + set(Language(source_path="base/assets/gm4/lang/en_us.json").data.keys()) | + self.get_guidebook_translations() | + set(self.ctx.cache["translations"].json["keys"]) | + {"%1$s%3427655$s", "%1$s%3427656$s"} # manual old keys + ) + + @cache + def get_guidebook_translations(self) -> set[str]: + # internally loads keys in guidebook translations.csv, cached for each subproject build + with open("gm4_guidebook/assets/translations.csv", 'r') as csvfile: + reader = csv.DictReader(csvfile) + return {row["key"] for row in reader} + + def warn_unused_translations(self): + for key in self.ctx.assets.languages.get("gm4_translations:en_us", Language()).data: + if key not in self.used_keys and key not in self.ignored_keys and key in self.local_keys: + self.logger.warn(f"Translation '{key}' is defined but not used") + + def apply_babelbox_backfill(self): + """Takes found out-of-date fallbacks and saves them to the translations.csv table""" + if not self.backfill_enable: + return + + if (c:=self.ctx.directory / "assets" / "translations.csv").exists(): + babelbox_path = c + elif (c:=self.ctx.directory / "translations.csv").exists(): + babelbox_path = c + else: + if self.backfill_values: + self.logger.warn("Babelbox backwill was enabled but no 'translations.csv' file was found") + return # no file to update + + with open(babelbox_path, 'r', encoding='utf-8', newline='') as csvfile: + reader = csv.DictReader(csvfile) + fieldnames = reader.fieldnames + if not fieldnames: + self.logger.warn("Babelbox backfill failed - fieldnames could not be automatically detected") + return + translations = list([row for row in reader]) + + with open(babelbox_path, 'w', encoding='utf-8', newline='') as csvfile: + writer = csv.DictWriter(csvfile, fieldnames, extrasaction='ignore') + writer.writeheader() + for row in translations: + new_fallback = {"en_us": fbk.replace("\n", "\\n")} if (fbk:=self.backfill_values.pop(row["key"], None)) else {} + writer.writerow(row | new_fallback) + for key, fbk in self.backfill_values.items(): # any remaining new entries not already in file + writer.writerow({"key": key, "en_us": fbk.replace("\n", "\\n")}) + + +#== Logging Filters ==# +def block_incomplete_translation(record: logging.LogRecord): + """logger filter to hide missing translations for anything but default english""" + locale: str = record.args[0] # type: ignore ; babelbox only issues one logger event, this will be a string + return locale == 'en_us' + +def limit_mecha_diagnostics(record: logging.LogRecord): + """hard limits the printed length of a mecha diagnostic line""" + TRUNCATION_LENGTH = 1_000 + truncated: list[str] = [] + for line in record.args[0].splitlines(): # type: ignore ; arg 0 is a paragraph of diagnostic text + truncated.append(line if len(line) < TRUNCATION_LENGTH else line[:TRUNCATION_LENGTH-3] + "...") # type: ignore ; line is a str + record.args = ("\n".join(truncated),) + return True + +#== Default Templates and Transforms ==# +def ensure_single_model_config(template_name: str, config: ModelData) -> str: + """Does common error checking for templates that only work when creating a single model file""" + if len(config.model.entries()) > 1: + raise InvalidOptions("gm4.model_data", f"{config.reference}; Template '{template_name}' only supports single entry 'model' fields.") + if isinstance(model_name:=config.model.entries()[0], list): + raise InvalidOptions("gm4.model_data", f"{config.reference}; Template '{template_name}' does not support predicate override 'model' fields.") + return model_name + +class BlankTemplate(TemplateOptions): + name = "custom" + + def process(self, config: ModelData, models_container: NamespaceProxy[Model]) -> list[Model]: + """A model file will be provided in source - do not generate a model. + Will process any specified transforms and add them to the model file""" + if config.transforms: + ret_list: list[Model] = [] + for m in config.model.entries(): + for model_file in ([override['model'] for override in m] if not isinstance(m, str) else [m]): + try: + ret_list.append(models_container[model_file]) + except: + parent_logger.warning(f"Custom specified model {model_file} does not exist, but was configured to recieve transforms.") + return ret_list + return [] + +class GeneratedTemplate(TemplateOptions): + name = "generated" + + def process(self, config: ModelData, models_container: NamespaceProxy[Model]) -> list[Model]: + if len(config.textures.entries()) > 1: + raise InvalidOptions("gm4.model_data", f"{config.reference}; Template 'generated' currently only supports a single texture.") + # NOTE in the future, `generated` could accept a map for textures to provide a different texture for each model. But packs may be better served by simply creating those models themselves + + ret_list: list[Model] = [] + for model_name in config.model.entries(): + if isinstance(model_name, list): + raise InvalidOptions("gm4.model_data", f"{config.reference}; Template 'generated' does not support predicate override 'model' fields.") + m = models_container[model_name] = Model({ + "parent": "minecraft:item/generated", + "textures": { + "layer0": f"{config.textures.entries()[0]}" + } + }) + ret_list.append(m) + return ret_list + +class GeneratedOverlayTemplate(TemplateOptions): + name = "generated_overlay" + + def process(self, config: ModelData, models_container: NamespaceProxy[Model]) -> list[Model]: + """A special-case 'generated' template, where an 'overlay' texture is specified by appending '_overlay' to its filename""" + model_name = ensure_single_model_config(self.name, config) + m = models_container[model_name] = Model({ + "parent": "minecraft:item/generated", + "textures": { + "layer0": f"{config.textures.entries()[0]}", + "layer1": f"{config.textures.entries()[0]}_overlay" + } + }) + return [m] + +class HandheldTemplate(TemplateOptions): + name = "handheld" + + def process(self, config: ModelData, models_container: NamespaceProxy[Model]): + model_name = ensure_single_model_config(self.name, config) + m = models_container[model_name] = Model({ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": f"{config.textures.entries()[0]}" + } + }) + return [m] + +class VanillaTemplate(TemplateOptions): + name = "vanilla" + + def process(self, config: ModelData, models_container: NamespaceProxy[Model]): + model_names = config.model.entries() + if any([isinstance(m, list) for m in model_names]): + raise InvalidOptions("gm4.model_data", f"{config.reference}; Template 'vanilla' does not support predicate override 'model' fields.") + if len(set(model_names)) == 1 and len(config.item.entries()) > 1: + model_names = [f"{model_names[0]}_{item}" for item in config.item.entries()] # if only one model name given, make one model per item id + + ret_list: list[Model] = [] + for item, model_name in zip(config.item.entries(), model_names): + m = models_container[model_name] = Model({ # type: ignore ; list is checked above to be all strings + "parent": f"minecraft:item/{item}" + }) + ret_list.append(m) + config.model = MapOption(__root__=dict(zip(config.item.entries(), model_names))) + return ret_list + +class BlockTemplate(TemplateOptions): + name = "block" + texture_map = ["top", "bottom", "front", "side"] + + def process(self, config: ModelData, models_container: NamespaceProxy[Model]): + model_name = ensure_single_model_config(self.name, config) + m = models_container[model_name] = Model({ + "parent": "minecraft:block/cube", + "textures": { + "down": config.textures['bottom'], + "up": config.textures['top'], + "north": config.textures['front'], + "south": config.textures['side'], + "west": config.textures['side'], + "east": config.textures['side'] + } + }) + return [m] + +class AdvancementIconTemplate(TemplateOptions): + name = "advancement" + forward: Optional[str] + + # NOTE since advancements are all in the gm4 namespace, so are these models. This template ignores the 'model' field of ModelData + def process(self, config: ModelData, models_container: NamespaceProxy[Model]) -> list[Model]: + advancement_name = config.reference.split("/")[-1] + if not self.forward: + self.forward = f"minecraft:item/{config.item.entries()[0]}" + m = models_container[f"gm4:gui/advancements/{advancement_name}"] = Model({ + "parent": self.forward + }) + config.model = MapOption(__root__={config.item.entries()[0]: f"gm4:gui/advancements/{advancement_name}"}) + return [m] + + def add_namespace(self, namespace: str): + return self.dict() | ({"forward": add_namespace(self.forward, namespace)} if self.forward else {}) + +class ItemDisplayModel(TransformOptions): + """Calculates the model transform for an item_display entity, located at the specified origin, facing south, for the model to align with the block-grid""" + origin: list[float] = Field(..., max_items=3, min_items=3) + scale: list[float] = Field(..., max_items=3, min_items=3) + translation: list[float] = Field(default=[0,0,0], max_items=3, min_items=3) + rotation: list[float] = Field(default=[0.,0.,0.], max_items=3, min_items=3) # euler angle form of total rotation. NOTE only accounts for simple angles (90,180 ect...) + display: Literal["none", "thirdperson_lefthand", "thirdperson_righthand", "firstperson_lefthand", "firstperson_righthand", "head", "gui", "ground", "fixed"] = "head" + name: ClassVar[str] = "item_display" + + def apply_transform(self, model: Model): + model.data.setdefault("display", {})[self.display] = { + "rotation": list(-1*np.array(self.rotation)), + "translation": list(16 * (np.array([-0.5,0.5,-0.5])+(np.array(self.origin)*np.array([1,-1,1]))-np.array(self.translation)) / np.array(self.scale)), # type: ignore ; self.origin*[1,-1,1] is faulty interpreted by type checker as ndarray[bool_] + "scale": list(1/np.array(self.scale)*1.006) + } + +#== Convience Template/Transform Presets ==# +class LegacyMachineArmorStand(BlockTemplate, TemplateOptions): + """An 'block' template preset with the 'item_display' transformer for the legacy small-armor-stand-head-slot of custom crafters""" + default_transforms = [ + ItemDisplayModel( + origin=[0.5, 1, 0.5], + scale=[0.438, 0.438, 0.438], + translation=[0, 0, 0], + display='head' + ) + ] + name = "legacy_machine_block" + + +#== Default Gui-Font Generators ==# +class CenteredContainerGui(ContainerGuiOptions): + container = "_centered" + + def process(self, config: GuiFont, counter_cache: Cache) -> tuple[str, list[dict[str, Any]]]: + u1 = self.next_unicode(counter_cache) + u2 = self.next_unicode(counter_cache) + return u2+u1+u2, [ + { + "type": "bitmap", + "file": config.texture+".png", + "ascent": 13, + "height": 166, + "chars": [u1] + }, + { + "type": "bitmap", + "file": config.texture+".png", + "ascent": -32768, + "height": -83, + "chars": [u2] + } + ] + +class RightAlignContainerGui(ContainerGuiOptions): + container = "_right_align" + + def process(self, config: GuiFont, counter_cache: Cache) -> tuple[str, list[dict[str, Any]]]: + u1 = self.next_unicode(counter_cache) + u2 = self.next_unicode(counter_cache) + return "\uf808"+u1+u2+"\uf824", [ + { + "type": "bitmap", + "file": config.texture+".png", + "ascent": 13, + "height": 133, + "chars": [u1] + }, + { + "type": "bitmap", + "file": config.texture+".png", + "ascent": -32768, + "height": -133, + "chars": [u2] + }, + ] + +class HopperContainerGui(RightAlignContainerGui, ContainerGuiOptions): + container = "hopper" + +class DropperContainerGui(CenteredContainerGui, ContainerGuiOptions): + container = "dropper" diff --git a/gm4/plugins/test.py b/gm4/plugins/test.py index 988a2716a8..60d10c2ec4 100644 --- a/gm4/plugins/test.py +++ b/gm4/plugins/test.py @@ -1,5 +1,6 @@ from beet import Context, TextFile from typing import ClassVar, Tuple +from mecha import Mecha def load_tests(ctx: Context): @@ -16,3 +17,9 @@ class TestFile(TextFile): def strip_tests(ctx: Context): for structure in ctx.data.structures.match("*:test_*"): del ctx.data.structures[structure] + + +def skip_mecha_lint(ctx: Context): + """Disables the mecha linting step. Linting errors will be reported by the main project build""" + mc = ctx.inject(Mecha) + mc.steps.remove(mc.lint) \ No newline at end of file diff --git a/gm4/plugins/versioning.py b/gm4/plugins/versioning.py index b13b7308bc..233f6080ef 100644 --- a/gm4/plugins/versioning.py +++ b/gm4/plugins/versioning.py @@ -178,7 +178,7 @@ def libraries(ctx: Context, opts: VersioningConfig): handle = ctx.data.functions[f"{ctx.project_id}:load"] handle.append([ "\n", - f"data modify storage gm4:log versions append value {{id:\"{ctx.project_id}\",module:\"{ctx.project_id.replace('gm4', 'lib')}\",version:\"{ctx.project_version}\",from:\"{ctx.cache['currently_building'].json['name']}\"}}" + f"data modify storage gm4:log versions append value {{id:\"{ctx.project_id}\",module:\"{ctx.project_id.replace('gm4', 'lib')}\",version:\"{ctx.project_version}\",from:\"{ctx.cache['currently_building'].json.get('name', 'standalone')}\"}}" ]) # strict version checks on advancements @@ -295,6 +295,7 @@ def warn_on_future_version(ctx: Context, dep_id: str, ver: Version): def isolated_library(ctx: Context): """Generates the #load:load function tag when building libraries in isloation""" + ctx.cache["currently_building"].json = {"name": ctx.project_name, "id": ctx.project_id, "added_libs": []} # load.json tag ctx.data.function_tags["load:load"] = FunctionTag({ "values": [ diff --git a/gm4/plugins/worker.py b/gm4/plugins/worker.py new file mode 100644 index 0000000000..9f2655d6fd --- /dev/null +++ b/gm4/plugins/worker.py @@ -0,0 +1,90 @@ +from beet import Connection, Context, Pipeline, ResourcePack, DataPack +from typing import Any + +RETRIEVE_ALL_PROJECTS = 0 +RETRIEVE_LAST_PROJECT = 1 +ProjectPacket = tuple[ResourcePack, DataPack, dict[str, Any]] + +def store_project(ctx: Context): + """Stores the current project object in a beet worker""" + with ctx.worker(bridge) as channel: + rp, dp = ctx.packs + ctx_params = {k:getattr(ctx, k) for k in ("project_id", + "project_name", + "project_description", + "project_author", + "project_version", + "project_root", + "minecraft_version", + "directory", + "output_directory", + "meta", + "cache", + "worker", + "template")} + + channel.send((rp, dp, ctx_params)) + +def freeze_last_stored(ctx: Context): + """'Freezes' the state of the last stored project by making it a shallow copy, allowing the original to be cleared""" + yield # wait for exit phase + with ctx.worker(bridge) as channel: + channel.send(RETRIEVE_LAST_PROJECT) + for last_project in channel: + rp, dp, params = last_project[0] # only one project is passed in list + frozen_rp = rp.copy(shallow=True) + frozen_dp = dp.copy(shallow=True) + + # send back the frozen packs + with ctx.worker(bridge) as channel: + channel.send((frozen_rp, frozen_dp, params)) + +def clear_on_exit(ctx: Context): + """Clears the packs on the exit phase - prevents faulty race condition merges into the parent subproject in a pipeline""" + yield + ctx.data.clear() + ctx.assets.clear() + +def retrieve_and_run(ctx: Context): + """Retrieves projects stored by the worker, reconstructs a Context() and runs the specified plugins on each one""" + plugins = ctx.meta.get("plugins",[]) + with ctx.worker(bridge) as channel: + channel.send(RETRIEVE_ALL_PROJECTS) + for stored_project in channel: + for rp, dp, ctx_params in stored_project: + c = Context(**ctx_params, assets=rp, data=dp) + c.activate() + c.require(*plugins) + c.inject(Pipeline).run() # manually run plugin's exit phases as this context is "headless" + +def retrieve_and_merge(ctx: Context): + """Retrieves stored contexts and merges their packs into the current/parent context""" + with ctx.worker(bridge) as channel: + channel.send(RETRIEVE_ALL_PROJECTS) + for stored_project in channel: + for rp, dp, _ in stored_project: + + #NOTE build hangs when fonts are merged from one ResourcePack to another... why is unknown + # this is a manual work around to merge the font files without causing the strange hang + for f, font in rp.fonts.items(): + ctx.generate(f, merge=font) + rp.fonts.clear() + + ctx.data.merge(dp) + ctx.assets.merge(rp) + +def bridge(connection: Connection[ProjectPacket|int, list[ProjectPacket]]): + # incoming types `ProjectPacket|int` and outgoing types `list[ProjectPacket]` + project_storage: list[tuple[ResourcePack, DataPack, dict[str, Any]]] = [] + + for client in connection: # iterable is kept open throughout the life of the build + # each `channel.send` causes a new element immediately processed here + for request in client: + # request is the actual payload - here the Context object + if isinstance(request, tuple): + project_storage.append(request) + if request == RETRIEVE_ALL_PROJECTS: + client.send(project_storage) + project_storage = [] + if request == RETRIEVE_LAST_PROJECT: + client.send([project_storage.pop(-1)]) diff --git a/gm4/plugins/write_mcmeta.py b/gm4/plugins/write_mcmeta.py index d7e3e1e2a3..9d779c1646 100644 --- a/gm4/plugins/write_mcmeta.py +++ b/gm4/plugins/write_mcmeta.py @@ -5,23 +5,34 @@ def beet_default(ctx: Context): """Writes the pack.mcmeta based on the module name and version.""" + yield # wait for exit phase + version = os.getenv("VERSION", "1.20") + manifest = ManifestCacheModel.parse_obj(ctx.cache["gm4_manifest"].json) + manifest_entry = {v.id:v for v in (manifest.modules|manifest.libraries).values()}.get(ctx.project_id, NoneAttribute()) + ctx.data.pack_format = 15 # manually set as beet's `latest` is not available for 1.20 at this time. ctx.data.supported_formats = { "min_inclusive": 15, "max_inclusive": 26 } - ctx.data.description = [ - ctx.project_name, - "\n", - { - "text": f"Gamemode 4 for {version}", - "color": "#4AA0C7" - } - ] - manifest = ManifestCacheModel.parse_obj(ctx.cache["gm4_manifest"].json) - manifest_entry = (manifest.modules|{v.id:v for v in manifest.libraries.values()}).get(ctx.project_id, NoneAttribute()) - ctx.data.mcmeta.data.update({ - "version":manifest_entry.version, - "commit_hash": run(["git", "log", "-1", "--format=%h"]) - }) + + ctx.assets.pack_format = 15 # manually set as beet's `latest` is not available for 1.20 at this time. + ctx.assets.supported_formats = { + "min_inclusive": 15, + "max_inclusive": 22 + } + + for pack in ctx.packs: + pack.description = [ + ctx.project_name, + "\n", + { + "text": f"Gamemode 4 for {version}", + "color": "#4AA0C7" + } + ] + pack.mcmeta.data.update({ + "version":manifest_entry.version, + "commit_hash": run(["git", "log", "-1", "--format=%h"]) + }) diff --git a/gm4/skin_cache.json b/gm4/skin_cache.json index f7ce9ad5ca..6fbcd289e4 100644 --- a/gm4/skin_cache.json +++ b/gm4/skin_cache.json @@ -78,17 +78,6 @@ "parent_module": "gm4_enchantment_extractors" }, "gm4_ender_hoppers:ender_hopper_display": { - "uuid": [ - 986384532, - 2063540834, - -1688310937, - -1123024522 - ], - "value": "ewogICJ0aW1lc3RhbXAiIDogMTY0NDM4ODkxMTA4NSwKICAicHJvZmlsZUlkIiA6ICJkMWY2OTc0YzE2ZmI0ZjdhYjI1NjU4NzExNjM3M2U2NSIsCiAgInByb2ZpbGVOYW1lIiA6ICJGaW9saWVzdGEiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOWQ0MWJkNGZkYzgwYzczY2NlNTQ5NTY1ZDIyN2U3MjVlMjZlZDM2MzJhNmRiYjVlODExMTVhYjgwMmM1ZjI0MSIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9", - "hash": "6ea03d4e586f8155901bea7ec5396adad9d892a0", - "parent_module": "gm4_ender_hoppers" - }, - "gm4_ender_hoppers:ender_hopper_display_2": { "uuid": [ -1738045610, -1151472894, @@ -1001,12 +990,12 @@ "gm4_metallurgy:band/aluminium" ], "gm4_zauber_liquids": [ - "gm4_potion_liquids:liquids/poison", "gm4_potion_liquids:liquids/harming", - "gm4_potion_liquids:liquids/strength", - "gm4_potion_liquids:liquids/regeneration", "gm4_potion_liquids:liquids/healing", "gm4_potion_liquids:liquids/leaping", + "gm4_potion_liquids:liquids/poison", + "gm4_potion_liquids:liquids/regeneration", + "gm4_potion_liquids:liquids/strength", "gm4_potion_liquids:liquids/swiftness" ], "gm4_audere_shamir": [ diff --git a/gm4/utils.py b/gm4/utils.py index b4e4b7bf19..ba6223a248 100644 --- a/gm4/utils.py +++ b/gm4/utils.py @@ -1,11 +1,31 @@ import subprocess import warnings -from dataclasses import dataclass, asdict -from typing import Any, List +from contextlib import contextmanager +from dataclasses import asdict, dataclass, replace from functools import total_ordering +from typing import Any, Generic, Iterator, List, TypeVar + +from beet import Advancement, Context, ItemModifier, ListOption, LootTable, Predicate +from mecha import ( + AbstractNode, + AstJsonObjectEntry, + AstJsonObjectKey, + AstJsonValue, + AstNbtCompound, + DiagnosticCollection, + DiagnosticError, + Mecha, + rule, +) +from pydantic.v1 import validator # type: ignore ; v1 validator behaves strangely with type checking +from pydantic.v1.generics import GenericModel +from tokenstream import SourceLocation, set_location + +T = TypeVar('T') import csv from pathlib import Path + def run(cmd: list[str]|str) -> str: """Run a shell command and return the stdout.""" return subprocess.run(cmd, capture_output=True, encoding="utf8", shell=isinstance(cmd, str)).stdout.strip() @@ -14,6 +34,12 @@ def X_int(val: str) -> int | None: """Int casting that accepts character 'X' and returns None""" return None if val.lower() == 'x' else int(val) +def add_namespace(val: str, namespace: str) -> str: + """Adds a namsepace prefix to a string, if one does not already exist""" + if ":" not in val: + return f"{namespace}:{val}" + return val + @dataclass @total_ordering class Version(): @@ -84,6 +110,93 @@ class NoneAttribute(): def __getattribute__(self, __name: str) -> None: return None +class MapOption(GenericModel, Generic[T]): + """A union-like type of dict and list, supporting common methods for both + - Written for use in resource_pack plugin's texture lists""" + __root__: list[T]|dict[str,T] = [] + + def entries(self) -> list[T]: + if isinstance(self.__root__, list): + return self.__root__ + return list(self.__root__.values()) + + def __getitem__(self, key: str|int) -> T: + if isinstance(key, int): + return self.entries()[key] + if isinstance(self.__root__, list): + raise KeyError(f"MapOption has no mapping data keys. Could not retrieve {key}") + return self.__root__[key] + + def items(self): + if isinstance(self.__root__, dict): + return self.__root__.items() + raise KeyError("MapOption has no mapping data keys. Can not retrieve items()") + + @validator("__root__", pre=True) # type: ignore ; v1 validator behaves strangely with type checking + def validate_root(cls, value: list[T]|dict[str,T]|T) -> list[T]|dict[str,T]: + if value is None: + value = [] + elif isinstance(value, ListOption): + value = value.entries() + if not isinstance(value, (list, tuple, dict)): # single element + value = [value] + return value # type: ignore + +class InvokeOnJsonNbt: + """Extendable mixin to run MutatingReducer's rules on nbt within advancements, loot_tables ect...""" + def __init__(self, ctx: Context): + self.ctx = ctx + raise RuntimeError("InvokeOnJsonNbt should not be directly instantiated. It is a mixin for MutatingReducers and should be interited instead") + + @contextmanager + def use_diagnostics(self, diagnostics: DiagnosticCollection) -> Iterator[None]: + """Class is mixed into MutatingReducer, who does have this method. Passed here for type completion""" + raise NotImplementedError() + + def invoke(self, node: AbstractNode, *args: Any, **kwargs: Any) -> Any: + """Class is mixed into MutatingReducer, who does have this method. Passed here for type completion""" + raise NotImplementedError() + + + @rule(AstJsonObjectEntry, key=AstJsonObjectKey(value='nbt')) + @rule(AstJsonObjectEntry, key=AstJsonObjectKey(value='tag')) + def process_nbt_in_json(self, node: AstJsonObjectEntry): + mc = self.ctx.inject(Mecha) + if isinstance(mc.database.current, (Advancement, LootTable, ItemModifier, Predicate)): + if isinstance(node.value, AstJsonValue) and isinstance(node.value.value, str) \ + and node.value.value.startswith("{") and node.value.value.endswith("}"): # excludes location check block/fluid tags - easier than making rule that checks for 'set_nbt' functions on the same json level + try: + nbt = mc.parse(node.value.value.replace("\n", "\\\\n"), type=AstNbtCompound) + except DiagnosticError as exc: + # if parsing failed, give pretty traceback + for d in exc.diagnostics.exceptions: + yield set_location(replace(d, file=mc.database.current), node.value) + return replace(node, value="{}") + + ## TEMP - trial on yielding children rather than using invoke + # with self.use_diagnostics(captured_diagnostics:=DiagnosticCollection()): + # nbt = yield nbt # run all rules on child-node + # print(captured_diagnostics.exceptions) + # print(nbt) + # new_node = replace(node, value=AstJsonValue(value=mc.serialize(nbt, type=AstNbtCompound))) + + with self.use_diagnostics(captured_diagnostics:=DiagnosticCollection()): + processed_nbt = mc.serialize(self.invoke(nbt, type=AstNbtCompound)) + for exc in captured_diagnostics.exceptions: + yield propagate_location(exc, node.value) # set error location to nbt key-value that caused the problem and pass diagnostic back to mecha + + new_node = replace(node, value=AstJsonValue(value=processed_nbt)) + if new_node != node: + return new_node + + return node + +def propagate_location(obj: T, parent_location_obj: Any) -> T: + """a set_location like function propagating diagnostic information for manually invoked rules""" + return set_location(obj, + SourceLocation(pos=parent_location_obj.location.pos+obj.location.pos, lineno=parent_location_obj.location.lineno, colno=parent_location_obj.location.colno+obj.location.colno), # type: ignore + SourceLocation(pos=parent_location_obj.location.pos+obj.end_location.pos, lineno=parent_location_obj.location.lineno, colno=parent_location_obj.location.colno+obj.end_location.colno) # type: ignore + ) # CSV READING UTILS class CSVCell(str): diff --git a/gm4_animi_shamir/beet.yaml b/gm4_animi_shamir/beet.yaml index 250ca4cc72..d651e8383b 100644 --- a/gm4_animi_shamir/beet.yaml +++ b/gm4_animi_shamir/beet.yaml @@ -5,7 +5,12 @@ version: 1.2.X data_pack: load: . +resource_pack: + load: ../gm4_metallurgy + + pipeline: + - gm4_metallurgy.shamir_model_template - gm4.plugins.extend.module - gm4.plugins.include.lib_player_death @@ -16,6 +21,13 @@ meta: gm4_metallurgy: 1.2.0 lib_player_death: 1.0.0 schedule_loops: [main] + model_data: + - reference: shamir/animi + item: [armor, tools, weapons, elytra, bow, crossbow, fishing_rod, warped_fungus_on_a_stick, carrot_on_a_stick, shield, flint_and_steel, shears, clock, compass, recovery_compass, spyglass] + template: + name: shamir + metal: curies_bismium + textures_path: gm4_metallurgy:item/shamir/curies_bismium website: description: Adds the Animi Shamir to Metallurgy. Items with Animi will respawn with you when you die! recommended: [] diff --git a/gm4_animi_shamir/data/gm4_animi_shamir/functions/init.mcfunction b/gm4_animi_shamir/data/gm4_animi_shamir/functions/init.mcfunction index 8f2738996e..1ef2b1ac61 100644 --- a/gm4_animi_shamir/data/gm4_animi_shamir/functions/init.mcfunction +++ b/gm4_animi_shamir/data/gm4_animi_shamir/functions/init.mcfunction @@ -6,7 +6,7 @@ execute unless score animi_shamir gm4_earliest_version < animi_shamir gm4_module scoreboard players set animi_shamir gm4_modules 1 # register shamir with lib_player_heads -execute unless data storage gm4_player_heads:register heads[{id:"gm4_animi_shamir:band/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_animi_shamir:band/v1",name:"[Drop to Fix Item] gm4_animi_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"animi",metal:{type:"curies_bismium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/curies_bismium",CustomModelData:3420117,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#467A1B","translate":"item.gm4.metallurgy.band","fallback":"Curie\'s Bismium Band","with":[{"translate":"item.gm4.metallurgy.curies_bismium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.animi","fallback":"Animi"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_animi_shamir:band/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_animi_shamir:band/v1",name:"[Drop to Fix Item] gm4_animi_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"animi",metal:{type:"curies_bismium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/curies_bismium",CustomModelData:"shamir/animi",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#467A1B","translate":"item.gm4.metallurgy.band","fallback":"Curie\'s Bismium Band","with":[{"translate":"item.gm4.metallurgy.curies_bismium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.animi","fallback":"Animi"}']}}} diff --git a/gm4_animi_shamir/data/gm4_animi_shamir/guidebook/animi_shamir.json b/gm4_animi_shamir/data/gm4_animi_shamir/guidebook/animi_shamir.json index e8f56a6ef2..64722586d9 100644 --- a/gm4_animi_shamir/data/gm4_animi_shamir/guidebook/animi_shamir.json +++ b/gm4_animi_shamir/data/gm4_animi_shamir/guidebook/animi_shamir.json @@ -4,8 +4,7 @@ "module_type": "expansion", "base_module": "metallurgy", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420124}" + "item": "minecraft:anvil" }, "criteria": { "obtain_animi_shamir": { diff --git a/gm4_animi_shamir/data/gm4_animi_shamir/loot_tables/band.json b/gm4_animi_shamir/data/gm4_animi_shamir/loot_tables/band.json index e80595bac3..d9abcedfe8 100644 --- a/gm4_animi_shamir/data/gm4_animi_shamir/loot_tables/band.json +++ b/gm4_animi_shamir/data/gm4_animi_shamir/loot_tables/band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420124,SkullOwner:{Name:\"[Drop to Fix Item] gm4_animi_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"animi\"}}" + "tag": "{CustomModelData:'shamir/animi',SkullOwner:{Name:\"[Drop to Fix Item] gm4_animi_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"animi\"}}" }, { "function": "minecraft:set_lore", diff --git a/gm4_animi_shamir/translations.csv b/gm4_animi_shamir/translations.csv new file mode 100644 index 0000000000..a6c00c28e9 --- /dev/null +++ b/gm4_animi_shamir/translations.csv @@ -0,0 +1,5 @@ +key,en_us +item.gm4.shamir.animi,Animi +text.gm4.guidebook.module_desc.animi_shamir,Adds the Animi Shamir to Metallurgy. Items with Animi will respawn with you when you die! +text.gm4.guidebook.animi_shamir.description,Animi allows items to return to their owner upon death. +text.gm4.guidebook.animi_shamir.usage,"The Animi Shamir is found on Curie's Bismium Bands. It can be placed onto tools, armour, weapons, and elytra.\n\nAnimi items do not drop when the owner dies, instead appearing in their inventory upon respawning." diff --git a/gm4_apple_trees/assets/gm4_apple_trees/models/block/apple_unripe.json b/gm4_apple_trees/assets/gm4_apple_trees/models/block/apple_unripe.json new file mode 100644 index 0000000000..c19b7e6c04 --- /dev/null +++ b/gm4_apple_trees/assets/gm4_apple_trees/models/block/apple_unripe.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "gm4_apple_trees:block/apple_unripe" + }, + "display": { + "thirdperson_righthand": { + "translation" :[ 1 , -0.5, 0], + "scale": [ 1.1, 1.1, 1.1] + } + } +} \ No newline at end of file diff --git a/gm4_apple_trees/assets/gm4_apple_trees/textures/block/apple_unripe.png b/gm4_apple_trees/assets/gm4_apple_trees/textures/block/apple_unripe.png new file mode 100644 index 0000000000..575a0203b8 Binary files /dev/null and b/gm4_apple_trees/assets/gm4_apple_trees/textures/block/apple_unripe.png differ diff --git a/gm4_apple_trees/assets/gm4_apple_trees/textures/item/apple_tree_sapling.png b/gm4_apple_trees/assets/gm4_apple_trees/textures/item/apple_tree_sapling.png new file mode 100644 index 0000000000..d6af210b8c Binary files /dev/null and b/gm4_apple_trees/assets/gm4_apple_trees/textures/item/apple_tree_sapling.png differ diff --git a/gm4_apple_trees/assets/gm4_golden_apple_trees/models/block/golden_apple_unripe.json b/gm4_apple_trees/assets/gm4_golden_apple_trees/models/block/golden_apple_unripe.json new file mode 100644 index 0000000000..68444484b2 --- /dev/null +++ b/gm4_apple_trees/assets/gm4_golden_apple_trees/models/block/golden_apple_unripe.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "gm4_golden_apple_trees:block/golden_apple_unripe" + }, + "display": { + "thirdperson_righthand": { + "translation" :[ 1 , -0.5, 0], + "scale": [ 1.1, 1.1, 1.1] + } + } +} diff --git a/gm4_apple_trees/assets/gm4_golden_apple_trees/textures/block/golden_apple_unripe.png b/gm4_apple_trees/assets/gm4_golden_apple_trees/textures/block/golden_apple_unripe.png new file mode 100644 index 0000000000..f8657e8f03 Binary files /dev/null and b/gm4_apple_trees/assets/gm4_golden_apple_trees/textures/block/golden_apple_unripe.png differ diff --git a/gm4_apple_trees/assets/translations.csv b/gm4_apple_trees/assets/translations.csv new file mode 100644 index 0000000000..a71a8b8a23 --- /dev/null +++ b/gm4_apple_trees/assets/translations.csv @@ -0,0 +1,7 @@ +key,en_us,de_de,en_ws +item.gm4.apple_tree_sapling,Apple Tree Sapling,,Ye Small Apple Tree +text.gm4.guidebook.module_desc.apple_trees,Introduces fruit-bearing apple trees! Trade for apple saplings with wandering traders or find them growing in forests!,, +text.gm4.guidebook.apple_trees.leaf_changes,Apples do not drop from oak or dark oak trees. Another source of apples must be discovered.,, +text.gm4.guidebook.apple_trees.obtaining_apples,"Apple trees are found naturally occurring in forest biomes.\n\nWandering traders will also sell apple tree saplings.\n\nWhen planted, these saplings grow into apple trees.",, +text.gm4.guidebook.apple_trees.golden_apple_trees,"Golden apple trees can also be found in forests.\n\nThese trees don't drop saplings, and cannot be replanted.\n\nThey also have a golden root which grows through stone and dirt.",, +text.gm4.guidebook.apple_trees.new_apples,"New apples will grow every 3 day cycles. Once ripe, they can be picked or will fall from the tree after a while.\n\nBreaking an apple bearing leaf has a 75% chance to drop an apple tree sapling.",, diff --git a/gm4_apple_trees/beet.yaml b/gm4_apple_trees/beet.yaml index 4157cac7c2..d5657ef2e8 100644 --- a/gm4_apple_trees/beet.yaml +++ b/gm4_apple_trees/beet.yaml @@ -5,6 +5,9 @@ version: 2.2.X data_pack: load: . +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module - gm4.plugins.include.lib_trades @@ -36,6 +39,16 @@ meta: - SpecialBuilder32 Icon Design: - BluePsychoRanger + model_data: + - item: apple + reference: block/apple_unripe + model: block/apple_unripe + - item: oak_sapling + reference: item/apple_tree_sapling + template: generated + - item: golden_apple + reference: block/golden_apple_unripe + model: gm4_golden_apple_trees:block/golden_apple_unripe modrinth: project_id: Afacz65w smithed: diff --git a/gm4_apple_trees/data/gm4_apple_trees/functions/leaf/set_stage/1.mcfunction b/gm4_apple_trees/data/gm4_apple_trees/functions/leaf/set_stage/1.mcfunction index cccaa4ea12..fb8b4dafdf 100644 --- a/gm4_apple_trees/data/gm4_apple_trees/functions/leaf/set_stage/1.mcfunction +++ b/gm4_apple_trees/data/gm4_apple_trees/functions/leaf/set_stage/1.mcfunction @@ -8,4 +8,4 @@ scoreboard players operation @s gm4_fruit_stage = #stage_2_start gm4_apple_data # visuals playsound minecraft:block.beehive.drip block @a[distance=..8] ~ ~ ~ 0.3 1.4 -data merge entity @s {Marker:0b,ShowArms:1b,HandItems:[{},{id:"minecraft:apple",Count:1b,tag:{CustomModelData:3420001}}],Pose:{LeftArm:[0.0f,90.0f,90.0f]}} +data merge entity @s {Marker:0b,ShowArms:1b,HandItems:[{},{id:"minecraft:apple",Count:1b,tag:{CustomModelData:"block/apple_unripe"}}],Pose:{LeftArm:[0.0f,90.0f,90.0f]}} diff --git a/gm4_apple_trees/data/gm4_apple_trees/guidebook/apple_trees.json b/gm4_apple_trees/data/gm4_apple_trees/guidebook/apple_trees.json index ad24deba88..7ab3a12e42 100644 --- a/gm4_apple_trees/data/gm4_apple_trees/guidebook/apple_trees.json +++ b/gm4_apple_trees/data/gm4_apple_trees/guidebook/apple_trees.json @@ -3,8 +3,7 @@ "name": "Apple Trees", "module_type": "module", "icon": { - "item": "minecraft:apple", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:apple" }, "criteria": { "obtain_apple_sapling": { diff --git a/gm4_apple_trees/data/gm4_apple_trees/loot_tables/items/apple_tree_sapling.json b/gm4_apple_trees/data/gm4_apple_trees/loot_tables/items/apple_tree_sapling.json index 346ad746bf..ac63ff7b7a 100644 --- a/gm4_apple_trees/data/gm4_apple_trees/loot_tables/items/apple_tree_sapling.json +++ b/gm4_apple_trees/data/gm4_apple_trees/loot_tables/items/apple_tree_sapling.json @@ -19,7 +19,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420004,gm4_trees:{item:{id:\"sapling\",type:\"apple\"}},gm4_podzol_rooting_soil:{id:\"apple_tree_sapling\"}}" + "tag": "{CustomModelData:'item/apple_tree_sapling',gm4_trees:{item:{id:\"sapling\",type:\"apple\"}},gm4_podzol_rooting_soil:{id:\"apple_tree_sapling\"}}" } ] } diff --git a/gm4_apple_trees/data/gm4_golden_apple_trees/functions/leaf/set_stage/1.mcfunction b/gm4_apple_trees/data/gm4_golden_apple_trees/functions/leaf/set_stage/1.mcfunction index 0f99520422..054f6ce4a6 100644 --- a/gm4_apple_trees/data/gm4_golden_apple_trees/functions/leaf/set_stage/1.mcfunction +++ b/gm4_apple_trees/data/gm4_golden_apple_trees/functions/leaf/set_stage/1.mcfunction @@ -8,4 +8,4 @@ scoreboard players operation @s gm4_fruit_stage = #gapple_stage_2_start gm4_appl # visuals playsound minecraft:block.beehive.drip block @a[distance=..8] ~ ~ ~ 0.3 1.4 -data merge entity @s {Marker:0b,ShowArms:1b,HandItems:[{},{id:"minecraft:golden_apple",Count:1b,tag:{CustomModelData:3420001}}],Pose:{LeftArm:[0.0f,90.0f,90.0f]}} +data merge entity @s {Marker:0b,ShowArms:1b,HandItems:[{},{id:"minecraft:golden_apple",Count:1b,tag:{CustomModelData:"block/golden_apple_unripe"}}],Pose:{LeftArm:[0.0f,90.0f,90.0f]}} diff --git a/gm4_audere_shamir/beet.yaml b/gm4_audere_shamir/beet.yaml index 02b7d6bf98..930eb5a9a9 100644 --- a/gm4_audere_shamir/beet.yaml +++ b/gm4_audere_shamir/beet.yaml @@ -5,7 +5,11 @@ version: 1.2.X data_pack: load: . +resource_pack: + load: ../gm4_metallurgy + pipeline: + - gm4_metallurgy.shamir_model_template - gm4.plugins.extend.module meta: @@ -14,6 +18,13 @@ meta: required: gm4_metallurgy: 1.2.0 schedule_loops: [main] + model_data: + - item: tools + reference: shamir/audere + template: + name: shamir + metal: barium + textures_path: gm4_metallurgy:item/shamir/barium website: description: Adds the shamir 'Audere' to Metallurgy. Gain Haste with low durability tools. recommended: [] diff --git a/gm4_audere_shamir/data/gm4_audere_shamir/functions/init.mcfunction b/gm4_audere_shamir/data/gm4_audere_shamir/functions/init.mcfunction index 7894a7e248..f33ecf1180 100644 --- a/gm4_audere_shamir/data/gm4_audere_shamir/functions/init.mcfunction +++ b/gm4_audere_shamir/data/gm4_audere_shamir/functions/init.mcfunction @@ -6,7 +6,7 @@ scoreboard players set audere_shamir gm4_modules 1 data remove storage gm4_player_heads:register heads[{id:"gm4_audere_shamir:band/v0"}] # register shamir with lib_player_heads -execute unless data storage gm4_player_heads:register heads[{id:"gm4_audere_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_audere_shamir:band/v1",name:"[Drop to Fix Item] gm4_audere_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"audere",metal:{type:"barium",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/barium",CustomModelData:3420120,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#F0EAD6","translate":"item.gm4.metallurgy.band","fallback":"Barium Band","with":[{"translate":"item.gm4.metallurgy.barium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.audere","fallback":"Audere"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_audere_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_audere_shamir:band/v1",name:"[Drop to Fix Item] gm4_audere_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"audere",metal:{type:"barium",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/barium",CustomModelData:"shamir/audere",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#F0EAD6","translate":"item.gm4.metallurgy.band","fallback":"Barium Band","with":[{"translate":"item.gm4.metallurgy.barium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.audere","fallback":"Audere"}']}}} schedule function gm4_audere_shamir:main 16t diff --git a/gm4_audere_shamir/data/gm4_audere_shamir/guidebook/audere_shamir.json b/gm4_audere_shamir/data/gm4_audere_shamir/guidebook/audere_shamir.json index 142e025473..b38b56a7b4 100644 --- a/gm4_audere_shamir/data/gm4_audere_shamir/guidebook/audere_shamir.json +++ b/gm4_audere_shamir/data/gm4_audere_shamir/guidebook/audere_shamir.json @@ -4,8 +4,7 @@ "module_type": "expansion", "base_module": "metallurgy", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420120}" + "item": "minecraft:anvil" }, "criteria": { "obtain_audere_shamir": { diff --git a/gm4_audere_shamir/data/gm4_audere_shamir/loot_tables/band.json b/gm4_audere_shamir/data/gm4_audere_shamir/loot_tables/band.json index 78fe2147c2..69fc7f7d9a 100644 --- a/gm4_audere_shamir/data/gm4_audere_shamir/loot_tables/band.json +++ b/gm4_audere_shamir/data/gm4_audere_shamir/loot_tables/band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420120,SkullOwner:{Name:\"[Drop to Fix Item] gm4_audere_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"audere\"}}" + "tag": "{CustomModelData:'shamir/audere',SkullOwner:{Name:\"[Drop to Fix Item] gm4_audere_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"audere\"}}" }, { "function": "minecraft:set_lore", diff --git a/gm4_audere_shamir/translations.csv b/gm4_audere_shamir/translations.csv new file mode 100644 index 0000000000..4360cb8b79 --- /dev/null +++ b/gm4_audere_shamir/translations.csv @@ -0,0 +1,5 @@ +key,en_us +item.gm4.shamir.audere,Audere +text.gm4.guidebook.module_desc.audere_shamir,Adds the shamir 'Audere' to Metallurgy. Gain Haste with low durability tools. +text.gm4.guidebook.audere_shamir.description,"Audere buffs mining speed, as durability decreases." +text.gm4.guidebook.audere_shamir.usage,The Audere Shamir is found on Barium Bands. It can be placed onto tools.\n\nHigher levels of Haste are awarded for lower durability (percentage-based).\n\nThe maximum level of Haste is IV. diff --git a/gm4_auto_crafting/assets/gm4_auto_crafting/textures/block/auto_crafter_bottom.png b/gm4_auto_crafting/assets/gm4_auto_crafting/textures/block/auto_crafter_bottom.png new file mode 100644 index 0000000000..4d9b8c06d6 Binary files /dev/null and b/gm4_auto_crafting/assets/gm4_auto_crafting/textures/block/auto_crafter_bottom.png differ diff --git a/gm4_auto_crafting/assets/gm4_auto_crafting/textures/block/auto_crafter_side.png b/gm4_auto_crafting/assets/gm4_auto_crafting/textures/block/auto_crafter_side.png new file mode 100644 index 0000000000..58b0fa008c Binary files /dev/null and b/gm4_auto_crafting/assets/gm4_auto_crafting/textures/block/auto_crafter_side.png differ diff --git a/gm4_auto_crafting/assets/gm4_auto_crafting/textures/block/auto_crafter_top.png b/gm4_auto_crafting/assets/gm4_auto_crafting/textures/block/auto_crafter_top.png new file mode 100644 index 0000000000..6330006855 Binary files /dev/null and b/gm4_auto_crafting/assets/gm4_auto_crafting/textures/block/auto_crafter_top.png differ diff --git a/gm4_auto_crafting/assets/translations.csv b/gm4_auto_crafting/assets/translations.csv new file mode 100644 index 0000000000..214556af88 --- /dev/null +++ b/gm4_auto_crafting/assets/translations.csv @@ -0,0 +1,10 @@ +key,en_us +container.gm4.auto_crafter,Set Recipe Shape +block.gm4.auto_crafter,Auto Crafter +text.gm4.guidebook.module_desc.auto_crafting,"Create an auto crafter to fully automate crafting! With this module installed, all vanilla crafting recipes are added to the GM4 Custom Crafter." +text.gm4.guidebook.auto_crafting.description,An auto crafter can be used to automatically craft items normally crafted in custom crafters. +text.gm4.guidebook.auto_crafting.crafting,Auto crafters can be crafted in a custom crafter with the following recipe: +text.gm4.guidebook.auto_crafting.multi_block,"The auto crafter needs a 3x3x3 multi-block structure.\n\nPlace the auto crafter, then a piston behind it, leaving a space for the head to extend. Then place two glass blocks on the other two sides to make a cross." +text.gm4.guidebook.auto_crafting.multi_block_1,"The top and bottom layers must each have a barrel with four wooden stairs or planks.\n\nIf stairs are used, they must be oriented to form a sort of pill shape." +text.gm4.guidebook.auto_crafting.set_shape,"The auto crafter GUI is used to set the shape of the recipe. Any item can be used to set the shape.\n\nItems will be taken out of the top barrel and fed into the crafter, filling each slot with one item." +text.gm4.guidebook.auto_crafting.output,"Once full, powering the piston will craft the item and place it in the bottom barrel.\n\nIf the piston is powered with an invalid recipe, the ingredients will be placed in the bottom barrel instead." diff --git a/gm4_auto_crafting/beet.yaml b/gm4_auto_crafting/beet.yaml index 1d97640cc7..8fdef2e530 100644 --- a/gm4_auto_crafting/beet.yaml +++ b/gm4_auto_crafting/beet.yaml @@ -12,6 +12,9 @@ data_pack: max_inclusive: 26 directory: overlay_26 +resource_pack: + load: . + pipeline: - gm4_auto_crafting.generate - gm4.plugins.extend.module @@ -27,6 +30,28 @@ meta: schedule_loops: - main - tick + model_data: + - item: player_head + reference: item/auto_crafter + model: block/auto_crafter + - item: crafting_table + reference: block/auto_crafter + template: block + textures: + top: block/auto_crafter_top + side: block/auto_crafter_side + front: block/auto_crafter_side + bottom: block/auto_crafter_bottom + transforms: + - name: item_display + origin: [0.5,0.5,0.5] + scale: [0.625, 0.625,0.625] + translation: [0, 0.25, 0] + display: head + gui_fonts: + - translation: gui.gm4.auto_crafter + container: dropper + texture: gm4:gui/container/empty_dropper website: description: Create an auto crafter to fully automate crafting! With this module installed, all vanilla crafting recipes are added to the GM4 Custom Crafter. recommended: @@ -52,6 +77,8 @@ meta: - BluePsychoRanger Icon Design: - Hozz + Textures: + - Kyrius modrinth: project_id: WkDoUESw smithed: diff --git a/gm4_auto_crafting/data/gm4_auto_crafting/functions/machine/rotate/east.mcfunction b/gm4_auto_crafting/data/gm4_auto_crafting/functions/machine/rotate/east.mcfunction index a9b880c804..d761d55db1 100644 --- a/gm4_auto_crafting/data/gm4_auto_crafting/functions/machine/rotate/east.mcfunction +++ b/gm4_auto_crafting/data/gm4_auto_crafting/functions/machine/rotate/east.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=east]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.auto_crafter","fallback":"Set Recipe Shape"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.auto_crafter","fallback":"Set Recipe Shape","font":"gm4:half_invert"},{"translate":"container.gm4.auto_crafter","fallback":"Set Recipe Shape","font":"gm4:offscreen"},{"translate":"gui.gm4.auto_crafter","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.auto_crafter","fallback":"Set Recipe Shape","font":"gm4:half_invert"},{"translate":"container.gm4.auto_crafter","fallback":"Set Recipe Shape","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-1.44 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_auto_crafter_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_auto_crafter_stand"',ArmorItems:[{},{},{},{id:"minecraft:crafting_table",Count:1b,tag:{CustomModelData:3420008}}],Rotation:[-90.0f,0.0f],Pose:{Head:[90.0f,0.0f,0.0f]}} +summon armor_stand ~ ~-1.44 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_auto_crafter_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_auto_crafter_stand"',ArmorItems:[{},{},{},{id:"minecraft:crafting_table",Count:1b,tag:{CustomModelData:"block/auto_crafter"}}],Rotation:[-90.0f,0.0f],Pose:{Head:[90.0f,0.0f,0.0f]}} summon marker ~ ~ ~ {Tags:["gm4_auto_crafter","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_auto_crafter"',Rotation:[-90.0f,0.0f]} diff --git a/gm4_auto_crafting/data/gm4_auto_crafting/functions/machine/rotate/north.mcfunction b/gm4_auto_crafting/data/gm4_auto_crafting/functions/machine/rotate/north.mcfunction index 3e643a9741..f97353f173 100644 --- a/gm4_auto_crafting/data/gm4_auto_crafting/functions/machine/rotate/north.mcfunction +++ b/gm4_auto_crafting/data/gm4_auto_crafting/functions/machine/rotate/north.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=north]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.auto_crafter","fallback":"Set Recipe Shape"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.auto_crafter","fallback":"Set Recipe Shape","font":"gm4:half_invert"},{"translate":"container.gm4.auto_crafter","fallback":"Set Recipe Shape","font":"gm4:offscreen"},{"translate":"gui.gm4.auto_crafter","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.auto_crafter","fallback":"Set Recipe Shape","font":"gm4:half_invert"},{"translate":"container.gm4.auto_crafter","fallback":"Set Recipe Shape","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-1.44 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_auto_crafter_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_auto_crafter_stand"',ArmorItems:[{},{},{},{id:"minecraft:crafting_table",Count:1b,tag:{CustomModelData:3420008}}],Rotation:[180.0f,0.0f],Pose:{Head:[90.0f,0.0f,0.0f]}} +summon armor_stand ~ ~-1.44 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_auto_crafter_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_auto_crafter_stand"',ArmorItems:[{},{},{},{id:"minecraft:crafting_table",Count:1b,tag:{CustomModelData:"block/auto_crafter"}}],Rotation:[180.0f,0.0f],Pose:{Head:[90.0f,0.0f,0.0f]}} summon marker ~ ~ ~ {Tags:["gm4_auto_crafter","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_auto_crafter"',Rotation:[180.0f,0.0f]} diff --git a/gm4_auto_crafting/data/gm4_auto_crafting/functions/machine/rotate/south.mcfunction b/gm4_auto_crafting/data/gm4_auto_crafting/functions/machine/rotate/south.mcfunction index b8f83bff7d..08e927d8bf 100644 --- a/gm4_auto_crafting/data/gm4_auto_crafting/functions/machine/rotate/south.mcfunction +++ b/gm4_auto_crafting/data/gm4_auto_crafting/functions/machine/rotate/south.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=south]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.auto_crafter","fallback":"Set Recipe Shape"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.auto_crafter","fallback":"Set Recipe Shape","font":"gm4:half_invert"},{"translate":"container.gm4.auto_crafter","fallback":"Set Recipe Shape","font":"gm4:offscreen"},{"translate":"gui.gm4.auto_crafter","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.auto_crafter","fallback":"Set Recipe Shape","font":"gm4:half_invert"},{"translate":"container.gm4.auto_crafter","fallback":"Set Recipe Shape","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-1.44 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_auto_crafter_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_auto_crafter_stand"',ArmorItems:[{},{},{},{id:"minecraft:crafting_table",Count:1b,tag:{CustomModelData:3420008}}],Rotation:[0.0f,0.0f],Pose:{Head:[90.0f,0.0f,0.0f]}} +summon armor_stand ~ ~-1.44 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_auto_crafter_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_auto_crafter_stand"',ArmorItems:[{},{},{},{id:"minecraft:crafting_table",Count:1b,tag:{CustomModelData:"block/auto_crafter"}}],Rotation:[0.0f,0.0f],Pose:{Head:[90.0f,0.0f,0.0f]}} summon marker ~ ~ ~ {Tags:["gm4_auto_crafter","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_auto_crafter"',Rotation:[0.0f,0.0f]} diff --git a/gm4_auto_crafting/data/gm4_auto_crafting/functions/machine/rotate/west.mcfunction b/gm4_auto_crafting/data/gm4_auto_crafting/functions/machine/rotate/west.mcfunction index 6e83913066..abf316ca84 100644 --- a/gm4_auto_crafting/data/gm4_auto_crafting/functions/machine/rotate/west.mcfunction +++ b/gm4_auto_crafting/data/gm4_auto_crafting/functions/machine/rotate/west.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=west]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.auto_crafter","fallback":"Set Recipe Shape"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.auto_crafter","fallback":"Set Recipe Shape","font":"gm4:half_invert"},{"translate":"container.gm4.auto_crafter","fallback":"Set Recipe Shape","font":"gm4:offscreen"},{"translate":"gui.gm4.auto_crafter","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.auto_crafter","fallback":"Set Recipe Shape","font":"gm4:half_invert"},{"translate":"container.gm4.auto_crafter","fallback":"Set Recipe Shape","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-1.44 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_auto_crafter_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_auto_crafter_stand"',ArmorItems:[{},{},{},{id:"minecraft:crafting_table",Count:1b,tag:{CustomModelData:3420008}}],Rotation:[90.0f,0.0f],Pose:{Head:[90.0f,0.0f,0.0f]}} +summon armor_stand ~ ~-1.44 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_auto_crafter_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_auto_crafter_stand"',ArmorItems:[{},{},{},{id:"minecraft:crafting_table",Count:1b,tag:{CustomModelData:"block/auto_crafter"}}],Rotation:[90.0f,0.0f],Pose:{Head:[90.0f,0.0f,0.0f]}} summon marker ~ ~ ~ {Tags:["gm4_auto_crafter","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_auto_crafter"',Rotation:[90.0f,0.0f]} diff --git a/gm4_auto_crafting/data/gm4_auto_crafting/guidebook/auto_crafting.json b/gm4_auto_crafting/data/gm4_auto_crafting/guidebook/auto_crafting.json index e059f300ca..9a2432b2cb 100644 --- a/gm4_auto_crafting/data/gm4_auto_crafting/guidebook/auto_crafting.json +++ b/gm4_auto_crafting/data/gm4_auto_crafting/guidebook/auto_crafting.json @@ -3,8 +3,7 @@ "name": "Auto Crafting", "module_type": "module", "icon": { - "item": "minecraft:copper_block", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:copper_block" }, "criteria": { "obtain_copper_ingot": { diff --git a/gm4_auto_crafting/data/gm4_auto_crafting/loot_tables/items/auto_crafter.json b/gm4_auto_crafting/data/gm4_auto_crafting/loot_tables/items/auto_crafter.json index ca780c6f8d..b58b88b4da 100644 --- a/gm4_auto_crafting/data/gm4_auto_crafting/loot_tables/items/auto_crafter.json +++ b/gm4_auto_crafting/data/gm4_auto_crafting/loot_tables/items/auto_crafter.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420140,gm4_machines:{id:\"auto_crafter\"},SkullOwner:{Name:\"gm4_auto_crafter\",Signature:\"gm4_machine\",Value:\"$auto_crafter\"}}" + "tag": "{CustomModelData:'item/auto_crafter',gm4_machines:{id:\"auto_crafter\"},SkullOwner:{Name:\"gm4_auto_crafter\",Signature:\"gm4_machine\",Value:\"$auto_crafter\"}}" }, { "function": "set_name", diff --git a/gm4_auto_crafting/overlay_26/data/gm4_auto_crafting/guidebook/auto_crafting.json b/gm4_auto_crafting/overlay_26/data/gm4_auto_crafting/guidebook/auto_crafting.json index 9748fca678..980d9680c2 100644 --- a/gm4_auto_crafting/overlay_26/data/gm4_auto_crafting/guidebook/auto_crafting.json +++ b/gm4_auto_crafting/overlay_26/data/gm4_auto_crafting/guidebook/auto_crafting.json @@ -3,8 +3,7 @@ "name": "Auto Crafting", "module_type": "module", "icon": { - "item": "minecraft:copper_block", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:copper_block" }, "criteria": { "obtain_copper_ingot": { diff --git a/gm4_bat_grenades/assets/gm4_bat_grenades/textures/item/bat_leather.png b/gm4_bat_grenades/assets/gm4_bat_grenades/textures/item/bat_leather.png new file mode 100644 index 0000000000..29a29d1dc1 Binary files /dev/null and b/gm4_bat_grenades/assets/gm4_bat_grenades/textures/item/bat_leather.png differ diff --git a/gm4_bat_grenades/assets/translations.csv b/gm4_bat_grenades/assets/translations.csv new file mode 100644 index 0000000000..30ed3ecb06 --- /dev/null +++ b/gm4_bat_grenades/assets/translations.csv @@ -0,0 +1,8 @@ +key,en_us,de_de +item.gm4.bat_leather,Bat Leather,Fledermausleder +text.gm4.bat_leather.1,"Would make for a very strange,","Würde eine ziemlich merkwürde," +text.gm4.bat_leather.2,very tiny jacket,ziemlich kleine Jacke ergeben +advancement.gm4.bat_grenades.title,Batboozled, +advancement.gm4.bat_grenades.description,Get blown up by a Bat Grenade, +text.gm4.guidebook.module_desc.bat_grenades,Tired of the uselessness of bats? This module will turn them into tiny furry flying balls of boom!, +text.gm4.guidebook.bat_grenades.description,"Bats create a weak explosion when nearby.\n\nWhen killed, bats will drop gunpowder and bat leather—a material equivalent to rabbit hide.", diff --git a/gm4_bat_grenades/beet.yaml b/gm4_bat_grenades/beet.yaml index f25fddaf01..927c226fd3 100644 --- a/gm4_bat_grenades/beet.yaml +++ b/gm4_bat_grenades/beet.yaml @@ -5,6 +5,9 @@ version: 1.3.X data_pack: load: . +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module @@ -26,6 +29,15 @@ meta: - Sparks Icon Design: - Sparks + model_data: + - item: rabbit_hide + reference: item/bat_leather + template: generated + - item: gunpowder + reference: gui/advancement/bat_grenades + template: + name: advancement + forward: item/bat_leather modrinth: project_id: qWQqEQMY smithed: diff --git a/gm4_bat_grenades/data/gm4/advancements/bat_grenades.json b/gm4_bat_grenades/data/gm4/advancements/bat_grenades.json index 51186ba74f..c04c048639 100644 --- a/gm4_bat_grenades/data/gm4/advancements/bat_grenades.json +++ b/gm4_bat_grenades/data/gm4/advancements/bat_grenades.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "gunpowder", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/bat_grenades'}" }, "title": { "translate": "advancement.gm4.bat_grenades.title", diff --git a/gm4_bat_grenades/data/gm4_bat_grenades/guidebook/bat_grenades.json b/gm4_bat_grenades/data/gm4_bat_grenades/guidebook/bat_grenades.json index 59499704aa..0a45d42ca8 100644 --- a/gm4_bat_grenades/data/gm4_bat_grenades/guidebook/bat_grenades.json +++ b/gm4_bat_grenades/data/gm4_bat_grenades/guidebook/bat_grenades.json @@ -3,8 +3,7 @@ "name": "Bat Grenades", "module_type": "module", "icon": { - "item": "minecraft:gunpowder", - "nbt": "{CustomModelData:3420003}" + "item": "minecraft:gunpowder" }, "criteria": { "hurt_by_exploding_bat": { diff --git a/gm4_bat_grenades/data/minecraft/loot_tables/entities/bat.json b/gm4_bat_grenades/data/minecraft/loot_tables/entities/bat.json index f3e6fdc79f..c6310b89ef 100644 --- a/gm4_bat_grenades/data/minecraft/loot_tables/entities/bat.json +++ b/gm4_bat_grenades/data/minecraft/loot_tables/entities/bat.json @@ -28,7 +28,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420001}" + "tag": "{CustomModelData:'item/bat_leather'}" }, { "function": "set_name", diff --git a/gm4_beehive_inspector/assets/translations.csv b/gm4_beehive_inspector/assets/translations.csv new file mode 100644 index 0000000000..9f7d955462 --- /dev/null +++ b/gm4_beehive_inspector/assets/translations.csv @@ -0,0 +1,5 @@ +key,en_us +text.gm4.beehive_inspector.bees,Bees +text.gm4.beehive_inspector.honey,Honey +text.gm4.guidebook.module_desc.beehive_inspector,"Adds a handy tooltip to Beehive items, telling you exactly how many bees and how much honey is stored inside! A beekeepers' dream!" +text.gm4.guidebook.beehive_inspector.description,"Mining beehives and bee nests causes the block to display the honey level and bee count.\n\nOther forms of destruction, such as explosions, do not yield the same results." diff --git a/gm4_beehive_inspector/data/gm4_beehive_inspector/guidebook/beehive_inspector.json b/gm4_beehive_inspector/data/gm4_beehive_inspector/guidebook/beehive_inspector.json index 1714b65057..955c20a313 100644 --- a/gm4_beehive_inspector/data/gm4_beehive_inspector/guidebook/beehive_inspector.json +++ b/gm4_beehive_inspector/data/gm4_beehive_inspector/guidebook/beehive_inspector.json @@ -3,8 +3,7 @@ "name": "Beehive Inspector", "module_type": "module", "icon": { - "item": "minecraft:beehive", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:beehive" }, "criteria": { "obtain_beehive": { diff --git a/gm4_better_armour_stands/beet.yaml b/gm4_better_armour_stands/beet.yaml index 58557f05b0..de420e7c5a 100644 --- a/gm4_better_armour_stands/beet.yaml +++ b/gm4_better_armour_stands/beet.yaml @@ -31,6 +31,12 @@ meta: - Denniss Icon Design: - Sparks + model_data: + - item: armor_stand + reference: gui/advancement/better_armour_stands + template: + name: advancement + forward: minecraft:item/armor_stand modrinth: project_id: ib7YfS5V smithed: diff --git a/gm4_better_armour_stands/data/gm4/advancements/better_armour_stands.json b/gm4_better_armour_stands/data/gm4/advancements/better_armour_stands.json index 356dc036e9..f144259e0d 100644 --- a/gm4_better_armour_stands/data/gm4/advancements/better_armour_stands.json +++ b/gm4_better_armour_stands/data/gm4/advancements/better_armour_stands.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "armor_stand", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/better_armour_stands'}" }, "title": { "translate": "advancement.gm4.better_armour_stands.title", diff --git a/gm4_better_armour_stands/data/gm4_better_armour_stands/guidebook/better_armour_stands.json b/gm4_better_armour_stands/data/gm4_better_armour_stands/guidebook/better_armour_stands.json index 9294458e81..8e394702cc 100644 --- a/gm4_better_armour_stands/data/gm4_better_armour_stands/guidebook/better_armour_stands.json +++ b/gm4_better_armour_stands/data/gm4_better_armour_stands/guidebook/better_armour_stands.json @@ -3,8 +3,7 @@ "name": "Better Armour Stands", "module_type": "base", "icon": { - "item": "minecraft:writable_book", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:writable_book" }, "criteria": { "place_armor_stand": { diff --git a/gm4_better_armour_stands/translations.csv b/gm4_better_armour_stands/translations.csv new file mode 100644 index 0000000000..7f51e2a2db --- /dev/null +++ b/gm4_better_armour_stands/translations.csv @@ -0,0 +1,36 @@ +key,en_us +advancement.gm4.better_armour_stands.description,Customize an armour stand +advancement.gm4.better_armour_stands.title,Gettin' Handsy +item.gm4.better_armour_stands.copied_armor_stand.author,Copied by: +item.gm4.better_armour_stands.copied_armor_stand.property.custom_pose,Custom pose +item.gm4.better_armour_stands.copied_armor_stand.property.invisible,Invisible +item.gm4.better_armour_stands.copied_armor_stand.property.no_base,No base plate +item.gm4.better_armour_stands.copied_armor_stand.property.no_gravity,No gravity +item.gm4.better_armour_stands.copied_armor_stand.property.small,Small +tooltip.gm4.better_armour_stands.invalid_code,Invalid code +tooltip.gm4.better_armour_stands.invalid_right_click_location,Right click the joint of a part to start editing +text.gm4.guidebook.module_desc.better_armour_stands,Ever felt like Armour Stands looked a bit boring? Better Armour Stands lets your Armour Stands strike all the poses you want! Simply use a Book and Quill to edit Armour Stands. +text.gm4.guidebook.better_armour_stands.description,"Armour stands will have arms by default, and can be altered with a book and quill.\n\nThis allows one to create custom statues and interesting displays." +text.gm4.guidebook.better_armour_stands.applying,"To modify an armour stand, write one of the codes in a book and quill, then use it on the armour stand.\n\nMultiple codes can be written on separate pages to apply multiple modifiers at once." +text.gm4.guidebook.better_armour_stands.toggle_codes,The following codes will toggle the specific feature: +text.gm4.guidebook.better_armour_stands.arms,Toggle the arms of the armour stand +text.gm4.guidebook.better_armour_stands.copy_code,Click to copy +text.gm4.guidebook.better_armour_stands.base,Toggle the base plate of the armour stand +text.gm4.guidebook.better_armour_stands.size,Toggle the size of the armour stand +text.gm4.guidebook.better_armour_stands.gravity,Toggle the gravity of the armour stand +text.gm4.guidebook.better_armour_stands.visible,Toggle the visibility of the armour stand.\nHolding a book with this code will reveal\nnearby invisible armour stands. +text.gm4.guidebook.better_armour_stands.turn,Toggle rotating of the armour stand +text.gm4.guidebook.better_armour_stands.lock,Disable interactions with the armour stand +text.gm4.guidebook.better_armour_stands.unlock,Enable interactions with the armour stand.\nHolding a book with this code will reveal\nnearby locked armour stands. +text.gm4.guidebook.better_armour_stands.part_editing,The following codes activate editing of armour stand parts: +text.gm4.guidebook.better_armour_stands.pose,"Edit a part of the armour stand by looking at its ""joint"".\n- Hold sneak to enable ""snapping""\n- Left click to invert this pose\n- Right click to stop editing" +text.gm4.guidebook.better_armour_stands.pose_mirror,"Edit a part of the armour stand by looking at its ""joint"".\nIf an arm/leg is selected, the other arm/leg pose is mirrored.\n- Hold sneak to enable ""snapping""\n- Left click to invert this pose\n- Right click to stop editing" +text.gm4.guidebook.better_armour_stands.move,"Move the armour stand around you.\n- Hold sneak to enable ""snapping""\n- Right click to stop editing" +text.gm4.guidebook.better_armour_stands.rotate,"Rotate the armour stand.\n- Hold sneak to enable ""snapping""\n- Right click to stop editing" +text.gm4.guidebook.better_armour_stands.flip,Flip the full pose of the armour stand +text.gm4.guidebook.better_armour_stands.default,- Look at a part of the armour stand to reset this pose.\n- Sneak to fully reset the armour stand. +text.gm4.guidebook.better_armour_stands.equipping,Items can be placed in the head or arm slots: +text.gm4.guidebook.better_armour_stands.equip,Look at the head or shoulders of the armour stand to place an item from the offhand into this slot. +text.gm4.guidebook.better_armour_stands.copy_and_paste,Armour stand data can be copied and pasted: +text.gm4.guidebook.better_armour_stands.copy,Copy modified features onto the armour stand items in your offhand. +text.gm4.guidebook.better_armour_stands.paste,Copy features from the copied armour stand items in your offhand to the armour stand. diff --git a/gm4_better_fire/assets/gm4_better_fire/textures/item/charred_arrowhead.png b/gm4_better_fire/assets/gm4_better_fire/textures/item/charred_arrowhead.png new file mode 100644 index 0000000000..1c1c4b6d12 Binary files /dev/null and b/gm4_better_fire/assets/gm4_better_fire/textures/item/charred_arrowhead.png differ diff --git a/gm4_better_fire/assets/translations.csv b/gm4_better_fire/assets/translations.csv new file mode 100644 index 0000000000..d5bc83e000 --- /dev/null +++ b/gm4_better_fire/assets/translations.csv @@ -0,0 +1,7 @@ +key,en_us +advancement.gm4.better_fire.title,Flint 'n Stick +advancement.gm4.better_fire.description,Fire a Flame Bow +item.gm4.better_fire.flint,Flint +item.gm4.better_fire.flint.lore,Charred arrowhead +text.gm4.guidebook.module_desc.better_fire,Spice up Minecraft's fire mechanics with this module! Flame arrows set fire when they land and burning creepers explode when low on health! +text.gm4.guidebook.better_fire.description,"Flame arrows set the block they land on with fire, sometimes dropping the arrowhead.\n\nFire can also cause a creeper to explode as if lit by flint and steel." diff --git a/gm4_better_fire/beet.yaml b/gm4_better_fire/beet.yaml index 2ebab98784..25809ab801 100644 --- a/gm4_better_fire/beet.yaml +++ b/gm4_better_fire/beet.yaml @@ -5,6 +5,9 @@ version: 1.3.X data_pack: load: . +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module @@ -28,3 +31,12 @@ meta: - SpecialBuilder32 Icon Design: - Sparks + model_data: + - item: flint + reference: item/charred_arrowhead + template: generated + - item: bow + reference: gui/advancement/better_fire + template: + name: advancement + forward: minecraft:item/bow diff --git a/gm4_better_fire/data/gm4/advancements/better_fire.json b/gm4_better_fire/data/gm4/advancements/better_fire.json index a88e4acd17..8e75165aa2 100644 --- a/gm4_better_fire/data/gm4/advancements/better_fire.json +++ b/gm4_better_fire/data/gm4/advancements/better_fire.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "bow", - "nbt": "{Enchantments:[{id:\"flame\",lvl:1}],CustomModelData:3420001}" + "nbt": "{Enchantments:[{id:\"flame\",lvl:1}],CustomModelData:'gui/advancement/better_fire'}" }, "title": { "translate": "advancement.gm4.better_fire.title", diff --git a/gm4_better_fire/data/gm4_better_fire/guidebook/better_fire.json b/gm4_better_fire/data/gm4_better_fire/guidebook/better_fire.json index dfba03e08e..09e83f9002 100644 --- a/gm4_better_fire/data/gm4_better_fire/guidebook/better_fire.json +++ b/gm4_better_fire/data/gm4_better_fire/guidebook/better_fire.json @@ -3,8 +3,7 @@ "name": "Better Fire", "module_type": "module", "icon": { - "item": "minecraft:flint_and_steel", - "nbt": "{CustomModelData:3420003}" + "item": "minecraft:flint_and_steel" }, "criteria": { "obtain_flint_and_steel": { diff --git a/gm4_better_fire/data/gm4_better_fire/loot_tables/entities/flame_arrow/flint.json b/gm4_better_fire/data/gm4_better_fire/loot_tables/entities/flame_arrow/flint.json index ed48f3b04a..37da172039 100644 --- a/gm4_better_fire/data/gm4_better_fire/loot_tables/entities/flame_arrow/flint.json +++ b/gm4_better_fire/data/gm4_better_fire/loot_tables/entities/flame_arrow/flint.json @@ -17,7 +17,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420002}" + "tag": "{CustomModelData:'item/charred_arrowhead'}" }, { "function": "minecraft:set_lore", diff --git a/gm4_block_compressors/assets/gm4_block_compressors/models/block/block_compressor_full.json b/gm4_block_compressors/assets/gm4_block_compressors/models/block/block_compressor_full.json new file mode 100644 index 0000000000..c2d6517125 --- /dev/null +++ b/gm4_block_compressors/assets/gm4_block_compressors/models/block/block_compressor_full.json @@ -0,0 +1,10 @@ +{ + "parent": "gm4:block/cube_with_plate", + "textures": { + "side": "gm4_block_compressors:block/block_compressor_side", + "bottom": "minecraft:block/furnace_top", + "top": "gm4_block_compressors:block/block_compressor_top", + "front": "gm4_block_compressors:block/block_compressor_side", + "plate": "gm4_block_compressors:block/block_compressor_plate" + } +} diff --git a/gm4_block_compressors/assets/gm4_block_compressors/models/block/block_compressor_plate.json b/gm4_block_compressors/assets/gm4_block_compressors/models/block/block_compressor_plate.json new file mode 100644 index 0000000000..52a91037ec --- /dev/null +++ b/gm4_block_compressors/assets/gm4_block_compressors/models/block/block_compressor_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "gm4:block/plate", + "textures": { + "top": "gm4_block_compressors:block/block_compressor_plate" + } +} diff --git a/gm4_block_compressors/assets/gm4_block_compressors/textures/block/block_compressor_plate.png b/gm4_block_compressors/assets/gm4_block_compressors/textures/block/block_compressor_plate.png new file mode 100644 index 0000000000..61902d6e27 Binary files /dev/null and b/gm4_block_compressors/assets/gm4_block_compressors/textures/block/block_compressor_plate.png differ diff --git a/gm4_block_compressors/assets/gm4_block_compressors/textures/block/block_compressor_side.png b/gm4_block_compressors/assets/gm4_block_compressors/textures/block/block_compressor_side.png new file mode 100644 index 0000000000..056d1afe1a Binary files /dev/null and b/gm4_block_compressors/assets/gm4_block_compressors/textures/block/block_compressor_side.png differ diff --git a/gm4_block_compressors/assets/gm4_block_compressors/textures/block/block_compressor_top.png b/gm4_block_compressors/assets/gm4_block_compressors/textures/block/block_compressor_top.png new file mode 100644 index 0000000000..be13fee4c5 Binary files /dev/null and b/gm4_block_compressors/assets/gm4_block_compressors/textures/block/block_compressor_top.png differ diff --git a/gm4_block_compressors/assets/gm4_block_compressors/textures/gui/container/block_compressor.png b/gm4_block_compressors/assets/gm4_block_compressors/textures/gui/container/block_compressor.png new file mode 100644 index 0000000000..67447e5369 Binary files /dev/null and b/gm4_block_compressors/assets/gm4_block_compressors/textures/gui/container/block_compressor.png differ diff --git a/gm4_block_compressors/assets/translations.csv b/gm4_block_compressors/assets/translations.csv new file mode 100644 index 0000000000..485f2a75a1 --- /dev/null +++ b/gm4_block_compressors/assets/translations.csv @@ -0,0 +1,12 @@ +key,en_us +advancement.gm4.block_compressors.compressed_diet.description,Eat too much of everything. This can't be good for you... +advancement.gm4.block_compressors.compressed_diet.title,A Compressed Diet +advancement.gm4.block_compressors.description,Make yourself a Block Compressor +advancement.gm4.block_compressors.title,Clever Crushing +block.gm4.block_compressor,Compressor +container.gm4.block_compressor,Compression Amount +text.gm4.block_compressors.compressed,Compressed ×%s +text.gm4.guidebook.module_desc.block_compressors,"Chest space won't be an issue with this module! Use a Block Compressor to compress stacks of items, turning a stack of items into a single item for long-term storage. Make sure to uncompress your items before using them again, though!" +text.gm4.guidebook.block_compressors.description,"Block Compressors can be used to cut down on bulk storage. Item stacks can be compressed into a single item, and vice versa." +text.gm4.guidebook.block_compressors.crafting,A Block Compressor can be crafted in a Custom Crafter: +text.gm4.guidebook.block_compressors.usage,"To select the amount of compression, put that amount of items inside the block compressor, then drop the items on top of the compressor.\n\nPutting 1 item in the compressor will decompress any items on top." diff --git a/gm4_block_compressors/beet.yaml b/gm4_block_compressors/beet.yaml index c635cc8b00..180c5d24c1 100644 --- a/gm4_block_compressors/beet.yaml +++ b/gm4_block_compressors/beet.yaml @@ -5,8 +5,12 @@ version: 1.3.X data_pack: load: . +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module + - gm4.plugins.include.lib_forceload - gm4.plugins.include.lib_machines - gm4.plugins.include.lib_custom_crafters @@ -17,6 +21,38 @@ meta: lib_custom_crafters: 3.0.0 lib_machines: 1.1.0 schedule_loops: [main] + model_data: + - item: purpur_block + reference: block/block_compressor_plate + transforms: + - name: item_display + origin: [0.5, 0.5, 0.5] + scale: [0.625, 0.625, 0.625] + translation: [0, -0.225, 0] + rotation: [180, 0, 0] + - item: stone + reference: block/block_compressor + template: block + textures: + top: gm4_block_compressors:block/block_compressor_top + bottom: minecraft:block/furnace_top + front: gm4_block_compressors:block/block_compressor_side + side: gm4_block_compressors:block/block_compressor_side + transforms: + - name: item_display + origin: [0.5, 0.5, 0.5] + scale: [0.5, 0.5, 0.5] + - item: player_head + reference: block/block_compressor_full + - item: piston + reference: gui/advancement/block_compressors + template: + name: advancement + forward: block/block_compressor_full + gui_fonts: + - translation: gui.gm4.block_compressor + container: dropper + texture: gui/container/block_compressor website: description: Chest space won't be an issue with this module! Use a Block Compressor to compress stacks of items, turning a stack of items into a single item for long-term storage. Make sure to uncompress your items before using them again, though! recommended: @@ -46,7 +82,7 @@ meta: - JP12 - BluePsychoRanger Textures by: - - kyrkis + - Kyrius Icon Design: - Sparks planetminecraft: diff --git a/gm4_block_compressors/data/gm4/advancements/block_compressors.json b/gm4_block_compressors/data/gm4/advancements/block_compressors.json index 4c5d730598..a23c8a2830 100644 --- a/gm4_block_compressors/data/gm4/advancements/block_compressors.json +++ b/gm4_block_compressors/data/gm4/advancements/block_compressors.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "piston", - "nbt": "{CustomModelData:3420003}" + "nbt": "{CustomModelData:'gui/advancement/block_compressors'}" }, "title": { "translate": "advancement.gm4.block_compressors.title", diff --git a/gm4_block_compressors/data/gm4_block_compressors/functions/item/compress.mcfunction b/gm4_block_compressors/data/gm4_block_compressors/functions/item/compress.mcfunction index 84f3df486d..1424fc31ea 100644 --- a/gm4_block_compressors/data/gm4_block_compressors/functions/item/compress.mcfunction +++ b/gm4_block_compressors/data/gm4_block_compressors/functions/item/compress.mcfunction @@ -12,9 +12,9 @@ execute store result storage gm4_block_compressors:temp/item_stack Item.tag.gm4_ # set count to 1 and add compressed item visuals data merge storage gm4_block_compressors:temp/item_stack {Item:{Count:1b,tag:{HideFlags:1,Enchantments:[{id:"minecraft:protection",lvl:0s}]}}} -execute as @e[type=armor_stand,tag=gm4_block_compressor_processing,limit=1] run loot replace entity @s weapon.offhand loot gm4_block_compressors:technical/compressed_lore -execute as @e[type=armor_stand,tag=gm4_block_compressor_processing,limit=1] run data modify storage gm4_block_compressors:temp/item_stack Item.tag.display.Lore append from entity @s HandItems[1].tag.display.Name -data merge entity @e[type=armor_stand,tag=gm4_block_compressor_processing,limit=1] {HandItems:[{},{}]} +execute as 344d47-4-4-4-f04ce104d run loot replace entity @s weapon.offhand loot gm4_block_compressors:technical/compressed_lore +execute as 344d47-4-4-4-f04ce104d run data modify storage gm4_block_compressors:temp/item_stack Item.tag.display.Lore append from entity @s HandItems[1].tag.display.Name +data merge entity 344d47-4-4-4-f04ce104d {HandItems:[{},{}]} # clone data to original item entity data modify entity @s Item set from storage gm4_block_compressors:temp/item_stack Item diff --git a/gm4_block_compressors/data/gm4_block_compressors/functions/machine/create.mcfunction b/gm4_block_compressors/data/gm4_block_compressors/functions/machine/create.mcfunction index d2537cb59d..2f16db33db 100644 --- a/gm4_block_compressors/data/gm4_block_compressors/functions/machine/create.mcfunction +++ b/gm4_block_compressors/data/gm4_block_compressors/functions/machine/create.mcfunction @@ -7,12 +7,12 @@ setblock ~ ~ ~ dropper[facing=down]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.block_compressor","fallback":"Compression Amount"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.block_compressor","fallback":"Compression Amount","font":"gm4:half_invert"},{"translate":"container.gm4.block_compressor","fallback":"Compression Amount","font":"gm4:offscreen"},{"translate":"gui.gm4.block_compressor","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.block_compressor","fallback":"Compression Amount","font":"gm4:half_invert"},{"translate":"container.gm4.block_compressor","fallback":"Compression Amount","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.965 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_block_compressor_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_block_compressor_stand"',ArmorItems:[{},{},{},{id:"minecraft:purpur_block",Count:1b,tag:{CustomModelData:3420002}}],Pose:{Head:[180f,0f,0f]},Rotation:[0.0f,0.0f]} -summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_block_compressor_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_block_compressor_display"',HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420001}},{}],Pose:{RightArm:[0.0f,0.0f,0.0f]},Rotation:[0.0f,0.0f]} +summon item_display ~ ~ ~ {Tags:["gm4_block_compressor_plate","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_block_compressor_plate"',item:{id:"minecraft:purpur_block",Count:1b,tag:{CustomModelData:"block/block_compressor_plate"}},transformation:{right_rotation:[0f,0f,0f,1f],left_rotation:[1f,0f,0f,0f],translation:[0.0,0.225,0.0],scale:[0.625,0.625,0.625]},brightness:{block:15,sky:15},item_display:"head"} +summon item_display ~ ~ ~ {Tags:["gm4_block_compressor_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_block_compressor_display"',item:{id:"minecraft:stone",Count:1b,tag:{CustomModelData:"block/block_compressor"}},transformation:{right_rotation:[0f,0f,0f,1f],left_rotation:[0f,0f,0f,1f],translation:[0f,0f,0f],scale:[0.5,0.5,0.5]},brightness:{block:15,sky:15},item_display:"head"} summon marker ~ ~ ~ {Tags:["gm4_block_compressor","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_block_compressor"',Rotation:[0.0f,0.0f]} # mark block as placed playsound minecraft:block.piston.contract block @a[distance=..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_block_compressors/data/gm4_block_compressors/functions/machine/destroy.mcfunction b/gm4_block_compressors/data/gm4_block_compressors/functions/machine/destroy.mcfunction index a5a4f95c01..880bc91d32 100644 --- a/gm4_block_compressors/data/gm4_block_compressors/functions/machine/destroy.mcfunction +++ b/gm4_block_compressors/data/gm4_block_compressors/functions/machine/destroy.mcfunction @@ -4,8 +4,8 @@ # run from gm4_block_compressors:machine/verify_destroy # kill entities related to machine block -execute positioned ~ ~-0.98 ~ run kill @e[type=armor_stand,tag=gm4_block_compressor_stand,limit=1,distance=..0.1] -execute positioned ~ ~-0.4 ~ run kill @e[type=armor_stand,tag=gm4_block_compressor_display,limit=1,distance=..0.1] +execute positioned ~ ~ ~ run kill @e[type=item_display,tag=gm4_block_compressor_plate,limit=1,distance=..0.1] +execute positioned ~ ~ ~ run kill @e[type=item_display,tag=gm4_block_compressor_display,limit=1,distance=..0.1] execute store result score $dropped_item gm4_machine_data run kill @e[type=item,distance=..1,nbt={Age:0s,Item:{id:"minecraft:dropper",Count:1b,tag:{display:{}}}},limit=1,sort=nearest] kill @s diff --git a/gm4_block_compressors/data/gm4_block_compressors/functions/pressure_plate_up.mcfunction b/gm4_block_compressors/data/gm4_block_compressors/functions/pressure_plate_up.mcfunction index c27e87e831..7e8e93559f 100644 --- a/gm4_block_compressors/data/gm4_block_compressors/functions/pressure_plate_up.mcfunction +++ b/gm4_block_compressors/data/gm4_block_compressors/functions/pressure_plate_up.mcfunction @@ -5,4 +5,4 @@ tp @s ~ ~0.03 ~ tag @s remove gm4_compressor_depressed tag @e[type=marker,tag=gm4_block_compressor_processing,limit=1] remove gm4_compressor_sound -playsound block.stone_pressure_plate.click_off block @a[distance=..6] ~ ~1.970 ~ 0.7 0.3 +playsound block.stone_pressure_plate.click_off block @a[distance=..6] ~ ~0.35 ~ 0.7 0.3 diff --git a/gm4_block_compressors/data/gm4_block_compressors/functions/process.mcfunction b/gm4_block_compressors/data/gm4_block_compressors/functions/process.mcfunction index 5d821dc9fa..e3c70edb54 100644 --- a/gm4_block_compressors/data/gm4_block_compressors/functions/process.mcfunction +++ b/gm4_block_compressors/data/gm4_block_compressors/functions/process.mcfunction @@ -3,16 +3,14 @@ # run from main tag @s add gm4_block_compressor_processing -execute positioned ~ ~-0.98 ~ run tag @e[type=armor_stand,tag=gm4_block_compressor_stand,limit=1,distance=..0.1] add gm4_block_compressor_processing execute positioned ~-0.5 ~0.5 ~-0.5 as @e[type=item,dx=0] positioned ~0.5 ~-0.9 ~0.5 run function gm4_block_compressors:item particle portal ~ ~0.7 ~ 0 0 0 0.1 20 # simulate pressure plate -execute positioned ~ ~-0.995 ~ as @e[type=armor_stand,tag=gm4_block_compressor_stand,tag=gm4_compressor_depressed,distance=..0.01,limit=1] positioned ~-0.5 ~1.495 ~-0.5 unless entity @e[dx=0] at @s run function gm4_block_compressors:pressure_plate_up -execute positioned ~-0.5 ~0.5 ~-0.5 if entity @e[dx=0] positioned ~0.5 ~-1.465 ~0.5 as @e[type=armor_stand,tag=gm4_block_compressor_stand,tag=!gm4_compressor_depressed,distance=..0.01,limit=1] at @s run function gm4_block_compressors:pressure_plate_down +execute positioned ~ ~-0.03 ~ as @e[type=item_display,tag=gm4_block_compressor_plate,tag=gm4_compressor_depressed,distance=..0.01,limit=1] positioned ~-0.5 ~0.5 ~-0.5 unless entity @e[dx=0] at @s run function gm4_block_compressors:pressure_plate_up +execute positioned ~-0.5 ~0.5 ~-0.5 if entity @e[dx=0] positioned ~0.5 ~-0.5 ~0.5 as @e[type=item_display,tag=gm4_block_compressor_plate,tag=!gm4_compressor_depressed,distance=..0.01,limit=1] at @s run function gm4_block_compressors:pressure_plate_down execute if entity @s[tag=gm4_compressor_sound] run playsound block.stone_pressure_plate.click_on block @a[distance=..6] ~ ~0.35 ~ 0.7 0.6 # clean up tag @s remove gm4_compressor_sound tag @s remove gm4_block_compressor_processing -tag @e[type=armor_stand,distance=..2] remove gm4_block_compressor_processing diff --git a/gm4_block_compressors/data/gm4_block_compressors/functions/relocate/place_down.mcfunction b/gm4_block_compressors/data/gm4_block_compressors/functions/relocate/place_down.mcfunction index fe5e93c0f4..90222c9fd5 100644 --- a/gm4_block_compressors/data/gm4_block_compressors/functions/relocate/place_down.mcfunction +++ b/gm4_block_compressors/data/gm4_block_compressors/functions/relocate/place_down.mcfunction @@ -1,12 +1,15 @@ # @s = command block placed by "gm4_relocators:backwards_compatibility/place_down/replace_head" # located at the command block (where the player head was) -execute if block ~ ~ ~ command_block[facing=east] run setblock ~ ~ ~ dropper[facing=west] -execute if block ~ ~ ~ command_block[facing=west] run setblock ~ ~ ~ dropper[facing=east] -execute if block ~ ~ ~ command_block[facing=south] run setblock ~ ~ ~ dropper[facing=north] -execute if block ~ ~ ~ command_block[facing=north] run setblock ~ ~ ~ dropper[facing=south] -execute if block ~ ~ ~ command_block[facing=down] run setblock ~ ~ ~ dropper[facing=up] +# execute if block ~ ~ ~ command_block[facing=east] run setblock ~ ~ ~ dropper[facing=west] +# execute if block ~ ~ ~ command_block[facing=west] run setblock ~ ~ ~ dropper[facing=east] +# execute if block ~ ~ ~ command_block[facing=south] run setblock ~ ~ ~ dropper[facing=north] +# execute if block ~ ~ ~ command_block[facing=north] run setblock ~ ~ ~ dropper[facing=south] +# execute if block ~ ~ ~ command_block[facing=down] run setblock ~ ~ ~ dropper[facing=up] -data merge block ~ ~ ~ {CustomName:'{"translate":"container.gm4.block_compressor","fallback":"Compressor"}'} -summon armor_stand ~ ~-.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,DisabledSlots:2039552,Tags:["gm4_no_edit","gm4_block_compressor"],HasVisualFire:1,CustomName:'"gm4_block_compressor"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420001,SkullOwner:{Id:[I;-1851723870,1025001935,-1279456745,2096330633],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0NTMzMjYwNjc3NzksInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzFkNmNkYTQwYjViODEyODVhZmRiY2RlOWQ2M2M3OGUxNzZkMzFiNTk0YjFhNmQ5Nzc5OWQ0OTBkN2VmMjkyIn19fQ=="}]}}}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420001}},{}],Pose:{RightArm:[0f, 0f, 0f]}} -playsound minecraft:block.piston.contract block @a[distance=..5] +# data merge block ~ ~ ~ {CustomName:'{"translate":"container.gm4.block_compressor","fallback":"Compressor"}'} +# summon armor_stand ~ ~-.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,DisabledSlots:2039552,Tags:["gm4_no_edit","gm4_block_compressor"],HasVisualFire:1,CustomName:'"gm4_block_compressor"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420001,SkullOwner:{Id:[I;-1851723870,1025001935,-1279456745,2096330633],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0NTMzMjYwNjc3NzksInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzFkNmNkYTQwYjViODEyODVhZmRiY2RlOWQ2M2M3OGUxNzZkMzFiNTk0YjFhNmQ5Nzc5OWQ0OTBkN2VmMjkyIn19fQ=="}]}}}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420001}},{}],Pose:{RightArm:[0f, 0f, 0f]}} +# playsound minecraft:block.piston.contract block @a[distance=..5] + +# NOTE this feature set is outdated and should be removed when relocators removed whe relocators drops its legacy support +function gm4_block_compressors:machine/create diff --git a/gm4_block_compressors/data/gm4_block_compressors/functions/relocate/set_pick_up_data.mcfunction b/gm4_block_compressors/data/gm4_block_compressors/functions/relocate/set_pick_up_data.mcfunction index cacc63148a..193f43465c 100644 --- a/gm4_block_compressors/data/gm4_block_compressors/functions/relocate/set_pick_up_data.mcfunction +++ b/gm4_block_compressors/data/gm4_block_compressors/functions/relocate/set_pick_up_data.mcfunction @@ -5,7 +5,7 @@ data modify storage gm4_relocators:temp merge_data set value {custom_block:"gm4_block_compressor",lore:'{"translate":"block.gm4.block_compressor","fallback":"Compressor","color":"gray","italic":true}'} -execute positioned ~ ~-0.98 ~ run kill @e[type=armor_stand,tag=gm4_block_compressor_stand,limit=1,distance=..0.1] -execute positioned ~ ~-0.4 ~ run kill @e[type=armor_stand,tag=gm4_block_compressor_display,limit=1,distance=..0.1] +execute positioned ~ ~ ~ run kill @e[type=item_display,tag=gm4_block_compressor_plate,limit=1,distance=..0.1] +execute positioned ~ ~ ~ run kill @e[type=item_display,tag=gm4_block_compressor_display,limit=1,distance=..0.1] kill @s scoreboard players set $found_marker gm4_rl_data 1 diff --git a/gm4_block_compressors/data/gm4_block_compressors/functions/relocate/summon_block_markers.mcfunction b/gm4_block_compressors/data/gm4_block_compressors/functions/relocate/summon_block_markers.mcfunction index 985d5871e7..8668f216f3 100644 --- a/gm4_block_compressors/data/gm4_block_compressors/functions/relocate/summon_block_markers.mcfunction +++ b/gm4_block_compressors/data/gm4_block_compressors/functions/relocate/summon_block_markers.mcfunction @@ -5,9 +5,9 @@ scoreboard players set $placed_block gm4_rl_data 1 -summon armor_stand ~ ~-0.965 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_block_compressor_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_block_compressor_stand"',ArmorItems:[{},{},{},{id:"minecraft:purpur_block",Count:1b,tag:{CustomModelData:3420002}}],Pose:{Head:[180f,0f,0f]},Rotation:[0.0f,0.0f]} -summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_block_compressor_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_block_compressor_display"',HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420001}},{}],Pose:{RightArm:[0.0f,0.0f,0.0f]},Rotation:[0.0f,0.0f]} +summon item_display ~ ~ ~ {Tags:["gm4_block_compressor_plate","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_block_compressor_plate"',item:{id:"minecraft:purpur_block",Count:1b,tag:{CustomModelData:"block/block_compressor_plate"}},transformation:{right_rotation:[0f,0f,0f,1f],left_rotation:[1f,0f,0f,0f],translation:[0.0,0.225,0.0],scale:[0.625,0.625,0.625]},brightness:{block:15,sky:15},item_display:"head"} +summon item_display ~ ~ ~ {Tags:["gm4_block_compressor_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_block_compressor_display"',item:{id:"minecraft:stone",Count:1b,tag:{CustomModelData:"block/block_compressor"}},transformation:{right_rotation:[0f,0f,0f,1f],left_rotation:[0f,0f,0f,1f],translation:[0f,0f,0f],scale:[0.5,0.5,0.5]},brightness:{block:15,sky:15},item_display:"head"} summon marker ~ ~ ~ {Tags:["gm4_block_compressor","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_block_compressor"',Rotation:[0.0f,0.0f]} -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_block_compressors/data/gm4_block_compressors/functions/upgrade_paths/1.4.mcfunction b/gm4_block_compressors/data/gm4_block_compressors/functions/upgrade_paths/1.4.mcfunction new file mode 100644 index 0000000000..096d601e5b --- /dev/null +++ b/gm4_block_compressors/data/gm4_block_compressors/functions/upgrade_paths/1.4.mcfunction @@ -0,0 +1,8 @@ +execute as @e[type=armor_stand,tag=gm4_block_compressor_stand] at @s positioned ~ ~0.965 ~ align y run summon item_display ~ ~0.5 ~ {Tags:["gm4_block_compressor_plate","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_block_compressor_plate"',item:{id:"minecraft:purpur_block",Count:1b,tag:{CustomModelData:"block/block_compressor_plate"}},transformation:{right_rotation:[0f,0f,0f,1f],left_rotation:[1f,0f,0f,0f],translation:[0.0,0.225,0.0],scale:[0.625,0.625,0.625]},brightness:{block:15,sky:15},item_display:"head"} +execute as @e[type=armor_stand,tag=gm4_block_compressor_display] at @s align y run summon item_display ~ ~0.5 ~ {Tags:["gm4_block_compressor_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_block_compressor_display"',item:{id:"minecraft:stone",Count:1b,tag:{CustomModelData:"block/block_compressor"}},transformation:{right_rotation:[0f,0f,0f,1f],left_rotation:[0f,0f,0f,1f],translation:[0f,0f,0f],scale:[0.5,0.5,0.5]},brightness:{block:15,sky:15},item_display:"head"} + +execute as @e[type=armor_stand,tag=gm4_block_compressor_display] at @s run scoreboard players set @e[distance=..2,tag=gm4_new_machine] gm4_entity_version 2 +execute as @e[type=armor_stand,tag=gm4_block_compressor_display] at @s run tag @e[distance=..2] remove gm4_new_machine + +kill @e[type=armor_stand,tag=gm4_block_compressor_display] +kill @e[type=armor_stand,tag=gm4_block_compressor_stand] diff --git a/gm4_block_compressors/data/gm4_block_compressors/guidebook/block_compressors.json b/gm4_block_compressors/data/gm4_block_compressors/guidebook/block_compressors.json index 2f4481ff77..b4d25ca940 100644 --- a/gm4_block_compressors/data/gm4_block_compressors/guidebook/block_compressors.json +++ b/gm4_block_compressors/data/gm4_block_compressors/guidebook/block_compressors.json @@ -3,8 +3,7 @@ "name": "Block Compressors", "module_type": "module", "icon": { - "item": "minecraft:piston", - "nbt": "{CustomModelData:3420005}" + "item": "minecraft:piston" }, "criteria": { "create_custom_crafter": { diff --git a/gm4_block_compressors/data/gm4_block_compressors/loot_tables/items/block_compressor.json b/gm4_block_compressors/data/gm4_block_compressors/loot_tables/items/block_compressor.json index 76d5ce0bcd..4239e96cc4 100644 --- a/gm4_block_compressors/data/gm4_block_compressors/loot_tables/items/block_compressor.json +++ b/gm4_block_compressors/data/gm4_block_compressors/loot_tables/items/block_compressor.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420130,gm4_machines:{id:\"block_compressor\"},SkullOwner:{Name:\"gm4_block_compressor\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$block_compressor\"}]}}}" + "tag": "{CustomModelData:'block/block_compressor_full',gm4_machines:{id:\"block_compressor\"},SkullOwner:{Name:\"gm4_block_compressor\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$block_compressor\"}]}}}" }, { "function": "set_name", diff --git a/gm4_block_compressors/overlay_26/data/gm4_block_compressors/guidebook/block_compressors.json b/gm4_block_compressors/overlay_26/data/gm4_block_compressors/guidebook/block_compressors.json index 6c11908c90..11197da9c4 100644 --- a/gm4_block_compressors/overlay_26/data/gm4_block_compressors/guidebook/block_compressors.json +++ b/gm4_block_compressors/overlay_26/data/gm4_block_compressors/guidebook/block_compressors.json @@ -3,8 +3,7 @@ "name": "Block Compressors", "module_type": "module", "icon": { - "item": "minecraft:piston", - "nbt": "{CustomModelData:3420005}" + "item": "minecraft:piston" }, "criteria": { "create_custom_crafter": { diff --git a/gm4_book_binders/assets/gm4_book_binders/textures/item/enchanted_page.png b/gm4_book_binders/assets/gm4_book_binders/textures/item/enchanted_page.png new file mode 100644 index 0000000000..c0961424a8 Binary files /dev/null and b/gm4_book_binders/assets/gm4_book_binders/textures/item/enchanted_page.png differ diff --git a/gm4_book_binders/assets/translations.csv b/gm4_book_binders/assets/translations.csv new file mode 100644 index 0000000000..d6e4462db3 --- /dev/null +++ b/gm4_book_binders/assets/translations.csv @@ -0,0 +1,12 @@ +key,en_us +item.gm4.enchanted_page,Enchanted Page +advancement.gm4.book_binders.title,Ain't Got Rhythm +advancement.gm4.book_binders.description,Set up a Book Binder +advancement.gm4.book_binders_bind.title,Curse of Binding +advancement.gm4.book_binders_bind.description,Publish your first Enchanted Book +advancement.gm4.book_binders_debind.title,Tearing Up! +advancement.gm4.book_binders_debind.description,Get your first enchanted page +text.gm4.guidebook.module_desc.book_binders,Start printing your own Enchanted Books with Book Binders. Use lecterns to exract singular pages from Enchanted Books and recombine pages with Leather to create your own Enchanted Books -- free of charge! +text.gm4.guidebook.book_binders.tearing,Lecterns have a small area at the center where enchanted books can be placed.\n\nThis will cause the enchanted book to be ripped up into separate pages—one for each enchantment. +text.gm4.guidebook.book_binders.rebinding,"Placing enchanted pages onto a lectern will add it to its internal inventory.\n\nPlacing a leather onto the lectern will then bind the pages in its inventory, creating an enchanted book." +text.gm4.guidebook.book_binders.hoppers,A hopper pointing into the back of the lectern will push items into it.\n\nA hopper below the lectern will catch any items dropped by the lectern. diff --git a/gm4_book_binders/beet.yaml b/gm4_book_binders/beet.yaml index d79c4af656..f3fc96f147 100644 --- a/gm4_book_binders/beet.yaml +++ b/gm4_book_binders/beet.yaml @@ -5,6 +5,9 @@ version: 1.2.X data_pack: load: . +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module @@ -12,6 +15,22 @@ meta: gm4: versioning: schedule_loops: [main] + model_data: + - item: paper + reference: item/enchanted_page + template: generated + - item: lectern + reference: gui/advancement/book_binders + template: advancement + - item: paper + reference: gui/advancement/book_binders_debind + template: + name: advancement + forward: item/enchanted_page + - item: enchanted_book + reference: gui/advancement/book_binders_bind + template: advancement + website: description: Start printing your own Enchanted Books with Book Binders. Use lecterns to exract singular pages from Enchanted Books and recombine pages with Leather to create your own Enchanted Books -- free of charge! recommended: diff --git a/gm4_book_binders/data/gm4/advancements/book_binders.json b/gm4_book_binders/data/gm4/advancements/book_binders.json index 9201d4099f..657c8c4488 100644 --- a/gm4_book_binders/data/gm4/advancements/book_binders.json +++ b/gm4_book_binders/data/gm4/advancements/book_binders.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "lectern", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/book_binders'}" }, "title": { "translate": "advancement.gm4.book_binders.title", diff --git a/gm4_book_binders/data/gm4/advancements/book_binders_bind.json b/gm4_book_binders/data/gm4/advancements/book_binders_bind.json index bef2b0f023..7bf986b8e0 100644 --- a/gm4_book_binders/data/gm4/advancements/book_binders_bind.json +++ b/gm4_book_binders/data/gm4/advancements/book_binders_bind.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "enchanted_book", - "nbt": "{CustomModelData:3420001,Enchantments:[{id:\"minecraft:mending\",lvl:1}]}" + "nbt": "{CustomModelData:'gui/advancement/book_binders_bind',Enchantments:[{id:\"minecraft:mending\",lvl:1}]}" }, "title": { "translate": "advancement.gm4.book_binders_bind.title", diff --git a/gm4_book_binders/data/gm4/advancements/book_binders_debind.json b/gm4_book_binders/data/gm4/advancements/book_binders_debind.json index c89e83a437..396bff6178 100644 --- a/gm4_book_binders/data/gm4/advancements/book_binders_debind.json +++ b/gm4_book_binders/data/gm4/advancements/book_binders_debind.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "paper", - "nbt": "{CustomModelData:3420001,Enchantments:[{id:\"minecraft:mending\",lvl:1}]}" + "nbt": "{CustomModelData:'gui/advancement/book_binders_debind',Enchantments:[{id:\"minecraft:mending\",lvl:1}]}" }, "title": { "translate": "advancement.gm4.book_binders_debind.title", diff --git a/gm4_book_binders/data/gm4_book_binders/functions/binder/recipes/debinding.mcfunction b/gm4_book_binders/data/gm4_book_binders/functions/binder/recipes/debinding.mcfunction index 99c1ca4687..12196fa685 100644 --- a/gm4_book_binders/data/gm4_book_binders/functions/binder/recipes/debinding.mcfunction +++ b/gm4_book_binders/data/gm4_book_binders/functions/binder/recipes/debinding.mcfunction @@ -6,7 +6,7 @@ scoreboard players set enchantments_left gm4_binder_data 0 # summon paper item (y offset to deposit items in hopper, but still make them pop out of a solid block) -summon item ~ ~-0.26 ~ {Tags:["gm4_empty_enchanted_page"],PickupDelay:0s,Item:{id:"minecraft:paper",Count:1b,tag:{gm4_book_binders:{item:"enchanted_page"},CustomModelData:3420001,display:{Name:'{"translate":"item.gm4.enchanted_page","fallback":"Enchanted Page","italic":false}'},Enchantments:[]}}} +summon item ~ ~-0.26 ~ {Tags:["gm4_empty_enchanted_page"],PickupDelay:0s,Item:{id:"minecraft:paper",Count:1b,tag:{gm4_book_binders:{item:"enchanted_page"},CustomModelData:"item/enchanted_page",display:{Name:'{"translate":"item.gm4.enchanted_page","fallback":"Enchanted Page","italic":false}'},Enchantments:[]}}} #append first enchant from book into paper data modify entity @e[type=item,tag=gm4_empty_enchanted_page,limit=1,sort=nearest,distance=..0.3] Item.tag.Enchantments append from entity @s HandItems[0].tag.StoredEnchantments[0] # delete enchantment from book diff --git a/gm4_book_binders/data/gm4_book_binders/guidebook/book_binders.json b/gm4_book_binders/data/gm4_book_binders/guidebook/book_binders.json index c65d1637c0..177dbd1917 100644 --- a/gm4_book_binders/data/gm4_book_binders/guidebook/book_binders.json +++ b/gm4_book_binders/data/gm4_book_binders/guidebook/book_binders.json @@ -3,8 +3,7 @@ "name": "Book Binders", "module_type": "module", "icon": { - "item": "minecraft:enchanted_book", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:enchanted_book" }, "criteria": { "obtain_enchanted_page": { diff --git a/gm4_bookshelf_inspector/data/gm4_bookshelf_inspector/guidebook/bookshelf_inspector.json b/gm4_bookshelf_inspector/data/gm4_bookshelf_inspector/guidebook/bookshelf_inspector.json index 8919680bdb..6f82c28da7 100644 --- a/gm4_bookshelf_inspector/data/gm4_bookshelf_inspector/guidebook/bookshelf_inspector.json +++ b/gm4_bookshelf_inspector/data/gm4_bookshelf_inspector/guidebook/bookshelf_inspector.json @@ -3,8 +3,7 @@ "name": "Bookshelf Inspector", "module_type": "module", "icon": { - "item": "minecraft:chiseled_bookshelf", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:chiseled_bookshelf" }, "criteria": { "use_chiseled_bookshelf": { diff --git a/gm4_bookshelf_inspector/translations.csv b/gm4_bookshelf_inspector/translations.csv new file mode 100644 index 0000000000..0b35789001 --- /dev/null +++ b/gm4_bookshelf_inspector/translations.csv @@ -0,0 +1,3 @@ +key,en_us +text.gm4.guidebook.module_desc.bookshelf_inspector,See what's in your Chiseled Bookshelves without having to take all the books out! +text.gm4.guidebook.chiseled_bookshelf.description,Looking at a book inside a chiseled bookshelf will display the book name along with some extra contents. diff --git a/gm4_boots_of_ostara/assets/gm4_boots_of_ostara/optifine/cit/boots_of_ostara.properties b/gm4_boots_of_ostara/assets/gm4_boots_of_ostara/optifine/cit/boots_of_ostara.properties new file mode 100644 index 0000000000..4feffc7920 --- /dev/null +++ b/gm4_boots_of_ostara/assets/gm4_boots_of_ostara/optifine/cit/boots_of_ostara.properties @@ -0,0 +1,5 @@ +type=armor +matchItems=leather_boots +texture.leather_layer_1=boots_of_ostara_layer_1 +texture.leather_layer_1_overlay=boots_of_ostara_layer_1_overlay +nbt.CustomModelData=$item/boots_of_ostara diff --git a/gm4_boots_of_ostara/assets/gm4_boots_of_ostara/optifine/cit/boots_of_ostara_layer_1.png b/gm4_boots_of_ostara/assets/gm4_boots_of_ostara/optifine/cit/boots_of_ostara_layer_1.png new file mode 100644 index 0000000000..dc118abc3f Binary files /dev/null and b/gm4_boots_of_ostara/assets/gm4_boots_of_ostara/optifine/cit/boots_of_ostara_layer_1.png differ diff --git a/gm4_boots_of_ostara/assets/gm4_boots_of_ostara/optifine/cit/boots_of_ostara_layer_1_overlay.png b/gm4_boots_of_ostara/assets/gm4_boots_of_ostara/optifine/cit/boots_of_ostara_layer_1_overlay.png new file mode 100644 index 0000000000..67fe64a90f Binary files /dev/null and b/gm4_boots_of_ostara/assets/gm4_boots_of_ostara/optifine/cit/boots_of_ostara_layer_1_overlay.png differ diff --git a/gm4_boots_of_ostara/assets/gm4_boots_of_ostara/textures/item/boots_of_ostara.png b/gm4_boots_of_ostara/assets/gm4_boots_of_ostara/textures/item/boots_of_ostara.png new file mode 100644 index 0000000000..990066bdc4 Binary files /dev/null and b/gm4_boots_of_ostara/assets/gm4_boots_of_ostara/textures/item/boots_of_ostara.png differ diff --git a/gm4_boots_of_ostara/assets/gm4_boots_of_ostara/textures/item/boots_of_ostara_overlay.png b/gm4_boots_of_ostara/assets/gm4_boots_of_ostara/textures/item/boots_of_ostara_overlay.png new file mode 100644 index 0000000000..5164f29d32 Binary files /dev/null and b/gm4_boots_of_ostara/assets/gm4_boots_of_ostara/textures/item/boots_of_ostara_overlay.png differ diff --git a/gm4_boots_of_ostara/assets/gm4_boots_of_ostara/textures/item/flippers_of_ostara.png b/gm4_boots_of_ostara/assets/gm4_boots_of_ostara/textures/item/flippers_of_ostara.png new file mode 100644 index 0000000000..0e9525edf1 Binary files /dev/null and b/gm4_boots_of_ostara/assets/gm4_boots_of_ostara/textures/item/flippers_of_ostara.png differ diff --git a/gm4_boots_of_ostara/assets/gm4_boots_of_ostara/textures/item/flippers_of_ostara_overlay.png b/gm4_boots_of_ostara/assets/gm4_boots_of_ostara/textures/item/flippers_of_ostara_overlay.png new file mode 100644 index 0000000000..2e23828002 Binary files /dev/null and b/gm4_boots_of_ostara/assets/gm4_boots_of_ostara/textures/item/flippers_of_ostara_overlay.png differ diff --git a/gm4_boots_of_ostara/assets/translations.csv b/gm4_boots_of_ostara/assets/translations.csv new file mode 100644 index 0000000000..98d9efbaa3 --- /dev/null +++ b/gm4_boots_of_ostara/assets/translations.csv @@ -0,0 +1,12 @@ +key,en_us +advancement.gm4.boots_of_ostara.description,Wear the Boots of Ostara +advancement.gm4.boots_of_ostara.title,Green Feet +item.gm4.boots_of_ostara,Boots of Ostara +item.gm4.boots_of_ostara.lore,Brings abundance beneath you! +item.gm4.flippers_of_ostara,Flippers of Ostara +text.gm4.guidebook.module_desc.boots_of_ostara,"A pair of boots every gardener would love to have! Boots of Ostara allow you to easily spread Grass and Moss, and they even stop the Desire Lines module from creating that pesky dirt." +text.gm4.guidebook.boot_of_ostara.description,Boots of Ostara can be crafted to aid in the spreading of grass and moss.\n\nThe boots can be crafted in a Custom Crafter. +text.gm4.guidebook.boots_of_ostara.crafting,The recipe for the Boots of Ostara is as follows: +text.gm4.guidebook.boots_of_ostara.crafting_and_desire_lines,Boots of Ostara also prevent desire lines from forming. +text.gm4.guidebook.boots_of_ostara.grass,Wearing the boots and holding a grass block in the offhand will spread grass onto dirt beneath the wearer.\n +text.gm4.guidebook.boots_of_ostara.moss_and_armor_stands,"Similarly, moss will spread onto stone when held in the offhand.\n\nArmor stands can also spread vegetation!" diff --git a/gm4_boots_of_ostara/beet.yaml b/gm4_boots_of_ostara/beet.yaml index f07d98316d..49c5632752 100644 --- a/gm4_boots_of_ostara/beet.yaml +++ b/gm4_boots_of_ostara/beet.yaml @@ -5,6 +5,9 @@ version: 1.5.X data_pack: load: . +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module - gm4.plugins.include.lib_custom_crafters @@ -15,6 +18,17 @@ meta: required: lib_custom_crafters: 3.0.0 schedule_loops: [main] + model_data: + - item: leather_boots + template: generated_overlay + broadcast: + - reference: item/boots_of_ostara + - reference: item/flippers_of_ostara + - item: leather_boots + reference: gui/advancement/boots_of_ostara + template: + name: advancement + forward: item/boots_of_ostara website: description: A pair of boots every gardener would love to have! Boots of Ostara allow you to easily spread Grass and Moss, and they even stop the Desire Lines module from creating that pesky dirt. recommended: diff --git a/gm4_boots_of_ostara/data/gm4/advancements/boots_of_ostara.json b/gm4_boots_of_ostara/data/gm4/advancements/boots_of_ostara.json index 17266ae14e..06bcdc999d 100644 --- a/gm4_boots_of_ostara/data/gm4/advancements/boots_of_ostara.json +++ b/gm4_boots_of_ostara/data/gm4/advancements/boots_of_ostara.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "leather_boots", - "nbt": "{display:{color:3705899},CustomModelData:3420003}" + "nbt": "{display:{color:3705899},CustomModelData:'gui/advancement/boots_of_ostara'}" }, "title": { "translate": "advancement.gm4.boots_of_ostara.title", diff --git a/gm4_boots_of_ostara/data/gm4_boots_of_ostara/functions/flippers_merge.mcfunction b/gm4_boots_of_ostara/data/gm4_boots_of_ostara/functions/flippers_merge.mcfunction index 15cf29951d..c33ba3d542 100644 --- a/gm4_boots_of_ostara/data/gm4_boots_of_ostara/functions/flippers_merge.mcfunction +++ b/gm4_boots_of_ostara/data/gm4_boots_of_ostara/functions/flippers_merge.mcfunction @@ -1,4 +1,4 @@ -execute if data storage gm4_boots_of_ostara:temp Item.tag{CustomModelData:3420002} run data modify storage gm4_boots_of_ostara:temp Item.tag.CustomModelData set value 3420004 +execute if data storage gm4_boots_of_ostara:temp Item.tag{CustomModelData:"gm4_scuba_gear:item/flippers"} run data modify storage gm4_boots_of_ostara:temp Item.tag.CustomModelData set value "item/flippers_of_ostara" data modify storage gm4_boots_of_ostara:temp Item.tag.display set value {Name:'{"translate":"item.gm4.flippers_of_ostara","fallback":"Flippers of Ostara","italic":false}'} diff --git a/gm4_boots_of_ostara/data/gm4_boots_of_ostara/guidebook/boots_of_ostara.json b/gm4_boots_of_ostara/data/gm4_boots_of_ostara/guidebook/boots_of_ostara.json index c06232d13a..9b352c7c8a 100644 --- a/gm4_boots_of_ostara/data/gm4_boots_of_ostara/guidebook/boots_of_ostara.json +++ b/gm4_boots_of_ostara/data/gm4_boots_of_ostara/guidebook/boots_of_ostara.json @@ -4,7 +4,7 @@ "module_type": "module", "icon": { "item": "minecraft:leather_boots", - "nbt": "{display:{color:3705899},CustomModelData:3420003}" + "nbt": "{display:{color:3705899}}" }, "criteria": { "obtain_leather_boots": { diff --git a/gm4_boots_of_ostara/data/gm4_boots_of_ostara/loot_tables/items/boots_of_ostara.json b/gm4_boots_of_ostara/data/gm4_boots_of_ostara/loot_tables/items/boots_of_ostara.json index 2171718e97..33188eb0b3 100644 --- a/gm4_boots_of_ostara/data/gm4_boots_of_ostara/loot_tables/items/boots_of_ostara.json +++ b/gm4_boots_of_ostara/data/gm4_boots_of_ostara/loot_tables/items/boots_of_ostara.json @@ -10,7 +10,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_boots_of_ostara:1b,HideFlags:64,display:{color:3705899}}" + "tag": "{CustomModelData:'item/boots_of_ostara',gm4_boots_of_ostara:1b,HideFlags:64,display:{color:3705899}}" }, { "function": "minecraft:set_name", diff --git a/gm4_calling_bell/beet.yaml b/gm4_calling_bell/beet.yaml index 1dd2bf2bee..1b747aa9d5 100644 --- a/gm4_calling_bell/beet.yaml +++ b/gm4_calling_bell/beet.yaml @@ -23,6 +23,10 @@ meta: schedule_loops: - tick - day_clock + model_data: + - item: emerald + reference: gui/advancement/calling_bell + template: advancement video: null wiki: https://wiki.gm4.co/wiki/Calling_Bell credits: diff --git a/gm4_calling_bell/data/gm4/advancements/calling_bell.json b/gm4_calling_bell/data/gm4/advancements/calling_bell.json index f0e0ba2dd4..ee7cf8dbc9 100644 --- a/gm4_calling_bell/data/gm4/advancements/calling_bell.json +++ b/gm4_calling_bell/data/gm4/advancements/calling_bell.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "emerald", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/calling_bell'}" }, "title": { "translate": "advancement.gm4.calling_bell.title", diff --git a/gm4_calling_bell/data/gm4_calling_bell/guidebook/calling_bell.json b/gm4_calling_bell/data/gm4_calling_bell/guidebook/calling_bell.json index 04d24c3732..99b34c942d 100644 --- a/gm4_calling_bell/data/gm4_calling_bell/guidebook/calling_bell.json +++ b/gm4_calling_bell/data/gm4_calling_bell/guidebook/calling_bell.json @@ -3,8 +3,7 @@ "name": "Calling Bell", "module_type": "module", "icon": { - "item": "minecraft:emerald", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:emerald" }, "criteria": { "obtain_emerald": { diff --git a/gm4_calling_bell/translations.csv b/gm4_calling_bell/translations.csv new file mode 100644 index 0000000000..7e7deb8f85 --- /dev/null +++ b/gm4_calling_bell/translations.csv @@ -0,0 +1,5 @@ +key,en_us +advancement.gm4.calling_bell.title,House Call +advancement.gm4.calling_bell.description,Summon a wandering trader by ringing a bell with an emerald +text.gm4.guidebook.module_desc.calling_bell,Summon a Wandering Trader by using an Emerald on a Bell. +text.gm4.guidebook.calling_bell.description,Ringing a bell while holding an emerald will cause a wandering trader to appear.\n\nThis can be done once per day. diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/guidebook/cement_mixers.json b/gm4_cement_mixers/data/gm4_cement_mixers/guidebook/cement_mixers.json index 862d91fe48..4d5ebc0940 100644 --- a/gm4_cement_mixers/data/gm4_cement_mixers/guidebook/cement_mixers.json +++ b/gm4_cement_mixers/data/gm4_cement_mixers/guidebook/cement_mixers.json @@ -4,8 +4,7 @@ "module_type": "expansion", "base_module": "liquid_tanks", "icon": { - "item": "minecraft:light_blue_concrete_powder", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:light_blue_concrete_powder" }, "criteria": { "obtain_liquid_tank": { diff --git a/gm4_cement_mixers/translations.csv b/gm4_cement_mixers/translations.csv new file mode 100644 index 0000000000..b4201e2d4e --- /dev/null +++ b/gm4_cement_mixers/translations.csv @@ -0,0 +1,3 @@ +key,en_us +text.gm4.guidebook.module_desc.cement_mixers,"Allows Liquid Tanks to convert Concrete Powder items into Concrete, at the cost of ⅓ of a Bucket of Water per Concrete Powder." +text.gm4.guidebook.cement_mixers.usage,A Water Tank can convert concrete powder into concrete and dirt into mud when placed inside the tank.\n\nThis uses 1/3 of a bucket of water. diff --git a/gm4_chairs/beet.yaml b/gm4_chairs/beet.yaml index b29bf1afce..037890bbf1 100644 --- a/gm4_chairs/beet.yaml +++ b/gm4_chairs/beet.yaml @@ -26,6 +26,13 @@ meta: - Denniss Icon Design: - DuckJr + model_data: + - item: birch_stairs + reference: gui/advancement/chairs_creation + template: advancement + - item: poisonous_potato + reference: gui/advancement/chairs_sit + template: advancement modrinth: project_id: KLywOs5L smithed: diff --git a/gm4_chairs/data/gm4/advancements/chairs_creation.json b/gm4_chairs/data/gm4/advancements/chairs_creation.json index 94556fbd8c..96830a6e9a 100644 --- a/gm4_chairs/data/gm4/advancements/chairs_creation.json +++ b/gm4_chairs/data/gm4/advancements/chairs_creation.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "birch_stairs", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/chairs_creation'}" }, "title": { "translate": "advancement.gm4.chairs.creation.title", diff --git a/gm4_chairs/data/gm4/advancements/chairs_sit.json b/gm4_chairs/data/gm4/advancements/chairs_sit.json index 285eb5fba8..9b16f553da 100644 --- a/gm4_chairs/data/gm4/advancements/chairs_sit.json +++ b/gm4_chairs/data/gm4/advancements/chairs_sit.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "poisonous_potato", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/chairs_sit'}" }, "title": { "translate": "advancement.gm4.chairs.sit.title", diff --git a/gm4_chairs/data/gm4_chairs/guidebook/chairs.json b/gm4_chairs/data/gm4_chairs/guidebook/chairs.json index c68bdc0df5..ddfe821db1 100644 --- a/gm4_chairs/data/gm4_chairs/guidebook/chairs.json +++ b/gm4_chairs/data/gm4_chairs/guidebook/chairs.json @@ -3,8 +3,7 @@ "name": "Chairs", "module_type": "module", "icon": { - "item": "minecraft:saddle", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:saddle" }, "criteria": { "obtain_saddle": { diff --git a/gm4_chairs/translations.csv b/gm4_chairs/translations.csv new file mode 100644 index 0000000000..dd1cc8da39 --- /dev/null +++ b/gm4_chairs/translations.csv @@ -0,0 +1,7 @@ +key,en_us +advancement.gm4.chairs.creation.title,"A Throne, Fit for a King!" +advancement.gm4.chairs.creation.description,Throw a saddle on stairs to make a chair +advancement.gm4.chairs.sit.title,Couch Potato +advancement.gm4.chairs.sit.description,Sit for over an hour! +text.gm4.guidebook.module_desc.chairs,Place a saddle on a stair to have a chair to sit on! +text.gm4.guidebook.chairs.creation,Chairs can be created by throwing a saddle onto a stair block.\n\nBreaking the stair or hitting the saddle relieves the stair of the saddle. diff --git a/gm4_combat_expanded/beet.yaml b/gm4_combat_expanded/beet.yaml index f694c0bb99..36b15687b0 100644 --- a/gm4_combat_expanded/beet.yaml +++ b/gm4_combat_expanded/beet.yaml @@ -32,6 +32,19 @@ meta: - Thanathor Icon Design: - Hozz + model_data: + - template: advancement + broadcast: + - item: clock + reference: gui/advancement/combat_expanded_challenger + - item: iron_chestplate + reference: gui/advancement/combat_expanded_full_set + - item: shield + reference: gui/advancement/combat_expanded_guardian + - item: leather_chestplate + reference: gui/advancement/combat_expanded_identify + - item: clock + reference: gui/advancement/combat_expanded_survive modrinth: project_id: zgxd3poi smithed: diff --git a/gm4_combat_expanded/data/gm4/advancements/combat_expanded_challenger.json b/gm4_combat_expanded/data/gm4/advancements/combat_expanded_challenger.json index 7b459d3e79..82d76ebaec 100644 --- a/gm4_combat_expanded/data/gm4/advancements/combat_expanded_challenger.json +++ b/gm4_combat_expanded/data/gm4/advancements/combat_expanded_challenger.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:clock", - "nbt": "{CustomModelData:3420002,Enchantments:[{}]}" + "nbt": "{CustomModelData:'gui/advancement/combat_expanded_challenger',Enchantments:[{}]}" }, "title": { "translate": "advancement.gm4.combat_expanded.challenger.title", diff --git a/gm4_combat_expanded/data/gm4/advancements/combat_expanded_full_set.json b/gm4_combat_expanded/data/gm4/advancements/combat_expanded_full_set.json index c95f842a65..c6e406150e 100644 --- a/gm4_combat_expanded/data/gm4/advancements/combat_expanded_full_set.json +++ b/gm4_combat_expanded/data/gm4/advancements/combat_expanded_full_set.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:iron_chestplate", - "nbt": "{CustomModelData:3420003}" + "nbt": "{CustomModelData:'gui/advancement/combat_expanded_full_set'}" }, "title": { "translate": "advancement.gm4.combat_expanded.full_set.title", diff --git a/gm4_combat_expanded/data/gm4/advancements/combat_expanded_guardian.json b/gm4_combat_expanded/data/gm4/advancements/combat_expanded_guardian.json index 08030b5d0f..2136fac9f0 100644 --- a/gm4_combat_expanded/data/gm4/advancements/combat_expanded_guardian.json +++ b/gm4_combat_expanded/data/gm4/advancements/combat_expanded_guardian.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:shield", - "nbt": "{CustomModelData:3420003}" + "nbt": "{CustomModelData:'gui/advancement/combat_expanded_guardian'}" }, "title": { "translate": "advancement.gm4.combat_expanded.guardian.title", diff --git a/gm4_combat_expanded/data/gm4/advancements/combat_expanded_identify.json b/gm4_combat_expanded/data/gm4/advancements/combat_expanded_identify.json index dae87d67ea..487ef5e56f 100644 --- a/gm4_combat_expanded/data/gm4/advancements/combat_expanded_identify.json +++ b/gm4_combat_expanded/data/gm4/advancements/combat_expanded_identify.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:leather_chestplate", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/combat_expanded_identify'}" }, "title": { "translate": "advancement.gm4.combat_expanded.identify.title", diff --git a/gm4_combat_expanded/data/gm4/advancements/combat_expanded_survive.json b/gm4_combat_expanded/data/gm4/advancements/combat_expanded_survive.json index ba8cb88963..fc54837ba2 100644 --- a/gm4_combat_expanded/data/gm4/advancements/combat_expanded_survive.json +++ b/gm4_combat_expanded/data/gm4/advancements/combat_expanded_survive.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:clock", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/combat_expanded_survive'}" }, "title": { "translate": "advancement.gm4.combat_expanded.survive.title", diff --git a/gm4_combat_expanded/data/gm4_combat_expanded/guidebook/combat_expanded.json b/gm4_combat_expanded/data/gm4_combat_expanded/guidebook/combat_expanded.json index 98c0f7fd6a..6a82c993ef 100644 --- a/gm4_combat_expanded/data/gm4_combat_expanded/guidebook/combat_expanded.json +++ b/gm4_combat_expanded/data/gm4_combat_expanded/guidebook/combat_expanded.json @@ -3,8 +3,7 @@ "name": "Combat Expanded", "module_type": "module", "icon": { - "item": "minecraft:netherite_sword", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:netherite_sword" }, "criteria": { "kill_hostile": { @@ -207,7 +206,7 @@ "\n", { "translate": "text.gm4.guidebook.combat_expanded.dark_modifier", - "fallback": "Mobs spawned in %1$s areas are slightly stronger.\n\nCreepers have a higher blast radius and mobs don't drop their weapons and armour as often.", + "fallback": "Mobs spawned in %s areas are slightly stronger.\n\nCreepers have a higher blast radius and mobs don't drop their weapons and armour as often.", "with": [ { "translate": "text.gm4.guidebook.combat_expanded.dark", @@ -218,7 +217,7 @@ "contents": [ { "translate": "text.gm4.guidebook.combat_expanded.dark_areas", - "fallback": "Light Level 0, except in %1$s", + "fallback": "Light Level 0, except in %s", "with": [ { "translate": "biome.minecraft.lush_caves" @@ -249,7 +248,7 @@ "\n", { "translate": "text.gm4.guidebook.combat_expanded.burned_modifier", - "fallback": "Mobs spawned in %1$s areas are weaker, but faster.\n\nHusks swarms can be found.\n\nMore mobs carry fire aspect and flame weapons.", + "fallback": "Mobs spawned in %s areas are weaker, but faster.\n\nHusks swarms can be found.\n\nMore mobs carry fire aspect and flame weapons.", "with": [ { "translate": "text.gm4.guidebook.combat_expanded.burned", @@ -309,8 +308,8 @@ [ "\n", { - "translate": "text.gm4.guidebook.combat_expanded.burned_modifier", - "fallback": "Mobs spawned in %1$s are more tougher to kill.\n\nDrowneds are more powerful as well.", + "translate": "text.gm4.guidebook.combat_expanded.deep_modifier", + "fallback": "Mobs spawned in %s are more tougher to kill.\n\nDrowneds are more powerful as well.", "with": [ { "translate": "text.gm4.guidebook.combat_expanded.deep", @@ -359,7 +358,7 @@ "\n", { "translate": "text.gm4.guidebook.combat_expanded.flowering_modifier", - "fallback": "Zombies spawned in %1$s areas have less health, but can respawn when killed.\n\nSlimes are larger and spawn more often.", + "fallback": "Zombies spawned in %s areas have less health, but can respawn when killed.\n\nSlimes are larger and spawn more often.", "with": [ { "translate": "text.gm4.guidebook.combat_expanded.flowering", @@ -408,7 +407,7 @@ "\n", { "translate": "text.gm4.guidebook.combat_expanded.growth_modifier", - "fallback": "Mobs spawned in %1$s areas are weaker, but spawn in groups.\n\nSkeletons carry melee weapons.\n\nMobs can be found wearing projectile protection gear.", + "fallback": "Mobs spawned in %s areas are weaker, but spawn in groups.\n\nSkeletons carry melee weapons.\n\nMobs can be found wearing projectile protection gear.", "with": [ { "translate": "text.gm4.guidebook.combat_expanded.growth", @@ -469,7 +468,7 @@ "\n", { "translate": "text.gm4.guidebook.combat_expanded.mountainous_modifier", - "fallback": "Mobs spawned in %1$s areas are stronger, but more sparse.\n\nMore mobs carry knockback and punch weapons.", + "fallback": "Mobs spawned in %s areas are stronger, but more sparse.\n\nMore mobs carry knockback and punch weapons.", "with": [ { "translate": "text.gm4.guidebook.combat_expanded.mountainous", @@ -549,8 +548,8 @@ [ "\n", { - "translate": "text.gm4.guidebook.combat_expanded.burned_modifier", - "fallback": "Drowneds spawned in %1$s are much more powerful and more frequently carry tridents.", + "translate": "text.gm4.guidebook.combat_expanded.reef_modifier", + "fallback": "Drowneds spawned in %s are much more powerful and more frequently carry tridents.", "with": [ { "translate": "text.gm4.guidebook.combat_expanded.reef", @@ -587,7 +586,7 @@ "\n", { "translate": "text.gm4.guidebook.combat_expanded.snowy_modifier", - "fallback": "Mobs spawned in %1$s areas are slower, but have more health.\n\nMany attacks will apply slowness.", + "fallback": "Mobs spawned in %s areas are slower, but have more health.\n\nMany attacks will apply slowness.", "with": [ { "translate": "text.gm4.guidebook.combat_expanded.snowy", @@ -663,8 +662,8 @@ [ "\n", { - "translate": "text.gm4.guidebook.combat_expanded.toxic_modifier", - "fallback": "Mobs spawned in %1$s areas are weaker, but apply weakness, hunger, and poison.\n\nSpider clusters can be found.", + "translate": "text.gm4.guidebook.combat_expanded.toxic_modifier_2", + "fallback": "Mobs spawned in %s areas are weaker, but apply weakness, hunger, and poison.\n\nSpider clusters can be found.", "with": [ { "translate": "text.gm4.guidebook.combat_expanded.toxic", @@ -726,7 +725,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.fire", - "fallback": "Flaming %1$s", + "fallback": "Flaming %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -741,7 +740,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.giant", - "fallback": "Giant %1$s", + "fallback": "Giant %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -756,7 +755,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.glow", - "fallback": "Spectral %1$s", + "fallback": "Spectral %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -771,7 +770,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.heavy", - "fallback": "Heavy %1$s", + "fallback": "Heavy %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -786,7 +785,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.poison", - "fallback": "Venomous %1$s", + "fallback": "Venomous %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -801,7 +800,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.quick", - "fallback": "Light %1$s", + "fallback": "Light %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -816,7 +815,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.weakness", - "fallback": "Crippling %1$s", + "fallback": "Crippling %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -837,7 +836,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.chaos", - "fallback": "Chaotic %1$s", + "fallback": "Chaotic %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -852,7 +851,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.chime", - "fallback": "Chiming %1$s", + "fallback": "Chiming %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -867,7 +866,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.delay", - "fallback": "Resonating %1$s", + "fallback": "Resonating %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -882,7 +881,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.eat", - "fallback": "Yearning %1$s", + "fallback": "Yearning %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -903,7 +902,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.heal", - "fallback": "Divine %1$s", + "fallback": "Divine %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -918,7 +917,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.wither", - "fallback": "Demonic %1$s", + "fallback": "Demonic %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -939,7 +938,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.husk", - "fallback": "Dashing %1$s", + "fallback": "Dashing %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -961,7 +960,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.link", - "fallback": "Bolstering %1$s", + "fallback": "Bolstering %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -983,7 +982,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.beacon", - "fallback": "Radiant %1$s", + "fallback": "Radiant %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1005,7 +1004,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.canine", - "fallback": "Canine %1$s", + "fallback": "Canine %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1027,7 +1026,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.horse", - "fallback": "Equestrian %1$s", + "fallback": "Equestrian %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1049,7 +1048,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.challenge", - "fallback": "Challengers %1$s", + "fallback": "Challengers %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1077,7 +1076,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.retaliate", - "fallback": "Retaliatory %1$s", + "fallback": "Retaliatory %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1099,7 +1098,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.toxic", - "fallback": "Poisonous %1$s", + "fallback": "Poisonous %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1121,7 +1120,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.stall", - "fallback": "Stalling %1$s", + "fallback": "Stalling %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1143,7 +1142,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.reactive", - "fallback": "Reactive %1$s", + "fallback": "Reactive %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1165,7 +1164,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.vorpal", - "fallback": "Vorpal %1$s", + "fallback": "Vorpal %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1187,7 +1186,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.witch", - "fallback": "Expelling %1$s", + "fallback": "Expelling %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1215,7 +1214,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.vamp", - "fallback": "Vampiric %1$s", + "fallback": "Vampiric %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1237,7 +1236,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.totem", - "fallback": "Totemic %1$s", + "fallback": "Totemic %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1259,7 +1258,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.fear", - "fallback": "Chilling %1$s", + "fallback": "Chilling %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1281,7 +1280,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.consume", - "fallback": "Devouring %1$s", + "fallback": "Devouring %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1309,7 +1308,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.scout", - "fallback": "Scouting %1$s", + "fallback": "Scouting %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1331,7 +1330,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.archer", - "fallback": "Archery %1$s", + "fallback": "Archery %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1353,7 +1352,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.shielded", - "fallback": "Shielded %1$s", + "fallback": "Shielded %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1375,7 +1374,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.sneak", - "fallback": "Sly %1$s", + "fallback": "Sly %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1397,7 +1396,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.overload", - "fallback": "Overwhelming %1$s", + "fallback": "Overwhelming %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1425,7 +1424,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.thorns", - "fallback": "Thorny %1$s", + "fallback": "Thorny %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1447,7 +1446,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.second_wind", - "fallback": "Rejuvenating %1$s", + "fallback": "Rejuvenating %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1469,14 +1468,14 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.poised", - "fallback": "Fluxed %1$s", + "fallback": "Fluxed %s", "with": [""], "hoverEvent": { "action": "show_text", "contents": [ { "translate": "text.gm4.guidebook.combat_expanded.poised_modifier", - "fallback": "- Lower attack damage, but higher armor\n- Has an opposite effect when health is above 50%" + "fallback": "- Higher attack damage, but lower armor\n- Has an opposite effect when health is below 50%" }, "\n", { @@ -1491,7 +1490,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.soothe", - "fallback": "Soothing %1$s", + "fallback": "Soothing %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1519,7 +1518,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.poised", - "fallback": "Fluxed %1$s", + "fallback": "Fluxed %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1541,7 +1540,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.half", - "fallback": "Fractal %1$s", + "fallback": "Fractal %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1563,7 +1562,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.solid", - "fallback": "Solid %1$s", + "fallback": "Solid %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1585,7 +1584,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.immune", - "fallback": "Vigorous %1$s", + "fallback": "Vigorous %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1607,7 +1606,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.guardian", - "fallback": "Custodians %1$s", + "fallback": "Custodians %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1635,7 +1634,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.lunar", - "fallback": "Lunar %1$s", + "fallback": "Lunar %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1657,7 +1656,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.gloom", - "fallback": "Gloomy %1$s", + "fallback": "Gloomy %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1679,7 +1678,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.nocturnal", - "fallback": "Nocturnal %1$s", + "fallback": "Nocturnal %s", "with": [""], "hoverEvent": { "action": "show_text", @@ -1701,7 +1700,7 @@ "\n- ", { "translate": "item.gm4.combat_expanded.name.shadow", - "fallback": "Umbral %1$s", + "fallback": "Umbral %s", "with": [""], "hoverEvent": { "action": "show_text", diff --git a/gm4_combat_expanded/translations.csv b/gm4_combat_expanded/translations.csv new file mode 100644 index 0000000000..d27e7d7bcb --- /dev/null +++ b/gm4_combat_expanded/translations.csv @@ -0,0 +1,195 @@ +key,en_us +advancement.gm4.combat_expanded.challenger.description,When tough is not good enough +advancement.gm4.combat_expanded.challenger.title,Give Me More! +advancement.gm4.combat_expanded.full_set.description,Wear a full set of identified armor and a weapon to go with it +advancement.gm4.combat_expanded.full_set.title,Full Potential +advancement.gm4.combat_expanded.guardian.description,Give your life defending your allies +advancement.gm4.combat_expanded.guardian.title,Sentinel +advancement.gm4.combat_expanded.identify.description,Identify a weapon or piece of armor looted from a mob +advancement.gm4.combat_expanded.identify.title,Hidden Power +advancement.gm4.combat_expanded.survive.description,Stay alive for 10 days in a row +advancement.gm4.combat_expanded.survive.title,True Survivor +attribute.gm4.combat_expanded.aoe,%s AoE +attribute.gm4.combat_expanded.aura,%s Aura +attribute.gm4.combat_expanded.lore.immunity,%s Immunity +attribute.gm4.combat_expanded.toxic,Toxic %s +death.gm4.combat_expanded.delay,%s discovered the danger of resonance +death.gm4.combat_expanded.guarding,%s gave their life for %s +death.gm4.combat_expanded.overload,%s could not contain the power +death.gm4.combat_expanded.wither,%s could not control the power +enchantment.level.14,XIV +enchantment.level.15,XV +enchantment.level.16,XVI +enchantment.level.17,XVII +item.gm4.combat_expanded.lore.archer,Arrow Storm +item.gm4.combat_expanded.lore.beacon,Beacon +item.gm4.combat_expanded.lore.canine,Good Boi +item.gm4.combat_expanded.lore.challenge,Defiance +item.gm4.combat_expanded.lore.chaos_strike,Discordant Strikes: +item.gm4.combat_expanded.lore.chaos,Wild Magic +item.gm4.combat_expanded.lore.chime_strike,Tolling Strikes: +item.gm4.combat_expanded.lore.chime,Stacking Damage +item.gm4.combat_expanded.lore.delay_strike,Reverberating Strikes: +item.gm4.combat_expanded.lore.delay,Echo +item.gm4.combat_expanded.lore.eat_strike,Satiating Strikes: +item.gm4.combat_expanded.lore.equip,When Equipped: +item.gm4.combat_expanded.lore.fear,Flash Freeze +item.gm4.combat_expanded.lore.giant_strike,Stomping Strikes: +item.gm4.combat_expanded.lore.giant,AoE Damage +item.gm4.combat_expanded.lore.glow_strike,Phantom Strikes: +item.gm4.combat_expanded.lore.glow,Haunt +item.gm4.combat_expanded.lore.guard,Bulwark +item.gm4.combat_expanded.lore.half,Take Damage +item.gm4.combat_expanded.lore.heal_strike,Hallowed Strikes: +item.gm4.combat_expanded.lore.high_hp,When High on Health: +item.gm4.combat_expanded.lore.husk,Dart +item.gm4.combat_expanded.lore.killing,When Killing: +item.gm4.combat_expanded.lore.low_hp,When Low on Health: +item.gm4.combat_expanded.lore.lunar,Wax & Wane +item.gm4.combat_expanded.lore.mount,%s (Mount) +item.gm4.combat_expanded.lore.night,When Night-Time: +item.gm4.combat_expanded.lore.poison_strike,Noxious Strikes: +item.gm4.combat_expanded.lore.regen,Regenerate +item.gm4.combat_expanded.lore.safe,When Not Under Attack: +item.gm4.combat_expanded.lore.self,%s (Self) +item.gm4.combat_expanded.lore.shadow,Shadow Veil +item.gm4.combat_expanded.lore.soothe,Heal Pulse +item.gm4.combat_expanded.lore.totem,%s Totem +item.gm4.combat_expanded.lore.unsafe,When Under Attack: +item.gm4.combat_expanded.lore.warp,Warp +item.gm4.combat_expanded.lore.weakness_strike,Debilitating Strikes: +item.gm4.combat_expanded.lore.witch,Discharge +item.gm4.combat_expanded.lore.wither_arrow,Arrow of Wither +item.gm4.combat_expanded.lore.wither_strike,Baneful Strikes: +item.gm4.combat_expanded.name.archer,Archery %s +item.gm4.combat_expanded.name.beacon,Radiant %s +item.gm4.combat_expanded.name.canine,Canine %s +item.gm4.combat_expanded.name.challenge,Challengers %s +item.gm4.combat_expanded.name.chaos,Chaotic %s +item.gm4.combat_expanded.name.chime,Chiming %s +item.gm4.combat_expanded.name.consume,Devouring %s +item.gm4.combat_expanded.name.delay,Resonating %s +item.gm4.combat_expanded.name.eat,Yearning %s +item.gm4.combat_expanded.name.fear,Chilling %s +item.gm4.combat_expanded.name.fire,Flaming %s +item.gm4.combat_expanded.name.giant,Giant %s +item.gm4.combat_expanded.name.gloom,Gloomy %s +item.gm4.combat_expanded.name.glow,Spectral %s +item.gm4.combat_expanded.name.guardian,Custodians %s +item.gm4.combat_expanded.name.half,Fractal %s +item.gm4.combat_expanded.name.heal,Divine %s +item.gm4.combat_expanded.name.heavy,Heavy %s +item.gm4.combat_expanded.name.horse,Equestrian %s +item.gm4.combat_expanded.name.husk,Dashing %s +item.gm4.combat_expanded.name.immune,Vigorous %s +item.gm4.combat_expanded.name.link,Bolstering %s +item.gm4.combat_expanded.name.lunar,Lunar %s +item.gm4.combat_expanded.name.nocturnal,Nocturnal %s +item.gm4.combat_expanded.name.overload,Overwhelming %s +item.gm4.combat_expanded.name.poised,Fluxed %s +item.gm4.combat_expanded.name.poison,Venomous %s +item.gm4.combat_expanded.name.quick,Light %s +item.gm4.combat_expanded.name.reactive,Reactive %s +item.gm4.combat_expanded.name.retaliate,Retaliatory %s +item.gm4.combat_expanded.name.satiated,Satiated %s +item.gm4.combat_expanded.name.scout,Scouting %s +item.gm4.combat_expanded.name.second_wind,Rejuvenating %s +item.gm4.combat_expanded.name.shadow,Umbral %s +item.gm4.combat_expanded.name.shielded,Shielded %s +item.gm4.combat_expanded.name.sneak,Sly %s +item.gm4.combat_expanded.name.solid,Solid %s +item.gm4.combat_expanded.name.soothe,Soothing %s +item.gm4.combat_expanded.name.stall,Stalling %s +item.gm4.combat_expanded.name.thorns,Thorny %s +item.gm4.combat_expanded.name.totem,Totemic %s +item.gm4.combat_expanded.name.toxic,Poisonous %s +item.gm4.combat_expanded.name.unidentified,Unidentified %s +item.gm4.combat_expanded.name.vamp,Vampiric %s +item.gm4.combat_expanded.name.vorpal,Vorpal %s +item.gm4.combat_expanded.name.weakness,Crippling %s +item.gm4.combat_expanded.name.witch,Expelling %s +item.gm4.combat_expanded.name.wither,Demonic %s +text.gm4.guidebook.module_desc.combat_expanded,Use special armor and weapon modifiers to defend against mobs that grow ever stronger. +text.gm4.guidebook.combat_expanded.description,"Mobs get stronger over time, based on each adventurer.\n\nMobs will spawn with higher health, damage, movement speed and with better armour and weapons." +text.gm4.guidebook.combat_expanded.section.biome_modifiers,Area Modifiers +text.gm4.guidebook.combat_expanded.biome_modifiers,Mobs spawned in different areas have special modifiers.\n\nSome areas and biomes spawn different mobs than usual. +text.gm4.guidebook.combat_expanded.dark_areas,"Light Level 0, except in %s" +text.gm4.guidebook.combat_expanded.dark,dark +text.gm4.guidebook.combat_expanded.dark_modifier,Mobs spawned in %s areas are slightly stronger.\n\nCreepers have a higher blast radius and mobs don't drop their weapons and armour as often. +text.gm4.guidebook.combat_expanded.burned,burned +text.gm4.guidebook.combat_expanded.burned_modifier,"Mobs spawned in %s areas are weaker, but faster.\n\nHusks swarms can be found.\n\nMore mobs carry fire aspect and flame weapons." +text.gm4.guidebook.combat_expanded.deep,deep oceans +text.gm4.guidebook.combat_expanded.flowering,flowering +text.gm4.guidebook.combat_expanded.flowering_modifier,"Zombies spawned in %s areas have less health, but can respawn when killed.\n\nSlimes are larger and spawn more often." +text.gm4.guidebook.combat_expanded.growth,growth +text.gm4.guidebook.combat_expanded.growth_modifier,"Mobs spawned in %s areas are weaker, but spawn in groups.\n\nSkeletons carry melee weapons.\n\nMobs can be found wearing projectile protection gear." +text.gm4.guidebook.combat_expanded.mountainous,mountainous +text.gm4.guidebook.combat_expanded.mountainous_modifier,"Mobs spawned in %s areas are stronger, but more sparse.\n\nMore mobs carry knockback and punch weapons." +text.gm4.guidebook.combat_expanded.reef,warm oceans +text.gm4.guidebook.combat_expanded.snowy,snowy +text.gm4.guidebook.combat_expanded.snowy_modifier,"Mobs spawned in %s areas are slower, but have more health.\n\nMany attacks will apply slowness." +text.gm4.guidebook.combat_expanded.toxic,toxic +text.gm4.guidebook.combat_expanded.toxic_modifier,"- Applies poison to the attacker" +text.gm4.guidebook.combat_expanded.section.weapons_and_armor,Special Gear +text.gm4.guidebook.combat_expanded.drops,"Mobs can spawn with special gear.\n\nWeapons have a 20% drop chance and armour has a 8.5% drop chance.\n\nWhen dropped, the gear will need to be identified." +text.gm4.guidebook.combat_expanded.common_weapons,The following modifiers can be commonly found on weapons: +text.gm4.guidebook.combat_expanded.fire_modifier,"- Less attack damage, but has Fire Aspect III-V" +text.gm4.guidebook.combat_expanded.giant_modifier,- Deals damage to everything within 4 blocks +text.gm4.guidebook.combat_expanded.glow_modifier,- Makes attacked target glow and wither for 15 seconds +text.gm4.guidebook.combat_expanded.heavy_modifier,"- Stronger attack damage, but has slower attack speed\n- Knockback II-III" +text.gm4.guidebook.combat_expanded.poison_modifier,- Poisons attacked target +text.gm4.guidebook.combat_expanded.quick_modifier,"- Less attack damage, but quicker attack speed" +text.gm4.guidebook.combat_expanded.weakness_modifier,- Temporarily slows and weakens attacked target +text.gm4.guidebook.combat_expanded.rare_weapons,The following modifiers can be rarely found on weapons: +text.gm4.guidebook.combat_expanded.chaos_modifier,- Randomly enchanted every hit +text.gm4.guidebook.combat_expanded.chime_modifier,- Attacking the same mob deals double damage each hit +text.gm4.guidebook.combat_expanded.delay_modifier,"- Shortly after hitting a target, they will be dealt heavy damage, attacking through armor and effects" +text.gm4.guidebook.combat_expanded.eat_modifier,- Applies hunger to the self when a mob is hit +text.gm4.guidebook.combat_expanded.epic_weapons,The following modifiers can be very rarely found on weapons: +text.gm4.guidebook.combat_expanded.heal_modifier,- Applies healing effect to attacked target +text.gm4.guidebook.combat_expanded.wither_modifier,"- Stronger attack damage, but applies wither to self when a mob is hit" +text.gm4.guidebook.combat_expanded.equipped_armor,The following armor modifiers are activated while equipped: +text.gm4.guidebook.combat_expanded.husk_modifier,- Applies increasing speed and hunger while sprinting\n- Lower movement speed while not sprinting +text.gm4.guidebook.combat_expanded.rarity_common,Common +text.gm4.guidebook.combat_expanded.link_modifier,- Lower attack damage\n- Applies strength to nearby allies and wolves +text.gm4.guidebook.combat_expanded.beacon_modifier,- Constant light around the wearer\n- Crouching will apply glowing and a light pulse +text.gm4.guidebook.combat_expanded.canine_modifier,- Lower attack damage\n- Spawns an invulnerable dog that deals 4 damage\n- Commanding to sit will cause it to lose agro\n- Feeding it will grant strength +text.gm4.guidebook.combat_expanded.rarity_rare,Rare +text.gm4.guidebook.combat_expanded.horse_modifier,- Mounts receive resistance and speed +text.gm4.guidebook.combat_expanded.challenge_modifier,- Causes the area to be much more difficult in combat\n- Increases difficulty for mob spawns +text.gm4.guidebook.combat_expanded.rarity_epic,Epic +text.gm4.guidebook.combat_expanded.damage_taken_armor,The following armor modifiers are activated when damage is taken: +text.gm4.guidebook.combat_expanded.retaliate_modifier,- Temporarily gain stronger attack damage and quicker attack speed +text.gm4.guidebook.combat_expanded.stall_modifier,- Applies resistance to all nearby entities when attacked by a mob +text.gm4.guidebook.combat_expanded.reactive_modifier,- Gain absorption +text.gm4.guidebook.combat_expanded.vorpal_modifier,- Teleport to a random location within 16 blocks\n- Full knockback resistance when equipped +text.gm4.guidebook.combat_expanded.witch_modifier,- Clear all effects and stores them in a lingering potion dropped at the wearer's feet +text.gm4.guidebook.combat_expanded.killing_armor,The following armor modifiers are activated when upon killing: +text.gm4.guidebook.combat_expanded.vamp_modifier,- Regenerate half a heart of health +text.gm4.guidebook.combat_expanded.totem_modifier,"- Summons a totem that gives allies regeneration, resistance, speed, or strength\n- Totems can stack if mobs are kill within its range of 12 blocks" +text.gm4.guidebook.combat_expanded.fear_modifier,- Freezes nearby mobs and can deal freezing damage\n- Lower attack speed when equipped +text.gm4.guidebook.combat_expanded.consume_modifier,- Permanately increases attack damage\n- Converts to Satiated after fully charged +text.gm4.guidebook.combat_expanded.safe_armor,The following armor modifiers are activated while not in combat: +text.gm4.guidebook.combat_expanded.scout_modifier,- Quicker movement speed\n- Lower attack damage when equipped +text.gm4.guidebook.combat_expanded.archer_modifier,- Multiple arrows will be shot from a single arrow shot\n- Lower attack damage when equipped +text.gm4.guidebook.combat_expanded.shielded_modifier,- Gain absorption +text.gm4.guidebook.combat_expanded.sneak_modifier,- Gains invisibility and jump boost +text.gm4.guidebook.combat_expanded.overload_modifier,"- Gain wither\n- Higher attack damage, attack speed, and movement speed while equipped" +text.gm4.guidebook.combat_expanded.low_health_armor,The following armor modifiers are activated while below half health: +text.gm4.guidebook.combat_expanded.thorns_modifier,- Thorns enchantment is greatly increased\n- Only works if the armor is already enchanted with thorns +text.gm4.guidebook.combat_expanded.second_wind_modifier,- Grants slow regeneration +text.gm4.guidebook.combat_expanded.poised_modifier,"- Higher attack damage, but lower armor\n- Has an opposite effect when health is below 50%" +text.gm4.guidebook.combat_expanded.soothe_modifier,- AOE of healing effect and regeneration\n- Can only happen once per day +text.gm4.guidebook.combat_expanded.high_health_armor,The following armor modifiers are activated while above half health: +text.gm4.guidebook.combat_expanded.half_modifier,- Damage is dealt until wearer is at half health\n- Resistance III when equipped +text.gm4.guidebook.combat_expanded.solid_modifier,- Higher armor and full knockback resistance\n- Slower movement speed when equipped +text.gm4.guidebook.combat_expanded.immune_modifier,"- Immune to mining fatigue, poison, weakness, hunger, blindness, nausea, and wither" +text.gm4.guidebook.combat_expanded.guardian_modifier,"- When nearby allies take damage, 60% will be dealt into the wearer instead of the ally" +text.gm4.guidebook.combat_expanded.night_armor,The following armor modifiers are activated during night: +text.gm4.guidebook.combat_expanded.lunar_modifier,"- Higher attack damage, attack speed, movement speed, and armor\n- Based on moon phase, with full moon granting highest buffs" +text.gm4.guidebook.combat_expanded.gloom_modifier,"- AOE of slowness, but wearer is unaffected" +text.gm4.guidebook.combat_expanded.nocturnal_modifier,"- Higher attack damage, attack speed, and movement speed" +text.gm4.guidebook.combat_expanded.shadow_modifier,- Resistance while wearer is not hungry\n- Taking damage applies high hunger +text.gm4.guidebook.combat_expanded.deep_modifier,Mobs spawned in %s are more tougher to kill.\n\nDrowneds are more powerful as well. +text.gm4.guidebook.combat_expanded.reef_modifier,Drowneds spawned in %s are much more powerful and more frequently carry tridents. +text.gm4.guidebook.combat_expanded.toxic_modifier_2,"Mobs spawned in %s areas are weaker, but apply weakness, hunger, and poison.\n\nSpider clusters can be found." diff --git a/gm4_cooler_caves/data/gm4_cooler_caves/guidebook/cooler_caves.json b/gm4_cooler_caves/data/gm4_cooler_caves/guidebook/cooler_caves.json index b29decb52e..2e4debaadb 100644 --- a/gm4_cooler_caves/data/gm4_cooler_caves/guidebook/cooler_caves.json +++ b/gm4_cooler_caves/data/gm4_cooler_caves/guidebook/cooler_caves.json @@ -3,8 +3,7 @@ "name": "Cooler Caves", "module_type": "module", "icon": { - "item": "minecraft:sandstone", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:sandstone" }, "criteria": { "in_cave_air": { diff --git a/gm4_cooler_caves/translations.csv b/gm4_cooler_caves/translations.csv new file mode 100644 index 0000000000..40f733744c --- /dev/null +++ b/gm4_cooler_caves/translations.csv @@ -0,0 +1,5 @@ +key,en_us +text.gm4.guidebook.module_desc.cooler_caves,A custom terrain expansion pack that makes biome specific caves and mineshafts +text.gm4.guidebook.cooler_caves.description,The world has modified block compositions.\n\nSome biomes have different blocks compared to normal worlds. +text.gm4.guidebook.cooler_caves.desert_and_snow,"In the desert, sandstone and gravel generate instead of stone and gravel.\n\nIn snowy biomes, snow, ice, and white concrete powder can be found in caves." +text.gm4.guidebook.cooler_caves.badlands,"Terracotta layers extend throughout the entire underground in badland biomes. Gravel cannot be found, but red sand patches takes their place." diff --git a/gm4_cozy_campfires/data/gm4_cozy_campfires/guidebook/cozy_campfires.json b/gm4_cozy_campfires/data/gm4_cozy_campfires/guidebook/cozy_campfires.json index f0112c6a40..40a150c375 100644 --- a/gm4_cozy_campfires/data/gm4_cozy_campfires/guidebook/cozy_campfires.json +++ b/gm4_cozy_campfires/data/gm4_cozy_campfires/guidebook/cozy_campfires.json @@ -3,8 +3,7 @@ "name": "Cozy Campfires", "module_type": "module", "icon": { - "item": "minecraft:campfire", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:campfire" }, "criteria": { "place_campfire": { diff --git a/gm4_cozy_campfires/translations.csv b/gm4_cozy_campfires/translations.csv new file mode 100644 index 0000000000..2676f2cf65 --- /dev/null +++ b/gm4_cozy_campfires/translations.csv @@ -0,0 +1,3 @@ +key,en_us +text.gm4.guidebook.module_desc.cozy_campfires,Allows Campfires to grant you up to 4 extra hearts that last for more than half of a Minecraft day. Perfect for those scary first nights in a Minecraft world. +text.gm4.guidebook.cozy_campfires.description,Standing near a campfire temporarily gives four hearts of absorption.\n\nThese extra hearts last 12 minutes once one leaves the campfire area. diff --git a/gm4_crossbow_cartridges/beet.yaml b/gm4_crossbow_cartridges/beet.yaml index 518e61fbfb..5c3504a20f 100644 --- a/gm4_crossbow_cartridges/beet.yaml +++ b/gm4_crossbow_cartridges/beet.yaml @@ -22,6 +22,13 @@ meta: - Nik3141 Icon Design: - Sparks + model_data: + - item: tropical_fish_bucket + reference: gui/advancement/crossbow_cartridges_bucket + template: advancement + - item: tripwire_hook + reference: gui/advancement/crossbow_cartridges_string + template: advancement modrinth: project_id: E7M57BNU smithed: diff --git a/gm4_crossbow_cartridges/data/gm4/advancements/crossbow_cartridges_bucket.json b/gm4_crossbow_cartridges/data/gm4/advancements/crossbow_cartridges_bucket.json index 9ff7776688..367862ba1f 100644 --- a/gm4_crossbow_cartridges/data/gm4/advancements/crossbow_cartridges_bucket.json +++ b/gm4_crossbow_cartridges/data/gm4/advancements/crossbow_cartridges_bucket.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "tropical_fish_bucket", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/crossbow_cartridges_bucket'}" }, "title": { "translate": "advancement.gm4.crossbow_cartridges_fish.title", diff --git a/gm4_crossbow_cartridges/data/gm4/advancements/crossbow_cartridges_string.json b/gm4_crossbow_cartridges/data/gm4/advancements/crossbow_cartridges_string.json index fe67a8ee55..3e2efd4f73 100644 --- a/gm4_crossbow_cartridges/data/gm4/advancements/crossbow_cartridges_string.json +++ b/gm4_crossbow_cartridges/data/gm4/advancements/crossbow_cartridges_string.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:tripwire_hook", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/crossbow_cartridges_string'}" }, "title": { "translate": "advancement.gm4.crossbow_cartridges_string.title", diff --git a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/guidebook/crossbow_cartridges.json b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/guidebook/crossbow_cartridges.json index 9e47e73296..06c3683ec4 100644 --- a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/guidebook/crossbow_cartridges.json +++ b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/guidebook/crossbow_cartridges.json @@ -3,8 +3,7 @@ "name": "Crossbow Cartridges", "module_type": "module", "icon": { - "item": "minecraft:crossbow", - "nbt": "{CustomModelData:3420005}" + "item": "minecraft:crossbow" }, "criteria": { "shot_crossbow": { diff --git a/gm4_crossbow_cartridges/translations.csv b/gm4_crossbow_cartridges/translations.csv new file mode 100644 index 0000000000..27eb9c09a4 --- /dev/null +++ b/gm4_crossbow_cartridges/translations.csv @@ -0,0 +1,13 @@ +key,en_us +advancement.gm4.crossbow_cartridges_fish.title,Sealife Slingshot +advancement.gm4.crossbow_cartridges_fish.description,Launch an aquatic animal using a crossbow +advancement.gm4.crossbow_cartridges_string.title,Almost a Grappling Hook +advancement.gm4.crossbow_cartridges_string.description,Create a 40-block long tripwire circuit using a crossbow +text.gm4.guidebook.module_desc.crossbow_cartridges,"Shoot more than just arrows! Crossbow Cartridges allows your crossbow to fire a variety of projectiles; Shoot Pufferfish, Tripwires, Torches, and many more. Synergizes nicely with the Ziprails Module for easy Ziprail construction." +text.gm4.guidebook.crossbow_cartridges.description,Shooting a crossbow with certain items in the offhand will launch that item instead of the arrow. +text.gm4.guidebook.crossbow_cartridges.ammo,"When held in the offhand, these items can be shot from crossbows:" +text.gm4.guidebook.crossbow_cartridges.torch,"Torch is placed on the block the arrow hits.\nIf the torch cannot be placed here, it is dropped." +text.gm4.guidebook.crossbow_cartridges.string,Stand in a tripwire hook and look in one of the\ncardinal directions to create a tripwire line.\n\nA tripwire hook can be placed automatically at the end. +text.gm4.guidebook.crossbow_cartridges.tripwire,Tripwire +text.gm4.guidebook.crossbow_cartridges.bucket.1,Mob in a Bucket +text.gm4.guidebook.crossbow_cartridges.bucket.2,The water bucket will be kept diff --git a/gm4_dangerous_dungeons/data/gm4_dangerous_dungeons/guidebook/dangerous_dungeons.json b/gm4_dangerous_dungeons/data/gm4_dangerous_dungeons/guidebook/dangerous_dungeons.json index 6c72b66b9f..af06c937fa 100644 --- a/gm4_dangerous_dungeons/data/gm4_dangerous_dungeons/guidebook/dangerous_dungeons.json +++ b/gm4_dangerous_dungeons/data/gm4_dangerous_dungeons/guidebook/dangerous_dungeons.json @@ -3,8 +3,7 @@ "name": "Dangerous Dungeons", "module_type": "module", "icon": { - "item": "minecraft:spawner", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:spawner" }, "criteria": { "enter_badlands_dungeon": { diff --git a/gm4_dangerous_dungeons/translations.csv b/gm4_dangerous_dungeons/translations.csv new file mode 100644 index 0000000000..afc3592ff7 --- /dev/null +++ b/gm4_dangerous_dungeons/translations.csv @@ -0,0 +1,4 @@ +key,en_us +text.gm4.guidebook.module_desc.dangerous_dungeons,A custom terrain expansion pack that adds new types of dungeons underground. +text.gm4.guidebook.dangerous_dungeons.description,Extra dungeons can be found in cave systems.\n\nThese dungeons contain rare loot and special spawners. +text.gm4.guidebook.dangerous_dungeons.locations,"Stone and deepslate dungeons can be found in most biomes.\n\nThe Badlands, Desert, Lush, Ocean, and Snowy biomes have special dungeons that match the terrain." diff --git a/gm4_desire_lines/beet.yaml b/gm4_desire_lines/beet.yaml index 27e951bdc5..1189299b11 100644 --- a/gm4_desire_lines/beet.yaml +++ b/gm4_desire_lines/beet.yaml @@ -5,13 +5,30 @@ version: 1.3.X data_pack: load: . +resource_pack: + load: ../gm4_metallurgy + pipeline: + - gm4_metallurgy.shamir_model_template - gm4.plugins.extend.module meta: gm4: versioning: schedule_loops: [tick] + model_data: + - item: boots + reference: shamir/celaro + template: + name: shamir + metal: aluminium + textures_path: gm4_metallurgy:item/shamir/aluminium + - item: coarse_dirt + reference: gui/advancement/desire_lines_10000 + template: advancement + - item: oak_planks + reference: gui/advancement/desire_lines_8000 + template: advancement website: description: Creates natural looking trodden paths in high traffic areas, but be careful not to ruin your neighbour's lawn! recommended: diff --git a/gm4_desire_lines/data/gm4/advancements/desire_lines_10000.json b/gm4_desire_lines/data/gm4/advancements/desire_lines_10000.json index 031b94644c..f4ce78f380 100644 --- a/gm4_desire_lines/data/gm4/advancements/desire_lines_10000.json +++ b/gm4_desire_lines/data/gm4/advancements/desire_lines_10000.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "coarse_dirt", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/desire_lines_10000'}" }, "title": { "translate": "advancement.gm4.desire_lines.walk_10000.title", diff --git a/gm4_desire_lines/data/gm4/advancements/desire_lines_8000.json b/gm4_desire_lines/data/gm4/advancements/desire_lines_8000.json index f34717a06e..7379dc3e8b 100644 --- a/gm4_desire_lines/data/gm4/advancements/desire_lines_8000.json +++ b/gm4_desire_lines/data/gm4/advancements/desire_lines_8000.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "oak_planks", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/desire_lines_8000'}" }, "title": { "translate": "advancement.gm4.desire_lines.walk_8000.title", diff --git a/gm4_desire_lines/data/gm4_celaro_shamir/guidebook/celaro_shamir.json b/gm4_desire_lines/data/gm4_celaro_shamir/guidebook/celaro_shamir.json index 5edffeadfa..5b84152e90 100644 --- a/gm4_desire_lines/data/gm4_celaro_shamir/guidebook/celaro_shamir.json +++ b/gm4_desire_lines/data/gm4_celaro_shamir/guidebook/celaro_shamir.json @@ -5,8 +5,7 @@ "load_check": "desire_lines", "base_module": "metallurgy", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420118}" + "item": "minecraft:anvil" }, "criteria": { "obtain_celaro_shamir": { diff --git a/gm4_desire_lines/data/gm4_celaro_shamir/loot_tables/band.json b/gm4_desire_lines/data/gm4_celaro_shamir/loot_tables/band.json index cc558310e1..cde2d4ce58 100644 --- a/gm4_desire_lines/data/gm4_celaro_shamir/loot_tables/band.json +++ b/gm4_desire_lines/data/gm4_celaro_shamir/loot_tables/band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420118,SkullOwner:{Name:\"[Drop to Fix Item] gm4_celaro_shamir:band/v1\"},gm4_metallurgy:{stored_shamir:\"celaro\"}}" + "tag": "{CustomModelData:'shamir/celaro',SkullOwner:{Name:\"[Drop to Fix Item] gm4_celaro_shamir:band/v1\"},gm4_metallurgy:{stored_shamir:\"celaro\"}}" }, { "function": "minecraft:set_lore", diff --git a/gm4_desire_lines/data/gm4_desire_lines/functions/init.mcfunction b/gm4_desire_lines/data/gm4_desire_lines/functions/init.mcfunction index 5fdb2a8b2d..23eff38e3a 100644 --- a/gm4_desire_lines/data/gm4_desire_lines/functions/init.mcfunction +++ b/gm4_desire_lines/data/gm4_desire_lines/functions/init.mcfunction @@ -10,7 +10,7 @@ scoreboard players set desire_lines gm4_modules 1 data remove storage gm4_player_heads:register heads[{id:"gm4_celaro_shamir:band/v0"}] # register shamir with lib_player_heads -execute unless data storage gm4_player_heads:register heads[{id:"gm4_celaro_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_celaro_shamir:band/v1",name:"[Drop to Fix Item] gm4_celaro_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"celaro",metal:{type:"aluminium",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/aluminium",CustomModelData:3420118,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#F47989","translate":"item.gm4.metallurgy.band","fallback":"Aluminium Band","with":[{"translate":"item.gm4.metallurgy.aluminium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.celaro","fallback":"Celaro"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_celaro_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_celaro_shamir:band/v1",name:"[Drop to Fix Item] gm4_celaro_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"celaro",metal:{type:"aluminium",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/aluminium",CustomModelData:"shamir/celaro",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#F47989","translate":"item.gm4.metallurgy.band","fallback":"Aluminium Band","with":[{"translate":"item.gm4.metallurgy.aluminium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.celaro","fallback":"Celaro"}']}}} schedule function gm4_desire_lines:tick 1t diff --git a/gm4_desire_lines/data/gm4_desire_lines/guidebook/desire_lines.json b/gm4_desire_lines/data/gm4_desire_lines/guidebook/desire_lines.json index 0446e3e1f2..04ebc91a3b 100644 --- a/gm4_desire_lines/data/gm4_desire_lines/guidebook/desire_lines.json +++ b/gm4_desire_lines/data/gm4_desire_lines/guidebook/desire_lines.json @@ -3,8 +3,7 @@ "name": "Desire Lines", "module_type": "module", "icon": { - "item": "minecraft:coarse_dirt", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:coarse_dirt" }, "criteria": { "eroded_land": { diff --git a/gm4_desire_lines/translations.csv b/gm4_desire_lines/translations.csv new file mode 100644 index 0000000000..4f987ba5d3 --- /dev/null +++ b/gm4_desire_lines/translations.csv @@ -0,0 +1,16 @@ +key,en_us +item.gm4.shamir.celaro,Celaro +advancement.gm4.desire_lines.walk_8000.title,And I Would Walk 500 Chunks... +advancement.gm4.desire_lines.walk_8000.description,Ruin 8000 blocks to coarse dirt; you'll find those oak planks +advancement.gm4.desire_lines.walk_10000.title,That's a Lot of Damage +advancement.gm4.desire_lines.walk_10000.description,Ruin 10000 blocks to coarse dirt; how about a little more? +text.gm4.guidebook.module_desc.celaro_shamir,"Creates natural looking trodden paths in high traffic areas, but be careful not to ruin your neighbour's lawn!" +text.gm4.guidebook.celaro_shamir.description,Celaro negates desire lines and causes invisibility when sneaking in shrubbery. +text.gm4.guidebook.celaro_shamir.usage,The Celaro Shamir is found on Aluminium Bands. It can be placed onto boots.\n\nDesire Lines will not activate while wearing these boots. +text.gm4.guidebook.celaro_shamir.invisibility,"Sneaking in double-tall shrubbery (e.g. Tall Grass, Large Fern, Peony) with celaro will grant invisibility." +text.gm4.guidebook.module_desc.desire_lines,"Creates natural looking trodden paths in high traffic areas, but be careful not to ruin your neighbour's lawn!" +text.gm4.guidebook.desire_lines.description,Walking or sprinting over grass and dirt will trample blocks.\n\nGrass blocks will trample into dirt and dirt into coarse dirt. +text.gm4.guidebook.desire_lines.effects,"Foliage such as flowers, mushrooms, grass, and snow layers can also be destroyed via desire lines." +text.gm4.guidebook.desire_lines.effects_and_boots_of_ostara,"Foliage such as flowers, mushrooms, grass, and snow layers can also be destroyed via desire lines.\n\nThe Boots of Ostara can prevent desire lines." +text.gm4.guidebook.desire_lines.effects_and_celaro,"Foliage such as flowers, mushrooms, grass, and snow layers can also be destroyed via desire lines.\n\nBoots with the Celaro Shamir can prevent desire lines" +text.gm4.guidebook.desire_lines.effects_and_boots_of_ostara_and_celaro,"Foliage such as flowers, mushrooms, grass, and snow layers can also be destroyed via desire lines.\n\nBoots with the Celaro Shamir, or normal Boots of Ostara can prevent desire lines." diff --git a/gm4_disassemblers/assets/gm4_disassemblers/textures/block/disassembler_bottom.png b/gm4_disassemblers/assets/gm4_disassemblers/textures/block/disassembler_bottom.png new file mode 100644 index 0000000000..404316c0c7 Binary files /dev/null and b/gm4_disassemblers/assets/gm4_disassemblers/textures/block/disassembler_bottom.png differ diff --git a/gm4_disassemblers/assets/gm4_disassemblers/textures/block/disassembler_bottom_out.png b/gm4_disassemblers/assets/gm4_disassemblers/textures/block/disassembler_bottom_out.png new file mode 100644 index 0000000000..18f07e016a Binary files /dev/null and b/gm4_disassemblers/assets/gm4_disassemblers/textures/block/disassembler_bottom_out.png differ diff --git a/gm4_disassemblers/assets/gm4_disassemblers/textures/block/disassembler_front.png b/gm4_disassemblers/assets/gm4_disassemblers/textures/block/disassembler_front.png new file mode 100644 index 0000000000..c345856da0 Binary files /dev/null and b/gm4_disassemblers/assets/gm4_disassemblers/textures/block/disassembler_front.png differ diff --git a/gm4_disassemblers/assets/gm4_disassemblers/textures/block/disassembler_side.png b/gm4_disassemblers/assets/gm4_disassemblers/textures/block/disassembler_side.png new file mode 100644 index 0000000000..80b0587414 Binary files /dev/null and b/gm4_disassemblers/assets/gm4_disassemblers/textures/block/disassembler_side.png differ diff --git a/gm4_disassemblers/assets/gm4_disassemblers/textures/block/disassembler_side_front.png b/gm4_disassemblers/assets/gm4_disassemblers/textures/block/disassembler_side_front.png new file mode 100644 index 0000000000..f4252918ef Binary files /dev/null and b/gm4_disassemblers/assets/gm4_disassemblers/textures/block/disassembler_side_front.png differ diff --git a/gm4_disassemblers/assets/gm4_disassemblers/textures/block/disassembler_top.png b/gm4_disassemblers/assets/gm4_disassemblers/textures/block/disassembler_top.png new file mode 100644 index 0000000000..ff6fe8d75f Binary files /dev/null and b/gm4_disassemblers/assets/gm4_disassemblers/textures/block/disassembler_top.png differ diff --git a/gm4_disassemblers/assets/gm4_disassemblers/textures/block/disassembler_top_out.png b/gm4_disassemblers/assets/gm4_disassemblers/textures/block/disassembler_top_out.png new file mode 100644 index 0000000000..c3f8148342 Binary files /dev/null and b/gm4_disassemblers/assets/gm4_disassemblers/textures/block/disassembler_top_out.png differ diff --git a/gm4_disassemblers/assets/gm4_disassemblers/textures/gui/container/disassembler.png b/gm4_disassemblers/assets/gm4_disassemblers/textures/gui/container/disassembler.png new file mode 100644 index 0000000000..7cbca80d47 Binary files /dev/null and b/gm4_disassemblers/assets/gm4_disassemblers/textures/gui/container/disassembler.png differ diff --git a/gm4_disassemblers/assets/translations.csv b/gm4_disassemblers/assets/translations.csv new file mode 100644 index 0000000000..0035b4fd16 --- /dev/null +++ b/gm4_disassemblers/assets/translations.csv @@ -0,0 +1,9 @@ +key,en_us +block.gm4.disassembler,Disassembler +container.gm4.disassembler,Disassembler +advancement.gm4.disassemblers.title,Clever Decrafting +advancement.gm4.disassemblers.description,Craft a Disassembler +text.gm4.guidebook.module_desc.disassemblers,Break apart gold and iron tools and weapons for materials. Attach this to a mob farm to finally make use of those extra armour sets! +text.gm4.guidebook.disassmeblers.description,"Disassmeblers can be crafted in Custom Crafters.\n\nDisassemblers can take apart metal armour, tools, and weapons and return ingots based on the item's durability." +text.gm4.guidebook.disassemblers.crafting,A Disassembler can be crafted in a Custom Crafter: +text.gm4.guidebook.disassemblers.usage,Items placed inside a disassembler will be broken into its base ingots.\n\nThe return is based on the percent durability left on the item. diff --git a/gm4_disassemblers/beet.yaml b/gm4_disassemblers/beet.yaml index 626b299ed0..747ea6585c 100644 --- a/gm4_disassemblers/beet.yaml +++ b/gm4_disassemblers/beet.yaml @@ -5,6 +5,9 @@ version: 2.2.X data_pack: load: . +resource_pack: + load: . + pipeline: - gm4_disassemblers.generate_disassembly - gm4.plugins.extend.module @@ -18,6 +21,40 @@ meta: lib_custom_crafters: 3.0.0 lib_machines: 1.1.0 schedule_loops: [main] + model_data: + - item: player_head + reference: item/disassembler + model: block/disassembler + - item: tnt + template: legacy_machine_block + broadcast: + - reference: block/disassembler + textures: + bottom: block/disassembler_bottom + top: block/disassembler_top_out + front: block/disassembler_side + side: block/disassembler_side + - reference: block/disassembler_side + textures: + bottom: block/disassembler_bottom + top: block/disassembler_top + front: block/disassembler_side_front + side: block/disassembler_side + - reference: block/disassembler_down + textures: + bottom: block/disassembler_bottom_out + top: block/disassembler_top + front: block/disassembler_side + side: block/disassembler_side + - item: tnt + reference: gui/advancement/disassemblers + template: + name: advancement + forward: block/disassembler + gui_fonts: + - translation: gui.gm4.disassembler + container: dropper + texture: gui/container/disassembler website: description: Break apart gold and iron tools and weapons for materials. Attach this to a mob farm to finally make use of those extra armour sets! recommended: @@ -45,6 +82,6 @@ meta: - Federick90 - BluePsychoRanger Textures by: - - kyrkis + - Kyrius Icon Design: - Hozz diff --git a/gm4_disassemblers/data/gm4/advancements/disassemblers.json b/gm4_disassemblers/data/gm4/advancements/disassemblers.json index 860750853c..8f66cca286 100644 --- a/gm4_disassemblers/data/gm4/advancements/disassemblers.json +++ b/gm4_disassemblers/data/gm4/advancements/disassemblers.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "tnt", - "nbt": "{CustomModelData:3420002}" + "nbt": "{CustomModelData:'gui/advancement/disassemblers'}" }, "title": { "translate": "advancement.gm4.disassemblers.title", diff --git a/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/down.mcfunction b/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/down.mcfunction index dd2f66a029..11fcdcd663 100644 --- a/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/down.mcfunction +++ b/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/down.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=down]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.disassembler","fallback":"Disassembler"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:offscreen"},{"translate":"gui.gm4.disassembler","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_disassembler_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_disassembler_stand"',ArmorItems:[{},{},{},{id:"minecraft:tnt",Count:1b,tag:{CustomModelData:3420006}}],Rotation:[180.0f,0.0f]} +summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_disassembler_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_disassembler_stand"',ArmorItems:[{},{},{},{id:"minecraft:tnt",Count:1b,tag:{CustomModelData:"block/disassembler_down"}}],Rotation:[180.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_disassembler","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_disassembler"',Rotation:[180.0f,0.0f]} diff --git a/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/east.mcfunction b/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/east.mcfunction index 145bc0fd31..33e6dfd5cd 100644 --- a/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/east.mcfunction +++ b/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/east.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=east]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.disassembler","fallback":"Disassembler"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:offscreen"},{"translate":"gui.gm4.disassembler","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_disassembler_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_disassembler_stand"',ArmorItems:[{},{},{},{id:"minecraft:tnt",Count:1b,tag:{CustomModelData:3420005}}],Rotation:[-90.0f,0.0f]} +summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_disassembler_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_disassembler_stand"',ArmorItems:[{},{},{},{id:"minecraft:tnt",Count:1b,tag:{CustomModelData:"block/disassembler_side"}}],Rotation:[-90.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_disassembler","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_disassembler"',Rotation:[-90.0f,0.0f]} diff --git a/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/north.mcfunction b/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/north.mcfunction index 9209f08b32..e5bfaa843e 100644 --- a/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/north.mcfunction +++ b/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/north.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=north]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.disassembler","fallback":"Disassembler"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:offscreen"},{"translate":"gui.gm4.disassembler","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_disassembler_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_disassembler_stand"',ArmorItems:[{},{},{},{id:"minecraft:tnt",Count:1b,tag:{CustomModelData:3420005}}],Rotation:[180.0f,0.0f]} +summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_disassembler_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_disassembler_stand"',ArmorItems:[{},{},{},{id:"minecraft:tnt",Count:1b,tag:{CustomModelData:"block/disassembler_side"}}],Rotation:[180.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_disassembler","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_disassembler"',Rotation:[180.0f,0.0f]} diff --git a/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/south.mcfunction b/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/south.mcfunction index 22d2feeadb..f0070a62cf 100644 --- a/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/south.mcfunction +++ b/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/south.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=south]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.disassembler","fallback":"Disassembler"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:offscreen"},{"translate":"gui.gm4.disassembler","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_disassembler_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_disassembler_stand"',ArmorItems:[{},{},{},{id:"minecraft:tnt",Count:1b,tag:{CustomModelData:3420005}}],Rotation:[0.0f,0.0f]} +summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_disassembler_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_disassembler_stand"',ArmorItems:[{},{},{},{id:"minecraft:tnt",Count:1b,tag:{CustomModelData:"block/disassembler_side"}}],Rotation:[0.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_disassembler","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_disassembler"',Rotation:[0.0f,0.0f]} diff --git a/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/up.mcfunction b/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/up.mcfunction index c1d0cd4fac..bd441a970f 100644 --- a/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/up.mcfunction +++ b/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/up.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=up]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.disassembler","fallback":"Disassembler"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:offscreen"},{"translate":"gui.gm4.disassembler","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_disassembler_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_disassembler_stand"',ArmorItems:[{},{},{},{id:"minecraft:tnt",Count:1b,tag:{CustomModelData:3420001}}],Rotation:[0.0f,0.0f]} +summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_disassembler_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_disassembler_stand"',ArmorItems:[{},{},{},{id:"minecraft:tnt",Count:1b,tag:{CustomModelData:"block/disassembler"}}],Rotation:[0.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_disassembler","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_disassembler"',Rotation:[0.0f,0.0f]} diff --git a/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/west.mcfunction b/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/west.mcfunction index e68bd6dccc..ae1f0cb952 100644 --- a/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/west.mcfunction +++ b/gm4_disassemblers/data/gm4_disassemblers/functions/machine/rotate/west.mcfunction @@ -4,8 +4,8 @@ # run from gm4_disassemblers:machine/create # place dropper -setblock ~ ~ ~ dropper[facing=west]{CustomName:'{"translate":"%1$s%3427655$s","with":[{"translate":"%1$s%3427656$s","with":[{"text":"Disassembler","font":"minecraft:default","color":"#373737"},[{"text":"Disassembler","font":"gm4:half_scale"},{"text":"Disassembler","font":"gm4:inverted"},{"text":"Disassembler","font":"gm4:inverted_spacing"},{"text":"Disassembler","font":"gm4:offscreen"},{"translate":"gui.gm4.disassembler","font":"gm4:container_gui","color":"white"},{"text":"Disassembler","font":"gm4:half_scale"},{"text":"Disassembler","font":"gm4:inverted"},{"text":"Disassembler","font":"gm4:inverted_spacing"},{"text":"Disassembler","font":"minecraft:default","color":"#373737"}]]},{"translate":"%1$s%3427656$s","with":[{"translate":"container.gm4.disassembler","font":"minecraft:default","color":"#373737"},[{"translate":"container.gm4.disassembler","font":"gm4:half_scale"},{"translate":"container.gm4.disassembler","font":"gm4:inverted"},{"translate":"container.gm4.disassembler","font":"gm4:inverted_spacing"},{"translate":"container.gm4.disassembler","font":"gm4:offscreen"},{"translate":"gui.gm4.disassembler","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.disassembler","font":"gm4:half_scale"},{"translate":"container.gm4.disassembler","font":"gm4:inverted"},{"translate":"container.gm4.disassembler","font":"gm4:inverted_spacing"},{"translate":"container.gm4.disassembler","font":"minecraft:default","color":"#373737"}]]}]}'} +setblock ~ ~ ~ dropper[facing=west]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.disassembler","fallback":"Disassembler"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:offscreen"},{"translate":"gui.gm4.disassembler","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:half_invert"},{"translate":"container.gm4.disassembler","fallback":"Disassembler","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_disassembler_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_disassembler_stand"',ArmorItems:[{},{},{},{id:"minecraft:tnt",Count:1b,tag:{CustomModelData:3420005}}],Rotation:[90.0f,0.0f]} +summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_disassembler_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_disassembler_stand"',ArmorItems:[{},{},{},{id:"minecraft:tnt",Count:1b,tag:{CustomModelData:"block/disassembler_side"}}],Rotation:[90.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_disassembler","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_disassembler"',Rotation:[90.0f,0.0f]} diff --git a/gm4_disassemblers/data/gm4_disassemblers/functions/relocate/place_down.mcfunction b/gm4_disassemblers/data/gm4_disassemblers/functions/relocate/place_down.mcfunction index 3f89391364..a1f9159d6d 100644 --- a/gm4_disassemblers/data/gm4_disassemblers/functions/relocate/place_down.mcfunction +++ b/gm4_disassemblers/data/gm4_disassemblers/functions/relocate/place_down.mcfunction @@ -8,5 +8,5 @@ execute if block ~ ~ ~ command_block[facing=north] run setblock ~ ~ ~ dropper[fa execute if block ~ ~ ~ command_block[facing=down] run setblock ~ ~ ~ dropper[facing=up] data merge block ~ ~ ~ {CustomName:'{"translate":"container.gm4.disassembler","fallback":"Disassembler"}'} -summon armor_stand ~ ~-.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,DisabledSlots:2039552,Tags:["gm4_no_edit","gm4_disassembler"],HasVisualFire:1,CustomName:'"gm4_disassembler"',ArmorItems:[{},{},{},{id:"minecraft:tnt",Count:1b,tag:{CustomModelData:3420001}}]} +summon armor_stand ~ ~-.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,DisabledSlots:2039552,Tags:["gm4_no_edit","gm4_disassembler"],HasVisualFire:1,CustomName:'"gm4_disassembler"',ArmorItems:[{},{},{},{id:"minecraft:tnt",Count:1b,tag:{CustomModelData:"block/disassembler"}}]} playsound minecraft:block.anvil.place master @a ~ ~ ~ 0.9 0.1 diff --git a/gm4_disassemblers/data/gm4_disassemblers/functions/relocate/summon_block_markers.mcfunction b/gm4_disassemblers/data/gm4_disassemblers/functions/relocate/summon_block_markers.mcfunction index 2743582509..7555536e15 100644 --- a/gm4_disassemblers/data/gm4_disassemblers/functions/relocate/summon_block_markers.mcfunction +++ b/gm4_disassemblers/data/gm4_disassemblers/functions/relocate/summon_block_markers.mcfunction @@ -5,7 +5,7 @@ scoreboard players set $placed_block gm4_rl_data 1 -summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_disassembler_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_disassembler_stand"',ArmorItems:[{},{},{},{id:"minecraft:tnt",Count:1b,tag:{CustomModelData:3420001}}],Rotation:[0.0f,0.0f]} +summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_disassembler_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_disassembler_stand"',ArmorItems:[{},{},{},{id:"minecraft:tnt",Count:1b,tag:{CustomModelData:"block/disassembler"}}],Rotation:[0.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_disassembler","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_disassembler"',Rotation:[0.0f,0.0f]} execute as @e[tag=gm4_new_machine,distance=..2] run data modify entity @s Rotation set from storage gm4_relocators:temp gm4_relocation.entity_data.Rotation diff --git a/gm4_disassemblers/data/gm4_disassemblers/guidebook/disassemblers.json b/gm4_disassemblers/data/gm4_disassemblers/guidebook/disassemblers.json index e2ea6e8dcc..57cdb221c9 100644 --- a/gm4_disassemblers/data/gm4_disassemblers/guidebook/disassemblers.json +++ b/gm4_disassemblers/data/gm4_disassemblers/guidebook/disassemblers.json @@ -3,8 +3,7 @@ "name": "Disassemblers", "module_type": "module", "icon": { - "item": "minecraft:tnt", - "nbt": "{CustomModelData:3420003}" + "item": "minecraft:tnt" }, "criteria": { "create_custom_crafter": { diff --git a/gm4_disassemblers/data/gm4_disassemblers/loot_tables/items/disassembler.json b/gm4_disassemblers/data/gm4_disassemblers/loot_tables/items/disassembler.json index edb9631c8b..4448480d99 100644 --- a/gm4_disassemblers/data/gm4_disassemblers/loot_tables/items/disassembler.json +++ b/gm4_disassemblers/data/gm4_disassemblers/loot_tables/items/disassembler.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420135,gm4_machines:{id:\"disassembler\"},SkullOwner:{Name:\"gm4_disassembler\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$disassembler\"}]}}}" + "tag": "{CustomModelData:'item/disassembler',gm4_machines:{id:\"disassembler\"},SkullOwner:{Name:\"gm4_disassembler\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$disassembler\"}]}}}" }, { "function": "set_name", diff --git a/gm4_disassemblers/overlay_26/data/gm4_disassemblers/guidebook/disassemblers.json b/gm4_disassemblers/overlay_26/data/gm4_disassemblers/guidebook/disassemblers.json index 1b6c2c5381..52ce8ce184 100644 --- a/gm4_disassemblers/overlay_26/data/gm4_disassemblers/guidebook/disassemblers.json +++ b/gm4_disassemblers/overlay_26/data/gm4_disassemblers/guidebook/disassemblers.json @@ -3,8 +3,7 @@ "name": "Disassemblers", "module_type": "module", "icon": { - "item": "minecraft:tnt", - "nbt": "{CustomModelData:3420003}" + "item": "minecraft:tnt" }, "criteria": { "create_custom_crafter": { diff --git a/gm4_display_frames/beet.yaml b/gm4_display_frames/beet.yaml index 94bfef548b..a10e472c3f 100644 --- a/gm4_display_frames/beet.yaml +++ b/gm4_display_frames/beet.yaml @@ -30,3 +30,7 @@ meta: - TheEpyonProject Icon Design: - BluePsychoRanger + model_data: + - item: splash_potion + reference: gui/advancement/display_frames + template: advancement \ No newline at end of file diff --git a/gm4_display_frames/data/gm4/advancements/display_frames.json b/gm4_display_frames/data/gm4/advancements/display_frames.json index b4547423b8..bca6d12557 100644 --- a/gm4_display_frames/data/gm4/advancements/display_frames.json +++ b/gm4_display_frames/data/gm4/advancements/display_frames.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:splash_potion", - "nbt": "{Potion:'minecraft:invisibility',CustomModelData:3420001}" + "nbt": "{Potion:'minecraft:invisibility',CustomModelData:'gui/advancement/display_frames'}" }, "title": { "translate": "advancement.gm4.display_frames.title", diff --git a/gm4_display_frames/data/gm4_display_frames/guidebook/display_frames.json b/gm4_display_frames/data/gm4_display_frames/guidebook/display_frames.json index fd0f10403b..f671a737f5 100644 --- a/gm4_display_frames/data/gm4_display_frames/guidebook/display_frames.json +++ b/gm4_display_frames/data/gm4_display_frames/guidebook/display_frames.json @@ -4,7 +4,7 @@ "module_type": "module", "icon": { "item": "minecraft:splash_potion", - "nbt": "{Potion:'minecraft:invisibility',CustomModelData:3420002}" + "nbt": "{Potion:'minecraft:invisibility'}" }, "criteria": { "obtain_invisibility_potion": { diff --git a/gm4_display_frames/translations.csv b/gm4_display_frames/translations.csv new file mode 100644 index 0000000000..0b637efa2c --- /dev/null +++ b/gm4_display_frames/translations.csv @@ -0,0 +1,5 @@ +key,en_us +advancement.gm4.display_frames.title,Where Did It Go? +advancement.gm4.display_frames.description,Make an item frame invisible with a splash potion of invisibility +text.gm4.guidebook.module_desc.display_frames,Splash item frames with invisibilty to make invisible item frames! Great for interior decor! +text.gm4.guidebook.display_frames.description,Splashing item frames and glow item frames with invisibility causes them to become display frames.\n\nDisplay frames become invisible when holding with an item. diff --git a/gm4_double_doors/data/gm4_double_doors/guidebook/double_doors.json b/gm4_double_doors/data/gm4_double_doors/guidebook/double_doors.json index 2178100f9f..280c8a4d76 100644 --- a/gm4_double_doors/data/gm4_double_doors/guidebook/double_doors.json +++ b/gm4_double_doors/data/gm4_double_doors/guidebook/double_doors.json @@ -3,8 +3,7 @@ "name": "Double Doors", "module_type": "module", "icon": { - "item": "minecraft:acacia_door", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:acacia_door" }, "criteria": { "obtain_door": { diff --git a/gm4_double_doors/generate.py b/gm4_double_doors/generate.py index b1f47a88e3..bf14ee89a5 100644 --- a/gm4_double_doors/generate.py +++ b/gm4_double_doors/generate.py @@ -7,6 +7,7 @@ from beet import Context, Structure, TextFile, subproject from beet.contrib.vanilla import Vanilla from nbtlib import parse_nbt +from gm4.plugins.manifest import repro_structure_to_bytes logger = logging.getLogger(__name__) @@ -16,7 +17,7 @@ class StringStructure(TextFile): extension: ClassVar[str] = ".snbt" def serialize_to_structure(self) -> Structure: - return Structure(parse_nbt(self.text)) + return Structure(parse_nbt(self.text), serializer=repro_structure_to_bytes) def register_snbt_files(ctx: Context): diff --git a/gm4_double_doors/translations.csv b/gm4_double_doors/translations.csv new file mode 100644 index 0000000000..cd18d1fb95 --- /dev/null +++ b/gm4_double_doors/translations.csv @@ -0,0 +1,3 @@ +key,en_us +text.gm4.guidebook.module_desc.double_doors,"Tired of clicking twice to open a double door? Annoyed by the fact that doors are only two blacks tall? This data pack automatically opens adjacent doors, making double doors fully functional! Additionally, bottom trapdoors of matching wood type placed above a door are opened alongside the door when it is opened by a player." +text.gm4.guidebook.double_doors.description,"Placing two doors adjacent to each other will link them together, so they open together.\n\nTrapdoors placed above doors will also act as part of the door, opening when the doors open." diff --git a/gm4_dripleaf_filters/data/gm4_dripleaf_filters/guidebook/dripleaf_filters.json b/gm4_dripleaf_filters/data/gm4_dripleaf_filters/guidebook/dripleaf_filters.json index 69ce034c16..ad4f4b31b9 100644 --- a/gm4_dripleaf_filters/data/gm4_dripleaf_filters/guidebook/dripleaf_filters.json +++ b/gm4_dripleaf_filters/data/gm4_dripleaf_filters/guidebook/dripleaf_filters.json @@ -3,8 +3,7 @@ "name": "Dripleaf Filters", "module_type": "module", "icon": { - "item": "minecraft:big_dripleaf", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:big_dripleaf" }, "criteria": { "obtain_dripleaf_and_hopper": { diff --git a/gm4_dripleaf_filters/translations.csv b/gm4_dripleaf_filters/translations.csv new file mode 100644 index 0000000000..d97f242270 --- /dev/null +++ b/gm4_dripleaf_filters/translations.csv @@ -0,0 +1,5 @@ +key,en_us +text.gm4.guidebook.module_desc.dripleaf_filters,Dripleaves will flick items that match a hopper's contents into the hopper for you! +text.gm4.guidebook.dripleaf_filters.description,Big dripleaves can sort items by searching hoppers in front of them. +text.gm4.guidebook.dripleaf_filters.structure,"When an item falls onto a big dripleaf, the leaf will inspect a hopper placed on the ground in front of it." +text.gm4.guidebook.dripleaf_filters.filtering,"If any of the items in the hopper match the item on the leaf, it will slide the item into the hopper.\n\nOtherwise it will collapse and drop the item below itself like normal." diff --git a/gm4_dripleaf_launchers/data/gm4_dripleaf_launchers/guidebook/dripleaf_launchers.json b/gm4_dripleaf_launchers/data/gm4_dripleaf_launchers/guidebook/dripleaf_launchers.json index 592600de34..43ce4017de 100644 --- a/gm4_dripleaf_launchers/data/gm4_dripleaf_launchers/guidebook/dripleaf_launchers.json +++ b/gm4_dripleaf_launchers/data/gm4_dripleaf_launchers/guidebook/dripleaf_launchers.json @@ -3,8 +3,7 @@ "name": "Dripleaf Launchers", "module_type": "module", "icon": { - "item": "minecraft:big_dripleaf", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:big_dripleaf" }, "criteria": { "obtain_dripleaf": { diff --git a/gm4_dripleaf_launchers/translations.csv b/gm4_dripleaf_launchers/translations.csv new file mode 100644 index 0000000000..9ecf332fff --- /dev/null +++ b/gm4_dripleaf_launchers/translations.csv @@ -0,0 +1,3 @@ +key,en_us +text.gm4.guidebook.module_desc.dripleaf_launchers,Start your own Dripleaf Space Program! +text.gm4.guidebook.dripleaf_launchers.description,Sending a redstone signal to a big dripleaf with partial tilt will launch anyone on it into the air. diff --git a/gm4_enchantment_extractors/assets/gm4_enchantment_extractors/textures/block/enchantment_extractor_bottom.png b/gm4_enchantment_extractors/assets/gm4_enchantment_extractors/textures/block/enchantment_extractor_bottom.png new file mode 100644 index 0000000000..869e547308 Binary files /dev/null and b/gm4_enchantment_extractors/assets/gm4_enchantment_extractors/textures/block/enchantment_extractor_bottom.png differ diff --git a/gm4_enchantment_extractors/assets/gm4_enchantment_extractors/textures/block/enchantment_extractor_front.png b/gm4_enchantment_extractors/assets/gm4_enchantment_extractors/textures/block/enchantment_extractor_front.png new file mode 100644 index 0000000000..27ea82898a Binary files /dev/null and b/gm4_enchantment_extractors/assets/gm4_enchantment_extractors/textures/block/enchantment_extractor_front.png differ diff --git a/gm4_enchantment_extractors/assets/gm4_enchantment_extractors/textures/block/enchantment_extractor_side.png b/gm4_enchantment_extractors/assets/gm4_enchantment_extractors/textures/block/enchantment_extractor_side.png new file mode 100644 index 0000000000..0e2c8af045 Binary files /dev/null and b/gm4_enchantment_extractors/assets/gm4_enchantment_extractors/textures/block/enchantment_extractor_side.png differ diff --git a/gm4_enchantment_extractors/assets/gm4_enchantment_extractors/textures/block/enchantment_extractor_side_front.png b/gm4_enchantment_extractors/assets/gm4_enchantment_extractors/textures/block/enchantment_extractor_side_front.png new file mode 100644 index 0000000000..38cb0ec2c1 Binary files /dev/null and b/gm4_enchantment_extractors/assets/gm4_enchantment_extractors/textures/block/enchantment_extractor_side_front.png differ diff --git a/gm4_enchantment_extractors/assets/gm4_enchantment_extractors/textures/block/enchantment_extractor_top.png b/gm4_enchantment_extractors/assets/gm4_enchantment_extractors/textures/block/enchantment_extractor_top.png new file mode 100644 index 0000000000..4242cdc877 Binary files /dev/null and b/gm4_enchantment_extractors/assets/gm4_enchantment_extractors/textures/block/enchantment_extractor_top.png differ diff --git a/gm4_enchantment_extractors/assets/gm4_enchantment_extractors/textures/block/enchantment_extractor_top_out.png b/gm4_enchantment_extractors/assets/gm4_enchantment_extractors/textures/block/enchantment_extractor_top_out.png new file mode 100644 index 0000000000..60a81f9b78 Binary files /dev/null and b/gm4_enchantment_extractors/assets/gm4_enchantment_extractors/textures/block/enchantment_extractor_top_out.png differ diff --git a/gm4_enchantment_extractors/assets/gm4_enchantment_extractors/textures/gui/container/enchantment_extractor.png b/gm4_enchantment_extractors/assets/gm4_enchantment_extractors/textures/gui/container/enchantment_extractor.png new file mode 100644 index 0000000000..b81c73c1da Binary files /dev/null and b/gm4_enchantment_extractors/assets/gm4_enchantment_extractors/textures/gui/container/enchantment_extractor.png differ diff --git a/gm4_enchantment_extractors/assets/translations.csv b/gm4_enchantment_extractors/assets/translations.csv new file mode 100644 index 0000000000..80596dbfa4 --- /dev/null +++ b/gm4_enchantment_extractors/assets/translations.csv @@ -0,0 +1,15 @@ +key,en_us +block.gm4.enchantment_extractor,Enchantment Extractor +container.gm4.enchantment_extractor,Enchantment Extractor +entity.gm4.congealed_enchantment,Congealed Enchantment\u00A7 +entity.gm4.living_enchantment,Living Enchantment\u00A7 +advancement.gm4.enchantment_extractors.title,Clever Enchanting +advancement.gm4.enchantment_extractors.description,Construct an Enchantment Extractor +advancement.gm4.enchantment_extractors.mending.title,Magical Thief +advancement.gm4.enchantment_extractors.mending.description,Successfully extract the mending enchantment from a tool with an Enchantment Extractor +text.gm4.guidebook.module_desc.enchantment_extractors,"Remove enchantments from enchanted tools, armour, and weapons. But be careful, there might be unexpected side-effects." +text.gm4.guidebook.enchantment_extractors.description,"Enchantment Extractors are used to remove enchantments from tools, weapons, and armour." +text.gm4.guidebook.enchantment_extractors.crafting,An Enchantment Extractor can be crafted in a Custom Crafter: +text.gm4.guidebook.enchantment extractors.unenchanting,"Placing enchanted items inside the enchantment extractor will unenchant it.\n\nWhen extracted, there is a chance to generate enchanted books containing those enchantments." +text.gm4.guidebook.enchantment extractors.extraction,The chance of extraction is lower for more powerful enchantments.\n\nSome high level enchants may become cursed with vanishing. +text.gm4.guidebook.enchantment extractors.failed_extraction,"If an extraction fails, a puff of smoke or a congealed enchantment (Vex) will appear." diff --git a/gm4_enchantment_extractors/beet.yaml b/gm4_enchantment_extractors/beet.yaml index 21e3b04ff3..7a06da7989 100644 --- a/gm4_enchantment_extractors/beet.yaml +++ b/gm4_enchantment_extractors/beet.yaml @@ -5,6 +5,9 @@ version: 2.2.X data_pack: load: . +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module - gm4.plugins.include.lib_machines @@ -17,6 +20,49 @@ meta: lib_custom_crafters: 3.0.0 lib_machines: 1.1.0 schedule_loops: [main] + model_data: + - item: player_head + reference: item/enchantment_extractor + model: block/enchantment_extractor + - item: enchanting_table + template: block + transforms: + - name: item_display + origin: [0.5,1,0.5] + scale: [0.625, 0.625,0.625] + translation: [0,-0.01,0] + display: head + broadcast: + - reference: block/enchantment_extractor + textures: + side: block/enchantment_extractor_side + top: block/enchantment_extractor_top_out + bottom: minecraft:block/furnace_top + front: block/enchantment_extractor_side + - reference: block/enchantment_extractor_side + textures: + side: block/enchantment_extractor_side + top: block/enchantment_extractor_top + bottom: minecraft:block/furnace_top + front: block/enchantment_extractor_front + - reference: block/enchantment_extractor_down + textures: + side: block/enchantment_extractor_side + top: block/enchantment_extractor_top + bottom: block/enchantment_extractor_bottom + front: block/enchantment_extractor_side + - item: enchanted_book + reference: gui/advancement/enchantment_extractors_mending + template: advancement + - item: enchanting_table + reference: gui/advancement/enchantment_extractors + template: + name: advancement + forward: block/enchantment_extractor + gui_fonts: + - translation: gui.gm4.enchantment_extractor + container: dropper + texture: gui/container/enchantment_extractor website: description: Remove enchantments from enchanted tools, armour, and weapons. But be careful, there might be unexpected side-effects. recommended: @@ -45,6 +91,6 @@ meta: - Misode - BluePsychoRanger Textures by: - - kyrkis + - Kyrius Icon Design: - DuckJr diff --git a/gm4_enchantment_extractors/data/gm4/advancements/enchantment_extractors.json b/gm4_enchantment_extractors/data/gm4/advancements/enchantment_extractors.json index f2250802a8..058143dd66 100644 --- a/gm4_enchantment_extractors/data/gm4/advancements/enchantment_extractors.json +++ b/gm4_enchantment_extractors/data/gm4/advancements/enchantment_extractors.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "enchanting_table", - "nbt": "{CustomModelData:3420002}" + "nbt": "{CustomModelData:'gui/advancement/enchantment_extractors'}" }, "title": { "translate": "advancement.gm4.enchantment_extractors.title", diff --git a/gm4_enchantment_extractors/data/gm4/advancements/enchantment_extractors_mending.json b/gm4_enchantment_extractors/data/gm4/advancements/enchantment_extractors_mending.json index f24a6f1a24..ebe07d0e95 100644 --- a/gm4_enchantment_extractors/data/gm4/advancements/enchantment_extractors_mending.json +++ b/gm4_enchantment_extractors/data/gm4/advancements/enchantment_extractors_mending.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "enchanted_book", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/enchantment_extractors_mending'}" }, "frame": "goal", "title": { diff --git a/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/down.mcfunction b/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/down.mcfunction index b89cbe79b9..043f9f7f3c 100644 --- a/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/down.mcfunction +++ b/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/down.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=down]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:offscreen"},{"translate":"gui.gm4.enchantment_extractor","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-1.2 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_enchantment_extractor_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_enchantment_extractor_stand"',ArmorItems:[{},{},{},{id:"minecraft:enchanting_table",Count:1b,tag:{CustomModelData:3420005}}],Rotation:[180.0f,0.0f]} +summon armor_stand ~ ~-1.2 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_enchantment_extractor_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_enchantment_extractor_stand"',ArmorItems:[{},{},{},{id:"minecraft:enchanting_table",Count:1b,tag:{CustomModelData:"block/enchantment_extractor_down"}}],Rotation:[180.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_enchantment_extractor","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_enchantment_extractor"',Rotation:[180.0f,0.0f]} diff --git a/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/east.mcfunction b/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/east.mcfunction index 30713d813e..dba08996a0 100644 --- a/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/east.mcfunction +++ b/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/east.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=east]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:offscreen"},{"translate":"gui.gm4.enchantment_extractor","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-1.2 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_enchantment_extractor_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_enchantment_extractor_stand"',ArmorItems:[{},{},{},{id:"minecraft:enchanting_table",Count:1b,tag:{CustomModelData:3420004}}],Rotation:[-90.0f,0.0f]} +summon armor_stand ~ ~-1.2 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_enchantment_extractor_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_enchantment_extractor_stand"',ArmorItems:[{},{},{},{id:"minecraft:enchanting_table",Count:1b,tag:{CustomModelData:"block/enchantment_extractor_side"}}],Rotation:[-90.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_enchantment_extractor","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_enchantment_extractor"',Rotation:[-90.0f,0.0f]} diff --git a/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/north.mcfunction b/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/north.mcfunction index 73743a6c02..cfa6ae66bb 100644 --- a/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/north.mcfunction +++ b/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/north.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=north]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:offscreen"},{"translate":"gui.gm4.enchantment_extractor","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-1.2 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_enchantment_extractor_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_enchantment_extractor_stand"',ArmorItems:[{},{},{},{id:"minecraft:enchanting_table",Count:1b,tag:{CustomModelData:3420004}}],Rotation:[180.0f,0.0f]} +summon armor_stand ~ ~-1.2 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_enchantment_extractor_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_enchantment_extractor_stand"',ArmorItems:[{},{},{},{id:"minecraft:enchanting_table",Count:1b,tag:{CustomModelData:"block/enchantment_extractor_side"}}],Rotation:[180.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_enchantment_extractor","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_enchantment_extractor"',Rotation:[180.0f,0.0f]} diff --git a/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/south.mcfunction b/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/south.mcfunction index 4f10c2129b..a09b5e820f 100644 --- a/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/south.mcfunction +++ b/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/south.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=south]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:offscreen"},{"translate":"gui.gm4.enchantment_extractor","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-1.2 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_enchantment_extractor_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_enchantment_extractor_stand"',ArmorItems:[{},{},{},{id:"minecraft:enchanting_table",Count:1b,tag:{CustomModelData:3420004}}],Rotation:[0.0f,0.0f]} +summon armor_stand ~ ~-1.2 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_enchantment_extractor_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_enchantment_extractor_stand"',ArmorItems:[{},{},{},{id:"minecraft:enchanting_table",Count:1b,tag:{CustomModelData:"block/enchantment_extractor_side"}}],Rotation:[0.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_enchantment_extractor","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_enchantment_extractor"',Rotation:[0.0f,0.0f]} diff --git a/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/up.mcfunction b/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/up.mcfunction index 795f71c2d5..cfeb42cb53 100644 --- a/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/up.mcfunction +++ b/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/up.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=up]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:offscreen"},{"translate":"gui.gm4.enchantment_extractor","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-1.2 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_enchantment_extractor_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_enchantment_extractor_stand"',ArmorItems:[{},{},{},{id:"minecraft:enchanting_table",Count:1b,tag:{CustomModelData:3420001}}],Rotation:[0.0f,0.0f]} +summon armor_stand ~ ~-1.2 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_enchantment_extractor_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_enchantment_extractor_stand"',ArmorItems:[{},{},{},{id:"minecraft:enchanting_table",Count:1b,tag:{CustomModelData:"block/enchantment_extractor"}}],Rotation:[0.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_enchantment_extractor","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_enchantment_extractor"',Rotation:[0.0f,0.0f]} diff --git a/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/west.mcfunction b/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/west.mcfunction index ae3a638777..c413ad6a55 100644 --- a/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/west.mcfunction +++ b/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/machine/rotate/west.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=west]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:offscreen"},{"translate":"gui.gm4.enchantment_extractor","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:half_invert"},{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-1.2 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_enchantment_extractor_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_enchantment_extractor_stand"',ArmorItems:[{},{},{},{id:"minecraft:enchanting_table",Count:1b,tag:{CustomModelData:3420004}}],Rotation:[90.0f,0.0f]} +summon armor_stand ~ ~-1.2 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_enchantment_extractor_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_enchantment_extractor_stand"',ArmorItems:[{},{},{},{id:"minecraft:enchanting_table",Count:1b,tag:{CustomModelData:"block/enchantment_extractor_side"}}],Rotation:[90.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_enchantment_extractor","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_enchantment_extractor"',Rotation:[90.0f,0.0f]} diff --git a/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/relocate/place_down.mcfunction b/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/relocate/place_down.mcfunction index c8c4c696d3..42079b8bb0 100644 --- a/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/relocate/place_down.mcfunction +++ b/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/relocate/place_down.mcfunction @@ -8,5 +8,5 @@ execute if block ~ ~ ~ command_block[facing=north] run setblock ~ ~ ~ dropper[fa execute if block ~ ~ ~ command_block[facing=down] run setblock ~ ~ ~ dropper[facing=up] data merge block ~ ~ ~ {CustomName:'{"translate":"container.gm4.enchantment_extractor","fallback":"Enchantment Extractor"}'} -summon armor_stand ~ ~-1.2 ~ {CustomName:'"GM4 Enchantment Extractor"',Invisible:1b,Invulnerable:1b,Marker:1b,NoGravity:1,Tags:["gm4_enchantment_extractor","gm4_no_edit"],ArmorItems:[{},{},{},{id:"minecraft:enchanting_table",Count:1,tag:{CustomModelData:3420001}}],DisabledSlots:2039583} +summon armor_stand ~ ~-1.2 ~ {CustomName:'"GM4 Enchantment Extractor"',Invisible:1b,Invulnerable:1b,Marker:1b,NoGravity:1,Tags:["gm4_enchantment_extractor","gm4_no_edit"],ArmorItems:[{},{},{},{id:"minecraft:enchanting_table",Count:1,tag:{CustomModelData:"block/enchantment_extractor"}}],DisabledSlots:2039583} playsound entity.experience_orb.pickup master @a[distance=..5] ~ ~ ~ 1 0.7 1 diff --git a/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/relocate/summon_block_markers.mcfunction b/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/relocate/summon_block_markers.mcfunction index 66a95910b0..9010f00bb6 100644 --- a/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/relocate/summon_block_markers.mcfunction +++ b/gm4_enchantment_extractors/data/gm4_enchantment_extractors/functions/relocate/summon_block_markers.mcfunction @@ -5,7 +5,7 @@ scoreboard players set $placed_block gm4_rl_data 1 -summon armor_stand ~ ~-1.2 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_enchantment_extractor_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_enchantment_extractor_stand"',ArmorItems:[{},{},{},{id:"minecraft:enchanting_table",Count:1b,tag:{CustomModelData:3420001}}],Rotation:[0.0f,0.0f]} +summon armor_stand ~ ~-1.2 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_enchantment_extractor_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_enchantment_extractor_stand"',ArmorItems:[{},{},{},{id:"minecraft:enchanting_table",Count:1b,tag:{CustomModelData:"block/enchantment_extractor"}}],Rotation:[0.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_enchantment_extractor","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_enchantment_extractor"',Rotation:[0.0f,0.0f]} execute as @e[tag=gm4_new_machine,distance=..2] run data modify entity @s Rotation set from storage gm4_relocators:temp gm4_relocation.entity_data.Rotation diff --git a/gm4_enchantment_extractors/data/gm4_enchantment_extractors/guidebook/enchantment_extractors.json b/gm4_enchantment_extractors/data/gm4_enchantment_extractors/guidebook/enchantment_extractors.json index a6f4e7473f..2278259da6 100644 --- a/gm4_enchantment_extractors/data/gm4_enchantment_extractors/guidebook/enchantment_extractors.json +++ b/gm4_enchantment_extractors/data/gm4_enchantment_extractors/guidebook/enchantment_extractors.json @@ -3,8 +3,7 @@ "name": "Enchantment Extractors", "module_type": "module", "icon": { - "item": "minecraft:enchanting_table", - "nbt": "{CustomModelData:3420003}" + "item": "minecraft:enchanting_table" }, "criteria": { "open_custom_crafter": { diff --git a/gm4_enchantment_extractors/data/gm4_enchantment_extractors/loot_tables/items/enchantment_extractor.json b/gm4_enchantment_extractors/data/gm4_enchantment_extractors/loot_tables/items/enchantment_extractor.json index 5ce3f41ea9..6f9817fdb9 100644 --- a/gm4_enchantment_extractors/data/gm4_enchantment_extractors/loot_tables/items/enchantment_extractor.json +++ b/gm4_enchantment_extractors/data/gm4_enchantment_extractors/loot_tables/items/enchantment_extractor.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420134,gm4_machines:{id:\"enchantment_extractor\"},SkullOwner:{Name:\"gm4_enchantment_extractor\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$enchantment_extractor\"}]}}}" + "tag": "{CustomModelData:'item/enchantment_extractor',gm4_machines:{id:\"enchantment_extractor\"},SkullOwner:{Name:\"gm4_enchantment_extractor\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$enchantment_extractor\"}]}}}" }, { "function": "set_name", diff --git a/gm4_enchantment_extractors/overlay_26/data/gm4_enchantment_extractors/guidebook/enchantment_extractors.json b/gm4_enchantment_extractors/overlay_26/data/gm4_enchantment_extractors/guidebook/enchantment_extractors.json index c409c87f25..1b7d169498 100644 --- a/gm4_enchantment_extractors/overlay_26/data/gm4_enchantment_extractors/guidebook/enchantment_extractors.json +++ b/gm4_enchantment_extractors/overlay_26/data/gm4_enchantment_extractors/guidebook/enchantment_extractors.json @@ -3,8 +3,7 @@ "name": "Enchantment Extractors", "module_type": "module", "icon": { - "item": "minecraft:enchanting_table", - "nbt": "{CustomModelData:3420003}" + "item": "minecraft:enchanting_table" }, "criteria": { "open_custom_crafter": { diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/elytra/broken_captains_wings.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/elytra/broken_captains_wings.json new file mode 100644 index 0000000000..a0c1ae8cfb --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/elytra/broken_captains_wings.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "gm4_end_fishing:item/elytra/broken_captains_wings" + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/elytra/broken_ravaged_wings.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/elytra/broken_ravaged_wings.json new file mode 100644 index 0000000000..0ac4e90c1a --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/elytra/broken_ravaged_wings.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "gm4_end_fishing:item/elytra/broken_ravaged_wings" + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/elytra/captains_wings.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/elytra/captains_wings.json new file mode 100644 index 0000000000..ad2c94a720 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/elytra/captains_wings.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "gm4_end_fishing:item/elytra/captains_wings" + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/elytra/ravaged_wings.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/elytra/ravaged_wings.json new file mode 100644 index 0000000000..68ac5db03e --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/elytra/ravaged_wings.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "gm4_end_fishing:item/elytra/ravaged_wings" + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_1.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_1.json new file mode 100644 index 0000000000..72f325059c --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_1.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/diamond_sword_1" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.977, + 0.977, + 0.977 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.977, + 0.977, + 0.977 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.748, + 0.748, + 0.748 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.748, + 0.748, + 0.748 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_10.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_10.json new file mode 100644 index 0000000000..b89b96e946 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_10.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/diamond_sword_10" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.4, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.4, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_11.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_11.json new file mode 100644 index 0000000000..e4fe705698 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_11.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/diamond_sword_11" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 3.5, + 0.65 + ], + "scale": [ + 0.765, + 0.765, + 0.765 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 3.5, + 0.65 + ], + "scale": [ + 0.765, + 0.765, + 0.765 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.612, + 0.612, + 0.612 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.612, + 0.612, + 0.612 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_12.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_12.json new file mode 100644 index 0000000000..88faadaec2 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_12.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/diamond_sword_12" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 4.25, + 0.65 + ], + "scale": [ + 0.8755, + 0.8755, + 0.8755 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 4.25, + 0.65 + ], + "scale": [ + 0.8755, + 0.8755, + 0.8755 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7004, + 0.7004, + 0.7004 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7004, + 0.7004, + 0.7004 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_13.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_13.json new file mode 100644 index 0000000000..8a272b219f --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_13.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/diamond_sword_13" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.8, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.8, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_14.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_14.json new file mode 100644 index 0000000000..7f2b3c3323 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_14.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/diamond_sword_14" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.5, + 0.5 + ], + "scale": [ + 1.02, + 1.02, + 1.02 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.5, + 0.5 + ], + "scale": [ + 1.02, + 1.02, + 1.02 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.816, + 0.816, + 0.816 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.816, + 0.816, + 0.816 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_15.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_15.json new file mode 100644 index 0000000000..650f8005a0 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_15.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/diamond_sword_15" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_16.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_16.json new file mode 100644 index 0000000000..558e110f3f --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_16.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/diamond_sword_16" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 4.3, + 0.5 + ], + "scale": [ + 0.799, + 0.799, + 0.799 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 4.3, + 0.5 + ], + "scale": [ + 0.799, + 0.799, + 0.799 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.6392, + 0.6392, + 0.6392 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.6392, + 0.6392, + 0.6392 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_17.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_17.json new file mode 100644 index 0000000000..8e4cd9186f --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_17.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/diamond_sword_17" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_18.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_18.json new file mode 100644 index 0000000000..bd3d06965e --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_18.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/diamond_sword_18" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_19.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_19.json new file mode 100644 index 0000000000..291af61a37 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_19.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/diamond_sword_19" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.2, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.2, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_2.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_2.json new file mode 100644 index 0000000000..43b1afc5d3 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_2.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/diamond_sword_2" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 4.6, + 0.5 + ], + "scale": [ + 0.8755, + 0.8755, + 0.8755 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 4.6, + 0.5 + ], + "scale": [ + 0.8755, + 0.8755, + 0.8755 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7004, + 0.7004, + 0.7004 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7004, + 0.7004, + 0.7004 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_20.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_20.json new file mode 100644 index 0000000000..d02921e987 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_20.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/diamond_sword_20" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_3.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_3.json new file mode 100644 index 0000000000..b3776238c8 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_3.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/diamond_sword_3" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 4.67, + 0.5 + ], + "scale": [ + 0.884, + 0.884, + 0.884 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 4.67, + 0.5 + ], + "scale": [ + 0.884, + 0.884, + 0.884 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7072, + 0.7072, + 0.7072 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7072, + 0.7072, + 0.7072 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_4.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_4.json new file mode 100644 index 0000000000..591ac66f33 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_4.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/diamond_sword_4" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.8, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.8, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_5.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_5.json new file mode 100644 index 0000000000..ea77ef8126 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_5.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/diamond_sword_5" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.65, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.65, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_6.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_6.json new file mode 100644 index 0000000000..cd452adab2 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_6.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/diamond_sword_6" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 4.0, + 0.2 + ], + "scale": [ + 0.85, + 0.85, + 0.85 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 4.0, + 0.2 + ], + "scale": [ + 0.85, + 0.85, + 0.85 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.68, + 0.68, + 0.68 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.68, + 0.68, + 0.68 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_7.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_7.json new file mode 100644 index 0000000000..56a9505e9d --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_7.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/diamond_sword_7" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 3.1, + 0.73 + ], + "scale": [ + 0.7395, + 0.7395, + 0.7395 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 3.1, + 0.73 + ], + "scale": [ + 0.7395, + 0.7395, + 0.7395 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.5916, + 0.5916, + 0.5916 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.5916, + 0.5916, + 0.5916 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_8.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_8.json new file mode 100644 index 0000000000..f93531b442 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_8.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/diamond_sword_8" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 4.7, + 0.5 + ], + "scale": [ + 0.85, + 0.85, + 0.85 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 4.7, + 0.5 + ], + "scale": [ + 0.85, + 0.85, + 0.85 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.68, + 0.68, + 0.68 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.68, + 0.68, + 0.68 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_9.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_9.json new file mode 100644 index 0000000000..43eb62bc6a --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/diamond_sword_9.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/diamond_sword_9" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.2, + 0.5 + ], + "scale": [ + 0.8925, + 0.8925, + 0.8925 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.2, + 0.5 + ], + "scale": [ + 0.8925, + 0.8925, + 0.8925 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.714, + 0.714, + 0.714 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.714, + 0.714, + 0.714 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_1.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_1.json new file mode 100644 index 0000000000..c4671d5a9d --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_1.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/iron_sword_1" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.977, + 0.977, + 0.977 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.977, + 0.977, + 0.977 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.748, + 0.748, + 0.748 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.748, + 0.748, + 0.748 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_10.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_10.json new file mode 100644 index 0000000000..d1742e9686 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_10.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/iron_sword_10" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.4, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.4, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_11.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_11.json new file mode 100644 index 0000000000..830020c3f7 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_11.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/iron_sword_11" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 3.5, + 0.65 + ], + "scale": [ + 0.765, + 0.765, + 0.765 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 3.5, + 0.65 + ], + "scale": [ + 0.765, + 0.765, + 0.765 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.612, + 0.612, + 0.612 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.612, + 0.612, + 0.612 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_12.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_12.json new file mode 100644 index 0000000000..2c9b10ff45 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_12.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/iron_sword_12" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 4.25, + 0.65 + ], + "scale": [ + 0.8755, + 0.8755, + 0.8755 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 4.25, + 0.65 + ], + "scale": [ + 0.8755, + 0.8755, + 0.8755 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7004, + 0.7004, + 0.7004 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7004, + 0.7004, + 0.7004 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_13.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_13.json new file mode 100644 index 0000000000..886fa131df --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_13.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/iron_sword_13" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.8, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.8, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_14.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_14.json new file mode 100644 index 0000000000..516b6105e5 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_14.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/iron_sword_14" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.5, + 0.5 + ], + "scale": [ + 1.02, + 1.02, + 1.02 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.5, + 0.5 + ], + "scale": [ + 1.02, + 1.02, + 1.02 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.816, + 0.816, + 0.816 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.816, + 0.816, + 0.816 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_15.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_15.json new file mode 100644 index 0000000000..8a4e028932 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_15.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/iron_sword_15" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_16.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_16.json new file mode 100644 index 0000000000..49f8f1c984 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_16.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/iron_sword_16" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 4.3, + 0.5 + ], + "scale": [ + 0.799, + 0.799, + 0.799 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 4.3, + 0.5 + ], + "scale": [ + 0.799, + 0.799, + 0.799 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.6392, + 0.6392, + 0.6392 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.6392, + 0.6392, + 0.6392 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_17.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_17.json new file mode 100644 index 0000000000..7a5aa72faf --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_17.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/iron_sword_17" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_18.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_18.json new file mode 100644 index 0000000000..5c3dd91446 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_18.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/iron_sword_18" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_19.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_19.json new file mode 100644 index 0000000000..825d2d389c --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_19.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/iron_sword_19" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.2, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.2, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_2.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_2.json new file mode 100644 index 0000000000..1ab24bc7d9 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_2.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/iron_sword_2" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 4.6, + 0.5 + ], + "scale": [ + 0.8755, + 0.8755, + 0.8755 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 4.6, + 0.5 + ], + "scale": [ + 0.8755, + 0.8755, + 0.8755 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7004, + 0.7004, + 0.7004 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7004, + 0.7004, + 0.7004 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_20.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_20.json new file mode 100644 index 0000000000..a963cd4e1f --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_20.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/iron_sword_20" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_3.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_3.json new file mode 100644 index 0000000000..f8fd7f25fb --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_3.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/iron_sword_3" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 4.67, + 0.5 + ], + "scale": [ + 0.884, + 0.884, + 0.884 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 4.67, + 0.5 + ], + "scale": [ + 0.884, + 0.884, + 0.884 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7072, + 0.7072, + 0.7072 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7072, + 0.7072, + 0.7072 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_4.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_4.json new file mode 100644 index 0000000000..3dfbf3f1af --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_4.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/iron_sword_4" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.8, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.8, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_5.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_5.json new file mode 100644 index 0000000000..600ca35216 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_5.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/iron_sword_5" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.65, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.65, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_6.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_6.json new file mode 100644 index 0000000000..753c0d8cdd --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_6.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/iron_sword_6" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 4.0, + 0.2 + ], + "scale": [ + 0.85, + 0.85, + 0.85 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 4.0, + 0.2 + ], + "scale": [ + 0.85, + 0.85, + 0.85 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.68, + 0.68, + 0.68 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.68, + 0.68, + 0.68 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_7.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_7.json new file mode 100644 index 0000000000..c433ce4c4e --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_7.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/iron_sword_7" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 3.1, + 0.73 + ], + "scale": [ + 0.7395, + 0.7395, + 0.7395 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 3.1, + 0.73 + ], + "scale": [ + 0.7395, + 0.7395, + 0.7395 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.5916, + 0.5916, + 0.5916 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.5916, + 0.5916, + 0.5916 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_8.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_8.json new file mode 100644 index 0000000000..3c941fd83b --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_8.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/iron_sword_8" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 4.7, + 0.5 + ], + "scale": [ + 0.85, + 0.85, + 0.85 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 4.7, + 0.5 + ], + "scale": [ + 0.85, + 0.85, + 0.85 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.68, + 0.68, + 0.68 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.68, + 0.68, + 0.68 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_9.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_9.json new file mode 100644 index 0000000000..f99ce8811c --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/iron_sword_9.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/iron_sword_9" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.2, + 0.5 + ], + "scale": [ + 0.8925, + 0.8925, + 0.8925 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.2, + 0.5 + ], + "scale": [ + 0.8925, + 0.8925, + 0.8925 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.714, + 0.714, + 0.714 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.714, + 0.714, + 0.714 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_1.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_1.json new file mode 100644 index 0000000000..0d8a547265 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_1.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/netherite_sword_1" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.977, + 0.977, + 0.977 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.977, + 0.977, + 0.977 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.748, + 0.748, + 0.748 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.748, + 0.748, + 0.748 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_10.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_10.json new file mode 100644 index 0000000000..31ce088762 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_10.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/netherite_sword_10" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.4, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.4, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_11.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_11.json new file mode 100644 index 0000000000..3b469a883e --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_11.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/netherite_sword_11" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 3.5, + 0.65 + ], + "scale": [ + 0.765, + 0.765, + 0.765 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 3.5, + 0.65 + ], + "scale": [ + 0.765, + 0.765, + 0.765 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.612, + 0.612, + 0.612 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.612, + 0.612, + 0.612 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_12.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_12.json new file mode 100644 index 0000000000..1a9dc219b5 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_12.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/netherite_sword_12" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 4.25, + 0.65 + ], + "scale": [ + 0.8755, + 0.8755, + 0.8755 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 4.25, + 0.65 + ], + "scale": [ + 0.8755, + 0.8755, + 0.8755 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7004, + 0.7004, + 0.7004 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7004, + 0.7004, + 0.7004 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_13.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_13.json new file mode 100644 index 0000000000..f71db6f3d7 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_13.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/netherite_sword_13" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.8, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.8, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_14.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_14.json new file mode 100644 index 0000000000..9b0241a5c5 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_14.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/netherite_sword_14" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.5, + 0.5 + ], + "scale": [ + 1.02, + 1.02, + 1.02 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.5, + 0.5 + ], + "scale": [ + 1.02, + 1.02, + 1.02 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.816, + 0.816, + 0.816 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.816, + 0.816, + 0.816 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_15.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_15.json new file mode 100644 index 0000000000..d69011c8b3 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_15.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/netherite_sword_15" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_16.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_16.json new file mode 100644 index 0000000000..bf5bda38b0 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_16.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/netherite_sword_16" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 4.3, + 0.5 + ], + "scale": [ + 0.799, + 0.799, + 0.799 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 4.3, + 0.5 + ], + "scale": [ + 0.799, + 0.799, + 0.799 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.6392, + 0.6392, + 0.6392 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.6392, + 0.6392, + 0.6392 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_17.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_17.json new file mode 100644 index 0000000000..568003ce4a --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_17.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/netherite_sword_17" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_18.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_18.json new file mode 100644 index 0000000000..d96c4539ab --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_18.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/netherite_sword_18" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_19.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_19.json new file mode 100644 index 0000000000..29864fd7a4 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_19.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/netherite_sword_19" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.2, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.2, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_2.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_2.json new file mode 100644 index 0000000000..07114055e4 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_2.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/netherite_sword_2" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 4.6, + 0.5 + ], + "scale": [ + 0.8755, + 0.8755, + 0.8755 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 4.6, + 0.5 + ], + "scale": [ + 0.8755, + 0.8755, + 0.8755 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7004, + 0.7004, + 0.7004 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7004, + 0.7004, + 0.7004 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_20.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_20.json new file mode 100644 index 0000000000..38530d377a --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_20.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/netherite_sword_20" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.3, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_3.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_3.json new file mode 100644 index 0000000000..e4e6710985 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_3.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/netherite_sword_3" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 4.67, + 0.5 + ], + "scale": [ + 0.884, + 0.884, + 0.884 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 4.67, + 0.5 + ], + "scale": [ + 0.884, + 0.884, + 0.884 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7072, + 0.7072, + 0.7072 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7072, + 0.7072, + 0.7072 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_4.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_4.json new file mode 100644 index 0000000000..0da955a269 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_4.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/netherite_sword_4" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.8, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.8, + 0.5 + ], + "scale": [ + 0.9265, + 0.9265, + 0.9265 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7412, + 0.7412, + 0.7412 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_5.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_5.json new file mode 100644 index 0000000000..a48c25864c --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_5.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/netherite_sword_5" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.65, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.65, + 0.5 + ], + "scale": [ + 0.952, + 0.952, + 0.952 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.7616, + 0.7616, + 0.7616 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_6.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_6.json new file mode 100644 index 0000000000..d99559e937 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_6.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/netherite_sword_6" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 4.0, + 0.2 + ], + "scale": [ + 0.85, + 0.85, + 0.85 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 4.0, + 0.2 + ], + "scale": [ + 0.85, + 0.85, + 0.85 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.68, + 0.68, + 0.68 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.68, + 0.68, + 0.68 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_7.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_7.json new file mode 100644 index 0000000000..bc98fccc39 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_7.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/netherite_sword_7" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 3.1, + 0.73 + ], + "scale": [ + 0.7395, + 0.7395, + 0.7395 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 3.1, + 0.73 + ], + "scale": [ + 0.7395, + 0.7395, + 0.7395 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.5916, + 0.5916, + 0.5916 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.5916, + 0.5916, + 0.5916 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_8.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_8.json new file mode 100644 index 0000000000..8405b8ea4d --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_8.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/netherite_sword_8" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 4.7, + 0.5 + ], + "scale": [ + 0.85, + 0.85, + 0.85 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 4.7, + 0.5 + ], + "scale": [ + 0.85, + 0.85, + 0.85 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.68, + 0.68, + 0.68 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.68, + 0.68, + 0.68 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_9.json b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_9.json new file mode 100644 index 0000000000..40335aeb00 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/models/item/swords/netherite_sword_9.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "gm4_end_fishing:item/swords/netherite_sword_9" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ + 0, + -90, + 55 + ], + "translation": [ + 0, + 5.2, + 0.5 + ], + "scale": [ + 0.8925, + 0.8925, + 0.8925 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + -55 + ], + "translation": [ + 0, + 5.2, + 0.5 + ], + "scale": [ + 0.8925, + 0.8925, + 0.8925 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + -90, + 25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.714, + 0.714, + 0.714 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 90, + -25 + ], + "translation": [ + 1.13, + 3.2, + 1.13 + ], + "scale": [ + 0.714, + 0.714, + 0.714 + ] + } + } +} diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/captains_wings.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/captains_wings.png new file mode 100644 index 0000000000..d8022b2767 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/captains_wings.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/captains_wings.properties b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/captains_wings.properties new file mode 100644 index 0000000000..b4d8ebde71 --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/captains_wings.properties @@ -0,0 +1,4 @@ +type=elytra +matchItems=elytra +texture.elytra=elytra_10 +nbt.CustomModelData=$item/captains_wings diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_10_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_10_layer_1.png new file mode 100644 index 0000000000..52f938766e Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_10_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_10_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_10_layer_2.png new file mode 100644 index 0000000000..8432a5085a Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_10_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_1_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_1_layer_1.png new file mode 100644 index 0000000000..96f4b72460 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_1_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_1_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_1_layer_2.png new file mode 100644 index 0000000000..81eaf8503c Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_1_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_2_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_2_layer_1.png new file mode 100644 index 0000000000..eb5a3091e1 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_2_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_2_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_2_layer_2.png new file mode 100644 index 0000000000..e2da509376 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_2_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_3_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_3_layer_1.png new file mode 100644 index 0000000000..aa06da5519 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_3_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_3_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_3_layer_2.png new file mode 100644 index 0000000000..922461c7b7 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_3_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_4_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_4_layer_1.png new file mode 100644 index 0000000000..5b1f8db6a3 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_4_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_4_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_4_layer_2.png new file mode 100644 index 0000000000..452ad5e488 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_4_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_5_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_5_layer_1.png new file mode 100644 index 0000000000..a58d2f7fd5 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_5_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_5_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_5_layer_2.png new file mode 100644 index 0000000000..b2e24a8af2 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_5_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_6_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_6_layer_1.png new file mode 100644 index 0000000000..ff7c2f055d Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_6_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_6_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_6_layer_2.png new file mode 100644 index 0000000000..db32dcd019 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_6_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_7_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_7_layer_1.png new file mode 100644 index 0000000000..4a578018ba Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_7_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_7_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_7_layer_2.png new file mode 100644 index 0000000000..eee7801586 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_7_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_8_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_8_layer_1.png new file mode 100644 index 0000000000..26443293e5 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_8_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_8_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_8_layer_2.png new file mode 100644 index 0000000000..ac3d582e2d Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_8_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_9_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_9_layer_1.png new file mode 100644 index 0000000000..6c513073a2 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_9_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_9_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_9_layer_2.png new file mode 100644 index 0000000000..491b84cc3c Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/diamond_9_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_10_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_10_layer_1.png new file mode 100644 index 0000000000..f7eec20a71 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_10_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_10_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_10_layer_2.png new file mode 100644 index 0000000000..cf5e94780e Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_10_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_1_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_1_layer_1.png new file mode 100644 index 0000000000..6fe266aa8f Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_1_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_1_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_1_layer_2.png new file mode 100644 index 0000000000..e9dffdd6dd Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_1_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_2_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_2_layer_1.png new file mode 100644 index 0000000000..875512cbda Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_2_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_2_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_2_layer_2.png new file mode 100644 index 0000000000..1655f2a15f Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_2_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_3_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_3_layer_1.png new file mode 100644 index 0000000000..8abf2271e2 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_3_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_3_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_3_layer_2.png new file mode 100644 index 0000000000..7f77672f9d Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_3_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_4_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_4_layer_1.png new file mode 100644 index 0000000000..05c65120f7 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_4_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_4_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_4_layer_2.png new file mode 100644 index 0000000000..d3516b76f0 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_4_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_5_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_5_layer_1.png new file mode 100644 index 0000000000..8c6e2f8580 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_5_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_5_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_5_layer_2.png new file mode 100644 index 0000000000..82d37aad08 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_5_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_6_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_6_layer_1.png new file mode 100644 index 0000000000..36e834a6d1 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_6_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_6_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_6_layer_2.png new file mode 100644 index 0000000000..dd9c08fc07 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_6_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_7_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_7_layer_1.png new file mode 100644 index 0000000000..2a241decb1 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_7_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_7_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_7_layer_2.png new file mode 100644 index 0000000000..222ee39ee1 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_7_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_8_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_8_layer_1.png new file mode 100644 index 0000000000..ca5efe4045 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_8_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_8_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_8_layer_2.png new file mode 100644 index 0000000000..165fc3a5ee Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_8_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_9_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_9_layer_1.png new file mode 100644 index 0000000000..1f934a45df Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_9_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_9_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_9_layer_2.png new file mode 100644 index 0000000000..23cb2bc3ad Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/iron_9_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_10_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_10_layer_1.png new file mode 100644 index 0000000000..6baf911be7 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_10_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_10_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_10_layer_2.png new file mode 100644 index 0000000000..99f505c4ba Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_10_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_1_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_1_layer_1.png new file mode 100644 index 0000000000..f65ba9f7a1 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_1_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_1_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_1_layer_2.png new file mode 100644 index 0000000000..bac6c5fbb1 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_1_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_2_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_2_layer_1.png new file mode 100644 index 0000000000..d3a5e2c354 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_2_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_2_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_2_layer_2.png new file mode 100644 index 0000000000..f09f26fc44 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_2_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_3_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_3_layer_1.png new file mode 100644 index 0000000000..9b5ba67907 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_3_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_3_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_3_layer_2.png new file mode 100644 index 0000000000..9ffe3266ee Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_3_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_4_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_4_layer_1.png new file mode 100644 index 0000000000..88cb5ffaeb Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_4_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_4_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_4_layer_2.png new file mode 100644 index 0000000000..eae08fd7a8 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_4_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_5_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_5_layer_1.png new file mode 100644 index 0000000000..03a8218ecb Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_5_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_5_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_5_layer_2.png new file mode 100644 index 0000000000..eb2273e88f Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_5_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_6_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_6_layer_1.png new file mode 100644 index 0000000000..38cac9cbdc Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_6_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_6_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_6_layer_2.png new file mode 100644 index 0000000000..06cd09e337 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_6_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_7_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_7_layer_1.png new file mode 100644 index 0000000000..9c5723c0a3 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_7_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_7_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_7_layer_2.png new file mode 100644 index 0000000000..6fcfea2df5 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_7_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_8_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_8_layer_1.png new file mode 100644 index 0000000000..3252b3694b Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_8_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_8_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_8_layer_2.png new file mode 100644 index 0000000000..e4cb376c5c Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_8_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_9_layer_1.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_9_layer_1.png new file mode 100644 index 0000000000..95618f12f6 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_9_layer_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_9_layer_2.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_9_layer_2.png new file mode 100644 index 0000000000..1624b6e1e6 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/netherite_9_layer_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/ravaged_wings.png b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/ravaged_wings.png new file mode 100644 index 0000000000..a545cd5072 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/ravaged_wings.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/ravaged_wings.properties b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/ravaged_wings.properties new file mode 100644 index 0000000000..5f9dce257a --- /dev/null +++ b/gm4_end_fishing/assets/gm4_end_fishing/optifine/cit/ravaged_wings.properties @@ -0,0 +1,4 @@ +type=elytra +matchItems=elytra +texture.elytra=ravaged_wings +nbt.CustomModelData=$item/ravaged_wings diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_1.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_1.png new file mode 100644 index 0000000000..39fb4e4ae8 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_10.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_10.png new file mode 100644 index 0000000000..33f2bfe02f Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_10.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_2.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_2.png new file mode 100644 index 0000000000..8231fa1694 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_3.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_3.png new file mode 100644 index 0000000000..d4c90dd56e Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_3.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_4.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_4.png new file mode 100644 index 0000000000..66135153d3 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_4.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_5.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_5.png new file mode 100644 index 0000000000..b67b6429c9 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_5.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_6.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_6.png new file mode 100644 index 0000000000..b789697f96 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_6.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_7.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_7.png new file mode 100644 index 0000000000..5245886392 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_7.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_8.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_8.png new file mode 100644 index 0000000000..b4c8eecebc Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_8.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_9.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_9.png new file mode 100644 index 0000000000..8a3ebbd9c0 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_boots_9.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_1.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_1.png new file mode 100644 index 0000000000..8c933d7cb2 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_10.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_10.png new file mode 100644 index 0000000000..d2930d0320 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_10.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_2.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_2.png new file mode 100644 index 0000000000..251c13cb08 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_3.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_3.png new file mode 100644 index 0000000000..a6cba3ecba Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_3.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_4.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_4.png new file mode 100644 index 0000000000..7959b6950a Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_4.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_5.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_5.png new file mode 100644 index 0000000000..459e998742 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_5.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_6.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_6.png new file mode 100644 index 0000000000..838d7b4dfb Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_6.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_7.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_7.png new file mode 100644 index 0000000000..81f4416b02 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_7.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_8.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_8.png new file mode 100644 index 0000000000..7668e19871 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_8.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_9.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_9.png new file mode 100644 index 0000000000..a365c728e6 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_chestplate_9.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_1.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_1.png new file mode 100644 index 0000000000..a2eab6108d Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_10.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_10.png new file mode 100644 index 0000000000..b97f8e30e5 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_10.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_2.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_2.png new file mode 100644 index 0000000000..158bef48bd Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_3.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_3.png new file mode 100644 index 0000000000..a978870950 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_3.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_4.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_4.png new file mode 100644 index 0000000000..f8863a8172 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_4.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_5.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_5.png new file mode 100644 index 0000000000..c633c32509 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_5.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_6.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_6.png new file mode 100644 index 0000000000..a85023b5ed Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_6.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_7.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_7.png new file mode 100644 index 0000000000..7c4911cf14 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_7.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_8.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_8.png new file mode 100644 index 0000000000..7dd034d895 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_8.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_9.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_9.png new file mode 100644 index 0000000000..370e9856b2 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_helmet_9.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_1.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_1.png new file mode 100644 index 0000000000..d7c502d5c3 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_10.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_10.png new file mode 100644 index 0000000000..946c8979f4 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_10.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_2.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_2.png new file mode 100644 index 0000000000..278e71a944 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_3.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_3.png new file mode 100644 index 0000000000..af23f0a4f2 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_3.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_4.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_4.png new file mode 100644 index 0000000000..fce7ca0ec5 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_4.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_5.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_5.png new file mode 100644 index 0000000000..c053168f37 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_5.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_6.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_6.png new file mode 100644 index 0000000000..c1ac51cd18 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_6.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_7.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_7.png new file mode 100644 index 0000000000..16a48f9e8d Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_7.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_8.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_8.png new file mode 100644 index 0000000000..8110bf636f Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_8.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_9.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_9.png new file mode 100644 index 0000000000..14f36171f5 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/diamond_leggings_9.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_1.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_1.png new file mode 100644 index 0000000000..12b0d881d3 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_10.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_10.png new file mode 100644 index 0000000000..600fb7af08 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_10.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_2.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_2.png new file mode 100644 index 0000000000..19d64e4252 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_3.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_3.png new file mode 100644 index 0000000000..420e514376 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_3.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_4.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_4.png new file mode 100644 index 0000000000..86b42d72c5 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_4.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_5.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_5.png new file mode 100644 index 0000000000..a3c44ad818 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_5.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_6.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_6.png new file mode 100644 index 0000000000..c466baa2b4 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_6.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_7.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_7.png new file mode 100644 index 0000000000..97ce89f259 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_7.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_8.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_8.png new file mode 100644 index 0000000000..3c56b2344b Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_8.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_9.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_9.png new file mode 100644 index 0000000000..3f2015c3ba Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_boots_9.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_1.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_1.png new file mode 100644 index 0000000000..f01335af3f Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_10.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_10.png new file mode 100644 index 0000000000..6cce2f2116 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_10.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_2.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_2.png new file mode 100644 index 0000000000..66d69e5f50 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_3.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_3.png new file mode 100644 index 0000000000..0799bb0f3a Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_3.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_4.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_4.png new file mode 100644 index 0000000000..0fcd64c5fe Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_4.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_5.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_5.png new file mode 100644 index 0000000000..7e9a31b881 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_5.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_6.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_6.png new file mode 100644 index 0000000000..1653898954 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_6.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_7.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_7.png new file mode 100644 index 0000000000..81f6d20cba Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_7.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_8.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_8.png new file mode 100644 index 0000000000..f0a62c47c6 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_8.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_9.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_9.png new file mode 100644 index 0000000000..6468a12905 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_chestplate_9.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_1.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_1.png new file mode 100644 index 0000000000..4e955badc5 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_10.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_10.png new file mode 100644 index 0000000000..f12920f0ae Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_10.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_2.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_2.png new file mode 100644 index 0000000000..aef36a98f4 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_3.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_3.png new file mode 100644 index 0000000000..eaaca8c7bc Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_3.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_4.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_4.png new file mode 100644 index 0000000000..f87813576a Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_4.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_5.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_5.png new file mode 100644 index 0000000000..3d79164dfc Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_5.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_6.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_6.png new file mode 100644 index 0000000000..fc55811749 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_6.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_7.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_7.png new file mode 100644 index 0000000000..5ddd6403ba Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_7.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_8.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_8.png new file mode 100644 index 0000000000..06cac87246 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_8.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_9.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_9.png new file mode 100644 index 0000000000..93c37a54c1 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_helmet_9.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_1.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_1.png new file mode 100644 index 0000000000..b7beb3a5ff Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_10.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_10.png new file mode 100644 index 0000000000..a3f0d9010d Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_10.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_2.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_2.png new file mode 100644 index 0000000000..202b069e7a Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_3.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_3.png new file mode 100644 index 0000000000..9cfed83cf1 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_3.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_4.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_4.png new file mode 100644 index 0000000000..22c39a16e1 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_4.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_5.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_5.png new file mode 100644 index 0000000000..464e7f58c0 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_5.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_6.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_6.png new file mode 100644 index 0000000000..7e2e460ec5 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_6.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_7.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_7.png new file mode 100644 index 0000000000..d190802479 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_7.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_8.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_8.png new file mode 100644 index 0000000000..0e6bd68962 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_8.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_9.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_9.png new file mode 100644 index 0000000000..6cfbabb12d Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/iron_leggings_9.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_1.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_1.png new file mode 100644 index 0000000000..5a91eac27d Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_10.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_10.png new file mode 100644 index 0000000000..eb44b9da60 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_10.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_2.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_2.png new file mode 100644 index 0000000000..4b8d341638 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_3.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_3.png new file mode 100644 index 0000000000..a5226c3d30 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_3.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_4.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_4.png new file mode 100644 index 0000000000..0373b7dc0e Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_4.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_5.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_5.png new file mode 100644 index 0000000000..391fe48f52 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_5.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_6.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_6.png new file mode 100644 index 0000000000..8f48ae18c1 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_6.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_7.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_7.png new file mode 100644 index 0000000000..1d4ea2dcc7 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_7.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_8.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_8.png new file mode 100644 index 0000000000..38dcbd61be Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_8.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_9.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_9.png new file mode 100644 index 0000000000..02ceddc978 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_boots_9.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_1.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_1.png new file mode 100644 index 0000000000..00a380aef1 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_10.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_10.png new file mode 100644 index 0000000000..9ae7b5f0d5 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_10.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_2.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_2.png new file mode 100644 index 0000000000..e3e9fae6f8 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_3.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_3.png new file mode 100644 index 0000000000..65db794631 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_3.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_4.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_4.png new file mode 100644 index 0000000000..c8448db070 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_4.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_5.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_5.png new file mode 100644 index 0000000000..2479196364 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_5.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_6.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_6.png new file mode 100644 index 0000000000..bb771e63ae Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_6.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_7.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_7.png new file mode 100644 index 0000000000..b71c7784ab Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_7.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_8.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_8.png new file mode 100644 index 0000000000..d2ec94a93f Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_8.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_9.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_9.png new file mode 100644 index 0000000000..962a7de82e Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_chestplate_9.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_1.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_1.png new file mode 100644 index 0000000000..46108d3d71 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_10.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_10.png new file mode 100644 index 0000000000..bc994b81a3 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_10.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_2.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_2.png new file mode 100644 index 0000000000..acfb3f1f7b Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_3.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_3.png new file mode 100644 index 0000000000..f5c6bf8d6d Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_3.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_4.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_4.png new file mode 100644 index 0000000000..7c9bb39952 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_4.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_5.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_5.png new file mode 100644 index 0000000000..cde3ca45c3 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_5.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_6.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_6.png new file mode 100644 index 0000000000..63ae655604 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_6.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_7.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_7.png new file mode 100644 index 0000000000..588ca976de Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_7.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_8.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_8.png new file mode 100644 index 0000000000..8c80af47e7 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_8.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_9.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_9.png new file mode 100644 index 0000000000..946f280854 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_helmet_9.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_1.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_1.png new file mode 100644 index 0000000000..224e725d42 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_10.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_10.png new file mode 100644 index 0000000000..7d4132535f Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_10.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_2.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_2.png new file mode 100644 index 0000000000..eff26f4696 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_3.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_3.png new file mode 100644 index 0000000000..e494cd5cb5 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_3.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_4.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_4.png new file mode 100644 index 0000000000..f6504808a0 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_4.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_5.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_5.png new file mode 100644 index 0000000000..7d77db1ea2 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_5.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_6.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_6.png new file mode 100644 index 0000000000..b09fe48ecc Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_6.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_7.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_7.png new file mode 100644 index 0000000000..2d34bb473a Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_7.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_8.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_8.png new file mode 100644 index 0000000000..5cf20e3e9b Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_8.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_9.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_9.png new file mode 100644 index 0000000000..0deee638e6 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/armor/netherite_leggings_9.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/elytra/broken_captains_wings.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/elytra/broken_captains_wings.png new file mode 100644 index 0000000000..72e127e1cc Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/elytra/broken_captains_wings.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/elytra/broken_ravaged_wings.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/elytra/broken_ravaged_wings.png new file mode 100644 index 0000000000..3ea017ef19 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/elytra/broken_ravaged_wings.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/elytra/captains_wings.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/elytra/captains_wings.png new file mode 100644 index 0000000000..49d3f52771 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/elytra/captains_wings.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/elytra/ravaged_wings.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/elytra/ravaged_wings.png new file mode 100644 index 0000000000..94dfca25d6 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/elytra/ravaged_wings.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/enderpuff.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/enderpuff.png new file mode 100644 index 0000000000..002c6ca2ac Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/enderpuff.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/ores/end_diamond.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/ores/end_diamond.png new file mode 100644 index 0000000000..6780490e97 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/ores/end_diamond.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/ores/end_emerald.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/ores/end_emerald.png new file mode 100644 index 0000000000..771ca183ca Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/ores/end_emerald.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/ores/end_gold_ingot.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/ores/end_gold_ingot.png new file mode 100644 index 0000000000..04deaf8f04 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/ores/end_gold_ingot.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/ores/end_iron_ingot.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/ores/end_iron_ingot.png new file mode 100644 index 0000000000..b3f50152c0 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/ores/end_iron_ingot.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_1.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_1.png new file mode 100644 index 0000000000..4a51b14251 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_10.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_10.png new file mode 100644 index 0000000000..ff03a0e10d Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_10.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_11.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_11.png new file mode 100644 index 0000000000..238573f2b1 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_11.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_12.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_12.png new file mode 100644 index 0000000000..8e60566f3a Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_12.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_13.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_13.png new file mode 100644 index 0000000000..3b60724c3f Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_13.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_14.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_14.png new file mode 100644 index 0000000000..d80f25e169 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_14.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_15.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_15.png new file mode 100644 index 0000000000..feaee8949f Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_15.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_16.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_16.png new file mode 100644 index 0000000000..9a17f9a095 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_16.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_17.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_17.png new file mode 100644 index 0000000000..74bc5a3b0a Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_17.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_18.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_18.png new file mode 100644 index 0000000000..84a8897410 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_18.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_19.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_19.png new file mode 100644 index 0000000000..dfbd574879 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_19.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_2.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_2.png new file mode 100644 index 0000000000..7441ca69b3 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_20.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_20.png new file mode 100644 index 0000000000..7af7de5c9b Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_20.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_3.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_3.png new file mode 100644 index 0000000000..c30e1ad951 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_3.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_4.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_4.png new file mode 100644 index 0000000000..cb1092d762 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_4.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_5.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_5.png new file mode 100644 index 0000000000..e1c6668871 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_5.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_5_e.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_5_e.png new file mode 100644 index 0000000000..c906d51f44 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_5_e.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_6.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_6.png new file mode 100644 index 0000000000..3f07b709ab Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_6.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_7.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_7.png new file mode 100644 index 0000000000..51688c4301 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_7.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_8.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_8.png new file mode 100644 index 0000000000..656b2ab82f Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_8.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_9.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_9.png new file mode 100644 index 0000000000..04d2820a6e Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/diamond_sword_9.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_1.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_1.png new file mode 100644 index 0000000000..ef02f129fb Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_10.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_10.png new file mode 100644 index 0000000000..e825ba23e4 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_10.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_11.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_11.png new file mode 100644 index 0000000000..fa11fe8c23 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_11.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_12.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_12.png new file mode 100644 index 0000000000..742b8c2d30 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_12.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_13.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_13.png new file mode 100644 index 0000000000..89a6918200 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_13.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_14.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_14.png new file mode 100644 index 0000000000..0db56f7cc8 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_14.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_15.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_15.png new file mode 100644 index 0000000000..3ab5b11338 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_15.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_16.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_16.png new file mode 100644 index 0000000000..a795c51639 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_16.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_17.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_17.png new file mode 100644 index 0000000000..a6c1729098 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_17.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_18.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_18.png new file mode 100644 index 0000000000..ae772e7c4c Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_18.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_19.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_19.png new file mode 100644 index 0000000000..7e09a50f40 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_19.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_2.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_2.png new file mode 100644 index 0000000000..e191315d14 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_20.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_20.png new file mode 100644 index 0000000000..e68a42ef92 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_20.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_3.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_3.png new file mode 100644 index 0000000000..0c5ba10462 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_3.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_4.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_4.png new file mode 100644 index 0000000000..ebcd0c8729 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_4.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_5.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_5.png new file mode 100644 index 0000000000..bd61be2e6f Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_5.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_5_e.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_5_e.png new file mode 100644 index 0000000000..330ba9cb01 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_5_e.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_6.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_6.png new file mode 100644 index 0000000000..0164c2023c Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_6.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_7.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_7.png new file mode 100644 index 0000000000..a795c51639 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_7.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_8.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_8.png new file mode 100644 index 0000000000..f46067f787 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_8.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_9.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_9.png new file mode 100644 index 0000000000..48f65e0b02 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/iron_sword_9.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_1.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_1.png new file mode 100644 index 0000000000..7d48ac029f Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_10.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_10.png new file mode 100644 index 0000000000..bcb98df825 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_10.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_11.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_11.png new file mode 100644 index 0000000000..5a33f81ecd Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_11.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_12.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_12.png new file mode 100644 index 0000000000..1a0870aace Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_12.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_13.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_13.png new file mode 100644 index 0000000000..a1ca41dcac Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_13.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_14.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_14.png new file mode 100644 index 0000000000..efadc633e5 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_14.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_15.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_15.png new file mode 100644 index 0000000000..465c4b4927 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_15.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_16.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_16.png new file mode 100644 index 0000000000..8c39a3ac6f Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_16.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_17.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_17.png new file mode 100644 index 0000000000..fb9cffc3b4 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_17.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_18.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_18.png new file mode 100644 index 0000000000..4a5583de0c Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_18.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_19.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_19.png new file mode 100644 index 0000000000..d961ec9fa2 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_19.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_2.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_2.png new file mode 100644 index 0000000000..eb966d286a Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_20.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_20.png new file mode 100644 index 0000000000..0f96fdcb50 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_20.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_3.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_3.png new file mode 100644 index 0000000000..a8d7e205ea Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_3.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_4.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_4.png new file mode 100644 index 0000000000..9dafe6c08c Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_4.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_5.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_5.png new file mode 100644 index 0000000000..cbb91e7599 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_5.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_5_e.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_5_e.png new file mode 100644 index 0000000000..936506c1f3 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_5_e.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_6.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_6.png new file mode 100644 index 0000000000..1b6d354211 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_6.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_7.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_7.png new file mode 100644 index 0000000000..f2f1374a2c Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_7.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_8.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_8.png new file mode 100644 index 0000000000..c82cc97dce Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_8.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_9.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_9.png new file mode 100644 index 0000000000..7a59de9661 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/swords/netherite_sword_9.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_1.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_1.png new file mode 100644 index 0000000000..f9f884df53 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_10.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_10.png new file mode 100644 index 0000000000..d23a95b9f2 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_10.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_2.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_2.png new file mode 100644 index 0000000000..975a379d88 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_3.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_3.png new file mode 100644 index 0000000000..a782c47389 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_3.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_4.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_4.png new file mode 100644 index 0000000000..cf495fbb7e Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_4.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_5.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_5.png new file mode 100644 index 0000000000..e37cc854d8 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_5.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_6.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_6.png new file mode 100644 index 0000000000..b8635a6b3a Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_6.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_7.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_7.png new file mode 100644 index 0000000000..2f217f10e1 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_7.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_8.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_8.png new file mode 100644 index 0000000000..be5d713612 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_8.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_9.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_9.png new file mode 100644 index 0000000000..80c9a8fe7f Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_pickaxe_9.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_1.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_1.png new file mode 100644 index 0000000000..e2a95f83d1 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_10.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_10.png new file mode 100644 index 0000000000..2235b53b6b Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_10.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_2.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_2.png new file mode 100644 index 0000000000..dee428eec3 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_3.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_3.png new file mode 100644 index 0000000000..24395e8f54 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_3.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_4.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_4.png new file mode 100644 index 0000000000..27692b65a7 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_4.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_5.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_5.png new file mode 100644 index 0000000000..9200744168 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_5.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_6.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_6.png new file mode 100644 index 0000000000..530b4c3ec9 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_6.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_7.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_7.png new file mode 100644 index 0000000000..fdb6f6da16 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_7.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_8.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_8.png new file mode 100644 index 0000000000..f5f1e2f740 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_8.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_9.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_9.png new file mode 100644 index 0000000000..baff547c9d Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/diamond_shovel_9.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_1.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_1.png new file mode 100644 index 0000000000..87a3d52d43 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_10.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_10.png new file mode 100644 index 0000000000..4fc1b6909a Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_10.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_2.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_2.png new file mode 100644 index 0000000000..40d8a817dd Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_3.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_3.png new file mode 100644 index 0000000000..b8db70ae87 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_3.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_4.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_4.png new file mode 100644 index 0000000000..9a860da64e Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_4.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_5.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_5.png new file mode 100644 index 0000000000..4617bf1f10 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_5.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_6.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_6.png new file mode 100644 index 0000000000..a7f3905697 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_6.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_7.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_7.png new file mode 100644 index 0000000000..5c97e26c0a Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_7.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_8.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_8.png new file mode 100644 index 0000000000..07e1d189bf Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_8.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_9.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_9.png new file mode 100644 index 0000000000..bcd8c4973c Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_pickaxe_9.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_1.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_1.png new file mode 100644 index 0000000000..6bc5b29566 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_10.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_10.png new file mode 100644 index 0000000000..57b4bc9fbd Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_10.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_2.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_2.png new file mode 100644 index 0000000000..e2f1054bf4 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_3.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_3.png new file mode 100644 index 0000000000..a250071dc9 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_3.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_4.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_4.png new file mode 100644 index 0000000000..761f1b4f48 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_4.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_5.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_5.png new file mode 100644 index 0000000000..977704406d Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_5.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_6.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_6.png new file mode 100644 index 0000000000..34eb4b7d84 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_6.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_7.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_7.png new file mode 100644 index 0000000000..9ffed9fa2a Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_7.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_8.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_8.png new file mode 100644 index 0000000000..631b389e1a Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_8.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_9.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_9.png new file mode 100644 index 0000000000..e99b8d81fa Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/iron_shovel_9.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_1.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_1.png new file mode 100644 index 0000000000..9cdf27a1b3 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_10.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_10.png new file mode 100644 index 0000000000..8528ff3eae Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_10.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_2.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_2.png new file mode 100644 index 0000000000..fc3c30b7a0 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_3.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_3.png new file mode 100644 index 0000000000..31e277d7ec Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_3.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_4.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_4.png new file mode 100644 index 0000000000..89491564ac Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_4.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_5.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_5.png new file mode 100644 index 0000000000..13ee98aa7e Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_5.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_6.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_6.png new file mode 100644 index 0000000000..527638c75b Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_6.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_7.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_7.png new file mode 100644 index 0000000000..2dc2b3e01e Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_7.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_8.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_8.png new file mode 100644 index 0000000000..c3942574d9 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_8.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_9.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_9.png new file mode 100644 index 0000000000..e183fad22c Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_pickaxe_9.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_1.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_1.png new file mode 100644 index 0000000000..884d9ee475 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_1.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_10.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_10.png new file mode 100644 index 0000000000..1c13e051e6 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_10.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_2.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_2.png new file mode 100644 index 0000000000..4aadb594f2 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_2.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_3.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_3.png new file mode 100644 index 0000000000..3975876c06 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_3.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_4.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_4.png new file mode 100644 index 0000000000..d6d48c08f7 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_4.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_5.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_5.png new file mode 100644 index 0000000000..1693c6db9c Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_5.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_6.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_6.png new file mode 100644 index 0000000000..75f19bc38f Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_6.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_7.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_7.png new file mode 100644 index 0000000000..2f2268a822 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_7.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_8.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_8.png new file mode 100644 index 0000000000..8dee695590 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_8.png differ diff --git a/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_9.png b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_9.png new file mode 100644 index 0000000000..44bcf93c55 Binary files /dev/null and b/gm4_end_fishing/assets/gm4_end_fishing/textures/item/tools/netherite_shovel_9.png differ diff --git a/gm4_end_fishing/assets/translations.csv b/gm4_end_fishing/assets/translations.csv new file mode 100644 index 0000000000..93ff6eb895 --- /dev/null +++ b/gm4_end_fishing/assets/translations.csv @@ -0,0 +1,81 @@ +key,en_us +item.gm4.end_fishing.ravaged_wings,Ravaged Wings +item.gm4.enderpuff,Enderpuff +text.gm4.end_city_armor.1,Lost on End City moving day +text.gm4.end_city_armor.2,Forged by Seppo Ilmarinen +text.gm4.end_city_armor.3,Belongs to Achilles +text.gm4.end_city_armor.4,Made by Wayland the Smith +text.gm4.end_city_armor.5,Worn during the battle of Ender Ender +text.gm4.end_city_armor.6.1,This thing's been rotting in +text.gm4.end_city_armor.6.2,the void for at least a century. +text.gm4.end_city_armor.7,Passed down over many generations +text.gm4.end_city_armor.8,Wear this to become invisible to nobody! +text.gm4.end_city_armor.9.1,I promise you can fly while wearing this. +text.gm4.end_city_armor.9.2,"Trust me, just jump into the void." +text.gm4.end_city_armor.10.1,With this you shall be immortal! +text.gm4.end_city_armor.10.2,Or is it immoral? I can't remember. +text.gm4.end_city_horse_armor.1,That's some good barding! +text.gm4.end_city_horse_armor.2.1,There's a horse somewhere +text.gm4.end_city_horse_armor.2.2,that lost this armour. +text.gm4.end_city_horse_armor.3.1,Floating horses must be +text.gm4.end_city_horse_armor.3.2,"a thing somewhere, right?" +text.gm4.end_city_horse_armor.4,Too bad there's no horse weapons. +text.gm4.end_city_horse_armor.5,Made with the finest materials known to man +text.gm4.end_city_ore.1,The riches of the vast void +text.gm4.end_city_ore.2,Dropped from a nearby End City +text.gm4.end_city_ore.3,There's so much treasure down there! +text.gm4.end_city_ore.4,Cursed by the ancient Goddess +text.gm4.end_city_ore.5,This isn't real. It's fake treasure. +text.gm4.end_city_ore.6,Cha-Ching! We're going to be rich! +text.gm4.end_city_sword.1,Forged in a dragon's breath +text.gm4.end_city_sword.2.1,"Life kills life all the time, so the Goddess" +text.gm4.end_city_sword.2.2,sacrifices herself for her own animal. +text.gm4.end_city_sword.3,Blessed with Hylia's power +text.gm4.end_city_sword.4,Forged by Muramasa +text.gm4.end_city_sword.5,Powered by the living crystal within +text.gm4.end_city_sword.6,"Used to decapitate the Gorgon, Medusa" +text.gm4.end_city_sword.7.1,This is believed to be one of the +text.gm4.end_city_sword.7.2,finest Japanese swords ever made. +text.gm4.end_city_sword.8,Used at the Battle of the Trench +text.gm4.end_city_sword.9,Removed from the Garden of Eden +text.gm4.end_city_sword.10,Used to kill the dragon Fafnir +text.gm4.end_city_sword.11,Snicker-snack! +text.gm4.end_city_sword.12.1,Created by husband and wife magicians +text.gm4.end_city_sword.12.2,of the ancient Bön tradition +text.gm4.end_city_sword.13,Belongs to Roland +text.gm4.end_city_sword.14.1,"If found, please return" +text.gm4.end_city_sword.14.2,to William Wallace. +text.gm4.end_city_sword.15,Reforged from the shards of Narsil +text.gm4.end_city_sword.16,Forged by the Iron Sisters +text.gm4.end_city_sword.17.1,Used to lead the revolutionary +text.gm4.end_city_sword.17.2,army against the Telmarines +text.gm4.end_city_sword.18,Can only be wielded by a true Gryffindor +text.gm4.end_city_sword.19,Sought by Thrax +text.gm4.end_city_sword.20,Wielded by Lion-O +text.gm4.end_city_tool.1.1,It's been said only those +text.gm4.end_city_tool.1.2,who are worthy can wield this tool. +text.gm4.end_city_tool.2.1,Once there was a man named +text.gm4.end_city_tool.2.2,Tubal-cain who made this tool. +text.gm4.end_city_tool.3,"If found, please return to Hephaestus." +text.gm4.end_city_tool.4.1,This is actually a really hard +text.gm4.end_city_tool.4.2,piece of bread. Don't tell anyone. +text.gm4.end_city_tool.5,Found in the Valley of the Fallen Kings +text.gm4.end_city_tool.6.1,Throw it. Maybe it'll come back! +text.gm4.end_city_tool.6.2,"No, it's not a hammer, sadly." +text.gm4.end_city_tool.7,"Thunk, Thunk, Thunk!" +text.gm4.end_city_tool.8.1,Forged by the Leader of +text.gm4.end_city_tool.8.2,the Endermen Rebellion +text.gm4.end_city_tool.9,It's not a very good shield. +text.gm4.end_city_tool.10.1,Where'd you find this? It's been +text.gm4.end_city_tool.10.2,floating in the end for over a decade! +text.gm4.end_ship_elytra.10.1,Nobody imagined the Captain's lost +text.gm4.end_ship_elytra.10.2,"wings would be seen again, ever." +advancement.gm4.end_fishing.title,I Wonder What's Down There? +advancement.gm4.end_fishing.description,Catch some loot from the end void +advancement.gm4.end_fishing_phantom.title,That's Not a Fish! +advancement.gm4.end_fishing_phantom.description,Fish up a phantom from the end void +advancement.gm4.end_fishing_swords.title,Master of the Swords +advancement.gm4.end_fishing_swords.description,Retrieve all of the lost swords from the void +text.gm4.guidebook.module_desc.end_fishing,"Catch rare loot by fishing in the end void! The void holds many riches, from End City loot and Elytra to weapons that once belonged to explorers time forgot, collect them all!" +text.gm4.guidebook.end_fishing.description,Casting a fishing rod into the end void will allow one to fish up loot from the void.\n\nLoot is biome dependent. +text.gm4.guidebook.end_fishing.end_phantom,"End Phantoms can be fished up from the end void.\n\nThey are larger and stronger than normal phantoms, but have a chance to drop a broken elytra upon death." diff --git a/gm4_end_fishing/beet.yaml b/gm4_end_fishing/beet.yaml index 62b0211766..24b485e7eb 100644 --- a/gm4_end_fishing/beet.yaml +++ b/gm4_end_fishing/beet.yaml @@ -5,7 +5,12 @@ version: 1.3.X data_pack: load: . +resource_pack: + load: . + pipeline: + - register_model_data + - generate_optifine - gm4.plugins.extend.module - gm4.plugins.include.lib_player_heads @@ -17,6 +22,38 @@ meta: schedule_loops: - main - tick + model_data: + # swords, armor, and tools are registered by plugin + - template: generated + item: player_head + reference: item/enderpuff + - item: elytra + reference: item/captains_wings + model: + - predicate: {broken: 0} + model: item/elytra/captains_wings + - predicate: {broken: 1} + model: item/elytra/broken_captains_wings + - item: elytra + reference: item/ravaged_wings + model: + - predicate: {broken: 0} + model: item/elytra/ravaged_wings + - predicate: {broken: 1} + model: item/elytra/broken_ravaged_wings + - item: fishing_rod + reference: gui/advancement/end_fishing + template: advancement + - item: diamond_sword + reference: gui/advancement/end_fishing_swords + template: + name: advancement + forward: item/swords/diamond_sword_12 + - item: elytra + reference: gui/advancement/end_fishing_phantom + template: + name: advancement + forward: item/elytra/broken_ravaged_wings website: description: Catch rare loot by fishing in the end void! The void holds many riches, from End City loot and Elytra to weapons that once belonged to explorers time forgot, collect them all! recommended: diff --git a/gm4_end_fishing/data/gm4/advancements/end_fishing.json b/gm4_end_fishing/data/gm4/advancements/end_fishing.json index 97130b3d45..8ee73cf3dd 100644 --- a/gm4_end_fishing/data/gm4/advancements/end_fishing.json +++ b/gm4_end_fishing/data/gm4/advancements/end_fishing.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "fishing_rod", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/end_fishing'}" }, "title": { "translate": "advancement.gm4.end_fishing.title", diff --git a/gm4_end_fishing/data/gm4/advancements/end_fishing_phantom.json b/gm4_end_fishing/data/gm4/advancements/end_fishing_phantom.json index b1b8f12d75..dba6abf7cf 100644 --- a/gm4_end_fishing/data/gm4/advancements/end_fishing_phantom.json +++ b/gm4_end_fishing/data/gm4/advancements/end_fishing_phantom.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "elytra", - "nbt": "{CustomModelData:3420001,Damage:432}" + "nbt": "{CustomModelData:'gui/advancement/end_fishing_phantom',Damage:432}" }, "title": { "translate": "advancement.gm4.end_fishing_phantom.title", @@ -10,7 +10,7 @@ }, "description": { "translate": "advancement.gm4.end_fishing_phantom.description", - "fallback": "Perhaps it's a manta ray", + "fallback": "Fish up a phantom from the end void", "color": "gray" } }, diff --git a/gm4_end_fishing/data/gm4/advancements/end_fishing_swords.json b/gm4_end_fishing/data/gm4/advancements/end_fishing_swords.json index 5632285a5d..faf652de92 100644 --- a/gm4_end_fishing/data/gm4/advancements/end_fishing_swords.json +++ b/gm4_end_fishing/data/gm4/advancements/end_fishing_swords.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "diamond_sword", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/end_fishing_swords'}" }, "title": { "translate": "advancement.gm4.end_fishing_swords.title", diff --git a/gm4_end_fishing/data/gm4_end_fishing/functions/init.mcfunction b/gm4_end_fishing/data/gm4_end_fishing/functions/init.mcfunction index 061c7cd201..becd32c05b 100644 --- a/gm4_end_fishing/data/gm4_end_fishing/functions/init.mcfunction +++ b/gm4_end_fishing/data/gm4_end_fishing/functions/init.mcfunction @@ -17,9 +17,9 @@ scoreboard players set #10000 gm4_ef_data 10000 # register skulls # old texture (to be removed in 2022) -execute unless data storage gm4_player_heads:register heads[{id:"gm4_end_fishing:enderpuff/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_end_fishing:enderpuff/v0",value:'eyJ0aW1lc3RhbXAiOjE1NjQ5NDE3MTgzMjYsInByb2ZpbGVJZCI6IjkxZjA0ZmU5MGYzNjQzYjU4ZjIwZTMzNzVmODZkMzllIiwicHJvZmlsZU5hbWUiOiJTdG9ybVN0b3JteSIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjcxYzdlYjcxMjAwZGQ5ZGU1YTI3OWRmMTg2YjNjYjdiMmI0NTk4YjFiNzQ0MzI0YmQyNTQzMTZhZjYxZTE0MiJ9fX0=',item:{CustomModelData:3420014,gm4_end_fishing:{enderpuff:1b},display:{Name:'{"translate":"item.gm4.enderpuff","fallback":"Enderpuff","italic":false}'}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_end_fishing:enderpuff/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_end_fishing:enderpuff/v0",value:'eyJ0aW1lc3RhbXAiOjE1NjQ5NDE3MTgzMjYsInByb2ZpbGVJZCI6IjkxZjA0ZmU5MGYzNjQzYjU4ZjIwZTMzNzVmODZkMzllIiwicHJvZmlsZU5hbWUiOiJTdG9ybVN0b3JteSIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjcxYzdlYjcxMjAwZGQ5ZGU1YTI3OWRmMTg2YjNjYjdiMmI0NTk4YjFiNzQ0MzI0YmQyNTQzMTZhZjYxZTE0MiJ9fX0=',item:{CustomModelData:"item/enderpuff",gm4_end_fishing:{enderpuff:1b},display:{Name:'{"translate":"item.gm4.enderpuff","fallback":"Enderpuff","italic":false}'}}} # new texture -execute unless data storage gm4_player_heads:register heads[{id:"gm4_end_fishing:enderpuff/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_end_fishing:enderpuff/v1",value:'ewogICJ0aW1lc3RhbXAiIDogMTYxNzM3NjU5NjgxNiwKICAicHJvZmlsZUlkIiA6ICI4NDMwMDNlM2JlNTY0M2Q5OTQxMTBkMzJhMzU2MTk2MCIsCiAgInByb2ZpbGVOYW1lIiA6ICJHYWJvTWNHYW1lciIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9lYjIzNTI3MWNhNTZlOGExYTQzMWViMWU2NWNlODIwYWE3ZTUwMWYwNmMxZjEzNTZhY2ViN2U4NjJmMTRhMjgiCiAgICB9CiAgfQp9',item:{CustomModelData:3420014,gm4_end_fishing:{enderpuff:1b},display:{Name:'{"translate":"item.gm4.enderpuff","fallback":"Enderpuff","italic":false}'}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_end_fishing:enderpuff/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_end_fishing:enderpuff/v1",value:'ewogICJ0aW1lc3RhbXAiIDogMTYxNzM3NjU5NjgxNiwKICAicHJvZmlsZUlkIiA6ICI4NDMwMDNlM2JlNTY0M2Q5OTQxMTBkMzJhMzU2MTk2MCIsCiAgInByb2ZpbGVOYW1lIiA6ICJHYWJvTWNHYW1lciIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9lYjIzNTI3MWNhNTZlOGExYTQzMWViMWU2NWNlODIwYWE3ZTUwMWYwNmMxZjEzNTZhY2ViN2U4NjJmMTRhMjgiCiAgICB9CiAgfQp9',item:{CustomModelData:"item/enderpuff",gm4_end_fishing:{enderpuff:1b},display:{Name:'{"translate":"item.gm4.enderpuff","fallback":"Enderpuff","italic":false}'}}} execute unless score end_fishing gm4_modules matches 1 run data modify storage gm4:log queue append value {type:"install",module:"End Fishing"} execute unless score end_fishing gm4_earliest_version < end_fishing gm4_modules run scoreboard players operation end_fishing gm4_earliest_version = end_fishing gm4_modules diff --git a/gm4_end_fishing/data/gm4_end_fishing/guidebook/end_fishing.json b/gm4_end_fishing/data/gm4_end_fishing/guidebook/end_fishing.json index a8e20f142f..6e296c390b 100644 --- a/gm4_end_fishing/data/gm4_end_fishing/guidebook/end_fishing.json +++ b/gm4_end_fishing/data/gm4_end_fishing/guidebook/end_fishing.json @@ -3,8 +3,7 @@ "name": "End Fishing", "module_type": "module", "icon": { - "item": "minecraft:fishing_rod", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:fishing_rod" }, "criteria": { "enter_end_gateway": { diff --git a/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/end_city_treasure/armor/generate.json b/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/end_city_treasure/armor/generate.json index eceab12495..9d98881bbd 100644 --- a/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/end_city_treasure/armor/generate.json +++ b/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/end_city_treasure/armor/generate.json @@ -21,7 +21,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420010}" + "tag": "{CustomModelData:'item/end_city_armor_1'}" } ] }, @@ -43,7 +43,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420011}" + "tag": "{CustomModelData:'item/end_city_armor_2'}" } ] }, @@ -65,7 +65,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420012}" + "tag": "{CustomModelData:'item/end_city_armor_3'}" } ] }, @@ -87,7 +87,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420013}" + "tag": "{CustomModelData:'item/end_city_armor_4'}" } ] }, @@ -109,7 +109,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420014}" + "tag": "{CustomModelData:'item/end_city_armor_5'}" } ] }, @@ -137,7 +137,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420015}" + "tag": "{CustomModelData:'item/end_city_armor_6'}" } ] }, @@ -159,7 +159,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420016}" + "tag": "{CustomModelData:'item/end_city_armor_7'}" } ] }, @@ -181,7 +181,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420017}" + "tag": "{CustomModelData:'item/end_city_armor_8'}" } ] }, @@ -209,7 +209,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420018}" + "tag": "{CustomModelData:'item/end_city_armor_9'}" } ] }, @@ -237,7 +237,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420019}" + "tag": "{CustomModelData:'item/end_city_armor_10'}" } ] } diff --git a/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/end_city_treasure/horse_armor/generate.json b/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/end_city_treasure/horse_armor/generate.json index ede9984083..de6124512c 100644 --- a/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/end_city_treasure/horse_armor/generate.json +++ b/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/end_city_treasure/horse_armor/generate.json @@ -21,7 +21,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420010}" + "tag": "{CustomModelData:'item/end_city_horse_armor_1'}" } ] }, @@ -49,7 +49,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420011}" + "tag": "{CustomModelData:'item/end_city_horse_armor_2'}" } ] }, @@ -77,7 +77,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420012}" + "tag": "{CustomModelData:'item/end_city_horse_armor_3'}" } ] }, @@ -99,7 +99,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420013}" + "tag": "{CustomModelData:'item/end_city_horse_armor_4'}" } ] }, @@ -121,7 +121,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420014}" + "tag": "{CustomModelData:'item/end_city_horse_armor_5'}" } ] } diff --git a/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/end_city_treasure/ore/generate.json b/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/end_city_treasure/ore/generate.json index 0388041994..90a9bf41b2 100644 --- a/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/end_city_treasure/ore/generate.json +++ b/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/end_city_treasure/ore/generate.json @@ -21,7 +21,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420010}" + "tag": "{CustomModelData:'item/end_city_ore_1'}" } ] }, @@ -43,7 +43,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420011}" + "tag": "{CustomModelData:'item/end_city_ore_2'}" } ] }, @@ -65,7 +65,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420012}" + "tag": "{CustomModelData:'item/end_city_ore_3'}" } ] }, @@ -87,7 +87,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420013}" + "tag": "{CustomModelData:'item/end_city_ore_4'}" } ] }, @@ -109,7 +109,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420014}" + "tag": "{CustomModelData:'item/end_city_ore_5'}" } ] }, @@ -131,7 +131,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420015}" + "tag": "{CustomModelData:'item/end_city_ore_6'}" } ] } diff --git a/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/end_city_treasure/sword/generate.json b/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/end_city_treasure/sword/generate.json index ba95db41d6..14a1675b94 100644 --- a/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/end_city_treasure/sword/generate.json +++ b/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/end_city_treasure/sword/generate.json @@ -21,7 +21,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420010,gm4_end_fishing:{end_city_sword:1b}}" + "tag": "{CustomModelData:'item/end_city_swords_1',gm4_end_fishing:{end_city_sword:1b}}" } ] }, @@ -49,7 +49,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420011,gm4_end_fishing:{end_city_sword:2b}}" + "tag": "{CustomModelData:'item/end_city_swords_2',gm4_end_fishing:{end_city_sword:2b}}" } ] }, @@ -71,7 +71,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420012,gm4_end_fishing:{end_city_sword:3b}}" + "tag": "{CustomModelData:'item/end_city_swords_3',gm4_end_fishing:{end_city_sword:3b}}" } ] }, @@ -93,7 +93,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420013,gm4_end_fishing:{end_city_sword:4b}}" + "tag": "{CustomModelData:'item/end_city_swords_4',gm4_end_fishing:{end_city_sword:4b}}" } ] }, @@ -115,7 +115,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420014,gm4_end_fishing:{end_city_sword:5b}}" + "tag": "{CustomModelData:'item/end_city_swords_5',gm4_end_fishing:{end_city_sword:5b}}" } ] }, @@ -137,7 +137,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420015,gm4_end_fishing:{end_city_sword:6b}}" + "tag": "{CustomModelData:'item/end_city_swords_6',gm4_end_fishing:{end_city_sword:6b}}" } ] }, @@ -165,7 +165,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420016,gm4_end_fishing:{end_city_sword:7b}}" + "tag": "{CustomModelData:'item/end_city_swords_7',gm4_end_fishing:{end_city_sword:7b}}" } ] }, @@ -187,7 +187,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420017,gm4_end_fishing:{end_city_sword:8b}}" + "tag": "{CustomModelData:'item/end_city_swords_8',gm4_end_fishing:{end_city_sword:8b}}" } ] }, @@ -209,7 +209,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420018,gm4_end_fishing:{end_city_sword:9b}}" + "tag": "{CustomModelData:'item/end_city_swords_9',gm4_end_fishing:{end_city_sword:9b}}" } ] }, @@ -231,7 +231,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420019,gm4_end_fishing:{end_city_sword:10b}}" + "tag": "{CustomModelData:'item/end_city_swords_10',gm4_end_fishing:{end_city_sword:10b}}" } ] }, @@ -253,7 +253,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420020,gm4_end_fishing:{end_city_sword:11b}}" + "tag": "{CustomModelData:'item/end_city_swords_11',gm4_end_fishing:{end_city_sword:11b}}" } ] }, @@ -281,7 +281,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420021,gm4_end_fishing:{end_city_sword:12b}}" + "tag": "{CustomModelData:'item/end_city_swords_12',gm4_end_fishing:{end_city_sword:12b}}" } ] }, @@ -303,7 +303,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420022,gm4_end_fishing:{end_city_sword:13b}}" + "tag": "{CustomModelData:'item/end_city_swords_13',gm4_end_fishing:{end_city_sword:13b}}" } ] }, @@ -331,7 +331,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420023,gm4_end_fishing:{end_city_sword:14b}}" + "tag": "{CustomModelData:'item/end_city_swords_14',gm4_end_fishing:{end_city_sword:14b}}" } ] }, @@ -353,7 +353,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420024,gm4_end_fishing:{end_city_sword:15b}}" + "tag": "{CustomModelData:'item/end_city_swords_15',gm4_end_fishing:{end_city_sword:15b}}" } ] }, @@ -375,7 +375,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420025,gm4_end_fishing:{end_city_sword:16b}}" + "tag": "{CustomModelData:'item/end_city_swords_16',gm4_end_fishing:{end_city_sword:16b}}" } ] }, @@ -403,7 +403,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420026,gm4_end_fishing:{end_city_sword:17b}}" + "tag": "{CustomModelData:'item/end_city_swords_17',gm4_end_fishing:{end_city_sword:17b}}" } ] }, @@ -425,7 +425,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420027,gm4_end_fishing:{end_city_sword:18b}}" + "tag": "{CustomModelData:'item/end_city_swords_18',gm4_end_fishing:{end_city_sword:18b}}" } ] }, @@ -447,7 +447,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420028,gm4_end_fishing:{end_city_sword:19b}}" + "tag": "{CustomModelData:'item/end_city_swords_19',gm4_end_fishing:{end_city_sword:19b}}" } ] }, @@ -469,7 +469,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420029,gm4_end_fishing:{end_city_sword:20b}}" + "tag": "{CustomModelData:'item/end_city_swords_20',gm4_end_fishing:{end_city_sword:20b}}" } ] } diff --git a/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/end_city_treasure/tool/generate.json b/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/end_city_treasure/tool/generate.json index 22abd33c61..2b2e2c7b05 100644 --- a/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/end_city_treasure/tool/generate.json +++ b/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/end_city_treasure/tool/generate.json @@ -27,7 +27,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420010}" + "tag": "{CustomModelData:'item/end_city_tools_1'}" } ] }, @@ -55,7 +55,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420011}" + "tag": "{CustomModelData:'item/end_city_tools_2'}" } ] }, @@ -77,7 +77,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420012}" + "tag": "{CustomModelData:'item/end_city_tools_3'}" } ] }, @@ -105,7 +105,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420013}" + "tag": "{CustomModelData:'item/end_city_tools_4'}" } ] }, @@ -127,7 +127,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420014}" + "tag": "{CustomModelData:'item/end_city_tools_5'}" } ] }, @@ -155,7 +155,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420015}" + "tag": "{CustomModelData:'item/end_city_tools_6'}" } ] }, @@ -177,7 +177,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420016}" + "tag": "{CustomModelData:'item/end_city_tools_7'}" } ] }, @@ -205,7 +205,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420017}" + "tag": "{CustomModelData:'item/end_city_tools_8'}" } ] }, @@ -227,7 +227,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420018}" + "tag": "{CustomModelData:'item/end_city_tools_9'}" } ] }, @@ -255,7 +255,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420019}" + "tag": "{CustomModelData:'item/end_city_tools_10'}" } ] } diff --git a/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/scattered_treasure.json b/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/scattered_treasure.json index 65a9b58c4f..2c11a2a967 100644 --- a/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/scattered_treasure.json +++ b/gm4_end_fishing/data/gm4_end_fishing/loot_tables/gameplay/fish/scattered_treasure.json @@ -128,7 +128,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420010}" + "tag": "{CustomModelData:'item/captains_wings'}" }, { "function": "minecraft:set_lore", diff --git a/gm4_end_fishing/data/gm4_end_fishing/loot_tables/items/enderpuff.json b/gm4_end_fishing/data/gm4_end_fishing/loot_tables/items/enderpuff.json index ad3b6c868a..3f8826c668 100644 --- a/gm4_end_fishing/data/gm4_end_fishing/loot_tables/items/enderpuff.json +++ b/gm4_end_fishing/data/gm4_end_fishing/loot_tables/items/enderpuff.json @@ -18,7 +18,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420014,gm4_end_fishing:{enderpuff:1b},SkullOwner:\"$enderpuff\"}" + "tag": "{CustomModelData:'item/enderpuff',gm4_end_fishing:{enderpuff:1b},SkullOwner:\"$enderpuff\"}" } ] } diff --git a/gm4_end_fishing/data/gm4_end_fishing/loot_tables/items/ravaged_wings.json b/gm4_end_fishing/data/gm4_end_fishing/loot_tables/items/ravaged_wings.json index 5967e7561f..9b6c91c3e0 100644 --- a/gm4_end_fishing/data/gm4_end_fishing/loot_tables/items/ravaged_wings.json +++ b/gm4_end_fishing/data/gm4_end_fishing/loot_tables/items/ravaged_wings.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420011}" + "tag": "{CustomModelData:'item/ravaged_wings'}" }, { "function": "minecraft:set_name", diff --git a/gm4_end_fishing/generate_optifine.py b/gm4_end_fishing/generate_optifine.py new file mode 100644 index 0000000000..1ca203b144 --- /dev/null +++ b/gm4_end_fishing/generate_optifine.py @@ -0,0 +1,14 @@ +from beet import Context +from beet.contrib.optifine import OptifineProperties +from itertools import product + +def beet_default(ctx: Context): + """generates the .properties files needed for optifine retextured armor""" + + for material, i, part in product(["diamond", "iron", "netherite"], range(1,10+1), ["boots", "leggings", "chestplate", "helmet"]): + ctx.assets[OptifineProperties][f"gm4_end_fishing:cit/{material}_{part}_{i}"] = OptifineProperties("\n".join([ + "type=armor", + f"matchItems={material}_{part}", + f"texture.{material}_layer_{1+(part=='leggings')}={material}_{i}_layer_{1+(part=='leggings')}", + f"nbt.CustomModelData=$item/end_city_armor_{i}" + ])) \ No newline at end of file diff --git a/gm4_end_fishing/register_model_data.py b/gm4_end_fishing/register_model_data.py new file mode 100644 index 0000000000..849c67be4a --- /dev/null +++ b/gm4_end_fishing/register_model_data.py @@ -0,0 +1,83 @@ +from beet import Context, Model +from itertools import product + +MATERIALS = ["diamond", "iron", "netherite"] +ARMORS = ["helmet", "chestplate", "leggings", "boots"] +TOOLS = ["pickaxe", "shovel"] +ORES = ["diamond", "emerald", "gold_ingot", "iron_ingot"] + +def beet_default(ctx: Context): + """Registered repetitive model_data config options for fishable items""" + model_data_reg = ctx.meta["gm4"].setdefault("model_data", []) + for i in range(1,10+1): + item_models: dict[str,str] = {} + for material, armor in product(MATERIALS, ARMORS): + ctx.assets.models[f"gm4_end_fishing:item/armor/{material}_{armor}_{i}"] = Model({ + "parent": "item/generated", + "textures": { + "layer0": f"gm4_end_fishing:item/armor/{material}_{armor}_{i}" + } + }) + item_models.update({f"{material}_{armor}": f"item/armor/{material}_{armor}_{i}"}) + model_data_reg.append({ + "item": list(item_models.keys()), + "model": item_models, + "reference": f"item/end_city_armor_{i}" + }) + + for i in range(1,10+1): + item_models = {} + for material, tool in product(MATERIALS, TOOLS): + ctx.assets.models[f"gm4_end_fishing:item/tools/{material}_{tool}_{i}"] = Model({ + "parent": "item/handheld", + "textures": { + "layer0": f"gm4_end_fishing:item/tools/{material}_{tool}_{i}" + } + }) + item_models.update({f"{material}_{tool}": f"item/tools/{material}_{tool}_{i}"}) + model_data_reg.append({ + "item": list(item_models.keys()), + "model": item_models, + "reference": f"item/end_city_tools_{i}" + }) + + for i in range(1,20+1): + item_models = {} + for material in MATERIALS: + # item models have custom tuning, and are specified in source + item_models.update({f"{material}_sword": f"item/swords/{material}_sword_{i}"}) + model_data_reg.append({ + "item": list(item_models.keys()), + "model": item_models, + "reference": f"item/end_city_swords_{i}", + "template": "custom" + }) + + for i in range(1,5+1): + item_models = {} + for material in ["diamond", "golden", "iron"]: + ctx.assets.models[f"gm4_end_fishing:item/horse_armor/{material}_horse_armor_{i}"] = Model({ + "parent": f"minecraft:item/{material}_horse_armor" + }) + item_models.update({f"{material}_horse_armor": f"item/horse_armor/{material}_horse_armor_{i}"}) + model_data_reg.append({ + "item": list(item_models.keys()), + "model": item_models, + "reference": f"item/end_city_horse_armor_{i}", + }) + + for i in range(1,6+1): + item_models = {} + for ore in ORES: + ctx.assets.models[f"gm4_end_fishing:item/ores/{ore}_{i}"] = Model({ + "parent": "item/generated", + "textures":{ + "layer0": f"gm4_end_fishing:item/ores/end_{ore}" + } + }) + item_models.update({ore: f"item/ores/{ore}_{i}"}) + model_data_reg.append({ + "item": ORES, + "model": item_models, + "reference": f"item/end_city_ore_{i}", + }) diff --git a/gm4_ender_hoppers/assets/gm4_ender_hoppers/models/block/ender_hopper.json b/gm4_ender_hoppers/assets/gm4_ender_hoppers/models/block/ender_hopper.json new file mode 100644 index 0000000000..8aec73c5ae --- /dev/null +++ b/gm4_ender_hoppers/assets/gm4_ender_hoppers/models/block/ender_hopper.json @@ -0,0 +1,21 @@ +{ + "textures": { + "side": "gm4_ender_hoppers:block/ender_hopper_eye_side", + "top": "gm4_ender_hoppers:block/ender_hopper_eye_top", + "bottom": "gm4_ender_hoppers:block/ender_hopper_eye_bottom" + }, + "elements": [ + { + "from": [4, 11, 4], + "to": [12, 19, 12], + "faces": { + "north": {"uv": [0, 0, 16, 14], "texture": "#side", "cullface": "north"}, + "east": {"uv": [0, 0, 16, 14], "texture": "#side", "cullface": "east"}, + "south": {"uv": [0, 0, 16, 14], "texture": "#side", "cullface": "south"}, + "west": {"uv": [0, 0, 16, 14], "texture": "#side", "cullface": "west"}, + "up": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#top", "cullface": "up"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#bottom", "cullface": "down"} + } + } + ] +} diff --git a/gm4_ender_hoppers/assets/gm4_ender_hoppers/models/block/ender_hopper_minecart.json b/gm4_ender_hoppers/assets/gm4_ender_hoppers/models/block/ender_hopper_minecart.json new file mode 100644 index 0000000000..8aec73c5ae --- /dev/null +++ b/gm4_ender_hoppers/assets/gm4_ender_hoppers/models/block/ender_hopper_minecart.json @@ -0,0 +1,21 @@ +{ + "textures": { + "side": "gm4_ender_hoppers:block/ender_hopper_eye_side", + "top": "gm4_ender_hoppers:block/ender_hopper_eye_top", + "bottom": "gm4_ender_hoppers:block/ender_hopper_eye_bottom" + }, + "elements": [ + { + "from": [4, 11, 4], + "to": [12, 19, 12], + "faces": { + "north": {"uv": [0, 0, 16, 14], "texture": "#side", "cullface": "north"}, + "east": {"uv": [0, 0, 16, 14], "texture": "#side", "cullface": "east"}, + "south": {"uv": [0, 0, 16, 14], "texture": "#side", "cullface": "south"}, + "west": {"uv": [0, 0, 16, 14], "texture": "#side", "cullface": "west"}, + "up": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#top", "cullface": "up"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#bottom", "cullface": "down"} + } + } + ] +} diff --git a/gm4_ender_hoppers/assets/gm4_ender_hoppers/models/block/ender_hopper_side.json b/gm4_ender_hoppers/assets/gm4_ender_hoppers/models/block/ender_hopper_side.json new file mode 100644 index 0000000000..8aec73c5ae --- /dev/null +++ b/gm4_ender_hoppers/assets/gm4_ender_hoppers/models/block/ender_hopper_side.json @@ -0,0 +1,21 @@ +{ + "textures": { + "side": "gm4_ender_hoppers:block/ender_hopper_eye_side", + "top": "gm4_ender_hoppers:block/ender_hopper_eye_top", + "bottom": "gm4_ender_hoppers:block/ender_hopper_eye_bottom" + }, + "elements": [ + { + "from": [4, 11, 4], + "to": [12, 19, 12], + "faces": { + "north": {"uv": [0, 0, 16, 14], "texture": "#side", "cullface": "north"}, + "east": {"uv": [0, 0, 16, 14], "texture": "#side", "cullface": "east"}, + "south": {"uv": [0, 0, 16, 14], "texture": "#side", "cullface": "south"}, + "west": {"uv": [0, 0, 16, 14], "texture": "#side", "cullface": "west"}, + "up": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#top", "cullface": "up"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#bottom", "cullface": "down"} + } + } + ] +} diff --git a/gm4_ender_hoppers/assets/gm4_ender_hoppers/models/item/ender_hopper_full.json b/gm4_ender_hoppers/assets/gm4_ender_hoppers/models/item/ender_hopper_full.json new file mode 100644 index 0000000000..9fcae78587 --- /dev/null +++ b/gm4_ender_hoppers/assets/gm4_ender_hoppers/models/item/ender_hopper_full.json @@ -0,0 +1,298 @@ +{ + "parent": "minecraft:block/block", + "ambientocclusion": false, + "textures": { + "particle": "minecraft:block/hopper_outside", + "top": "minecraft:block/hopper_top", + "side": "minecraft:block/hopper_outside", + "inside": "minecraft:block/hopper_inside", + "5": "gm4_ender_hoppers:block/ender_hopper_eye_side", + "6": "gm4_ender_hoppers:block/ender_hopper_eye_top" + }, + "elements": [ + { + "from": [ + 0, + 10, + 0 + ], + "to": [ + 16, + 11, + 16 + ], + "faces": { + "down": { + "texture": "#side" + }, + "up": { + "texture": "#inside", + "cullface": "up" + }, + "north": { + "texture": "#side", + "cullface": "north" + }, + "south": { + "texture": "#side", + "cullface": "south" + }, + "west": { + "texture": "#side", + "cullface": "west" + }, + "east": { + "texture": "#side", + "cullface": "east" + } + } + }, + { + "from": [ + 0, + 11, + 0 + ], + "to": [ + 2, + 16, + 16 + ], + "faces": { + "up": { + "texture": "#top", + "cullface": "up" + }, + "north": { + "texture": "#side", + "cullface": "north" + }, + "south": { + "texture": "#side", + "cullface": "south" + }, + "west": { + "texture": "#side", + "cullface": "west" + }, + "east": { + "texture": "#side", + "cullface": "up" + } + } + }, + { + "from": [ + 14, + 11, + 0 + ], + "to": [ + 16, + 16, + 16 + ], + "faces": { + "up": { + "texture": "#top", + "cullface": "up" + }, + "north": { + "texture": "#side", + "cullface": "north" + }, + "south": { + "texture": "#side", + "cullface": "south" + }, + "west": { + "texture": "#side", + "cullface": "up" + }, + "east": { + "texture": "#side", + "cullface": "east" + } + } + }, + { + "from": [ + 2, + 11, + 0 + ], + "to": [ + 14, + 16, + 2 + ], + "faces": { + "up": { + "texture": "#top", + "cullface": "up" + }, + "north": { + "texture": "#side", + "cullface": "north" + }, + "south": { + "texture": "#side", + "cullface": "up" + } + } + }, + { + "from": [ + 2, + 11, + 14 + ], + "to": [ + 14, + 16, + 16 + ], + "faces": { + "up": { + "texture": "#top", + "cullface": "up" + }, + "north": { + "texture": "#side", + "cullface": "up" + }, + "south": { + "texture": "#side", + "cullface": "south" + } + } + }, + { + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 10, + 12 + ], + "faces": { + "down": { + "texture": "#side" + }, + "north": { + "texture": "#side" + }, + "south": { + "texture": "#side" + }, + "west": { + "texture": "#side" + }, + "east": { + "texture": "#side" + } + } + }, + { + "from": [ + 6, + 0, + 6 + ], + "to": [ + 10, + 4, + 10 + ], + "faces": { + "down": { + "texture": "#side", + "cullface": "down" + }, + "north": { + "texture": "#side" + }, + "south": { + "texture": "#side" + }, + "west": { + "texture": "#side" + }, + "east": { + "texture": "#side" + } + } + }, + { + "from": [ + 4, + 11, + 4 + ], + "to": [ + 12, + 19, + 12 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 4.5, + 10.5, + 4.5 + ] + }, + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#5" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#5" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#5" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#5" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#6" + } + } + } + ] +} diff --git a/gm4_ender_hoppers/assets/gm4_ender_hoppers/textures/block/ender_hopper_eye_bottom.png b/gm4_ender_hoppers/assets/gm4_ender_hoppers/textures/block/ender_hopper_eye_bottom.png new file mode 100644 index 0000000000..347ba0157c Binary files /dev/null and b/gm4_ender_hoppers/assets/gm4_ender_hoppers/textures/block/ender_hopper_eye_bottom.png differ diff --git a/gm4_ender_hoppers/assets/gm4_ender_hoppers/textures/block/ender_hopper_eye_side.png b/gm4_ender_hoppers/assets/gm4_ender_hoppers/textures/block/ender_hopper_eye_side.png new file mode 100644 index 0000000000..b3da490d2b Binary files /dev/null and b/gm4_ender_hoppers/assets/gm4_ender_hoppers/textures/block/ender_hopper_eye_side.png differ diff --git a/gm4_ender_hoppers/assets/gm4_ender_hoppers/textures/block/ender_hopper_eye_top.png b/gm4_ender_hoppers/assets/gm4_ender_hoppers/textures/block/ender_hopper_eye_top.png new file mode 100644 index 0000000000..033d24e62d Binary files /dev/null and b/gm4_ender_hoppers/assets/gm4_ender_hoppers/textures/block/ender_hopper_eye_top.png differ diff --git a/gm4_ender_hoppers/assets/gm4_ender_hoppers/textures/gui/container/ender_hopper.png b/gm4_ender_hoppers/assets/gm4_ender_hoppers/textures/gui/container/ender_hopper.png new file mode 100644 index 0000000000..1db2f9c000 Binary files /dev/null and b/gm4_ender_hoppers/assets/gm4_ender_hoppers/textures/gui/container/ender_hopper.png differ diff --git a/gm4_ender_hoppers/assets/gm4_ender_hoppers/textures/item/ender_hopper_minecart.png b/gm4_ender_hoppers/assets/gm4_ender_hoppers/textures/item/ender_hopper_minecart.png new file mode 100644 index 0000000000..d71bece158 Binary files /dev/null and b/gm4_ender_hoppers/assets/gm4_ender_hoppers/textures/item/ender_hopper_minecart.png differ diff --git a/gm4_ender_hoppers/assets/translations.csv b/gm4_ender_hoppers/assets/translations.csv new file mode 100644 index 0000000000..4734ba3d24 --- /dev/null +++ b/gm4_ender_hoppers/assets/translations.csv @@ -0,0 +1,9 @@ +key,en_us +item.gm4.ender_hopper_minecart,Minecart with Ender Hopper +block.gm4.ender_hopper,Ender Hopper +container.gm4.ender_hopper,Ender Hopper +container.gm4.ender_hopper_minecart,Minecart with Ender Hopper +text.gm4.guidebook.module_desc.ender_hoppers,Create special hoppers that teleport nearby items to them. +text.gm4.guidebook.ender_hoppers.description,"Ender Hoppers teleport items to itself, even through walls.\n\nThey can also be combined with a minecart to create an Ender Hopper Minecart." +text.gm4.guidebook.ender_hoppers.crafting,Ender Hoppers can be crafted in a Custom Crafter: +text.gm4.guidebook.ender_hoppers.usage,"Ender Hoppers can pick up items in a range of 9x9 blocks, centered at itself and extending 3 blocks above itself.\n\nCombining a minecart with an ender hopper in a custom crafter yields an ender hopper minecart." diff --git a/gm4_ender_hoppers/beet.yaml b/gm4_ender_hoppers/beet.yaml index 2a867d03c8..385770e2d2 100644 --- a/gm4_ender_hoppers/beet.yaml +++ b/gm4_ender_hoppers/beet.yaml @@ -1,6 +1,6 @@ id: gm4_ender_hoppers name: Ender Hoppers -version: 1.4.X +version: 1.5.X data_pack: load: . @@ -10,6 +10,9 @@ data_pack: max_inclusive: 26 directory: overlay_26 +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module - gm4.plugins.include.lib_machines @@ -22,6 +25,32 @@ meta: lib_custom_crafters: 3.0.0 lib_machines: 1.1.0 schedule_loops: [main] + model_data: + - item: hopper_minecart + reference: item/ender_hopper_minecart + template: generated + - item: player_head + broadcast: + - reference: block/ender_hopper + - reference: block/ender_hopper_side + - reference: block/ender_hopper_minecart + template: custom + transforms: + - name: item_display + origin: [0.5,0.5,0.5] + scale: [0.83,0.83,0.83] + translation: [0,0.641,0] + display: head + - item: player_head + reference: item/ender_hopper + model: item/ender_hopper_full + gui_fonts: + - translation: gui.gm4.ender_hopper + container: hopper + texture: gui/container/ender_hopper + - translation: gui.gm4.ender_hopper_minecart + container: hopper + texture: gui/container/ender_hopper website: description: Create special hoppers that teleport nearby items to them. recommended: @@ -49,6 +78,6 @@ meta: - Misode - BluePsychoRanger Textures by: - - kyrkis + - Kyrius Icon Design: - Sparks diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/create.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/create.mcfunction index 23ccb8ec00..e91a59c9cb 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/create.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/create.mcfunction @@ -14,5 +14,5 @@ execute if score $face_placement gm4_machine_data matches 6 run function gm4_end particle large_smoke ~ ~ ~ 0.2 0.2 0.2 0 10 playsound minecraft:block.respawn_anchor.charge block @a[distance=..5] ~ ~ ~ 0.3 0.7 scoreboard players set $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_ender_hoppers/data/gm4_ender_hoppers/functions/machine/create_cart.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/create_cart.mcfunction index 9c7025b2f7..82f127161e 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/create_cart.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/create_cart.mcfunction @@ -6,14 +6,14 @@ scoreboard players set $placed_block gm4_machine_data 1 # summon new hopper minecart -summon hopper_minecart ~ ~ ~ {Tags:["gm4_ender_hopper_minecart_new","gm4_new_machine"],Passengers:[{id:"minecraft:armor_stand",CustomName:'"gm4_ender_hopper_stand"',Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_cart","smithed.entity","smithed.strict","gm4_new_machine"],Invisible:1b,Small:1b,Pose:{Head:[180f,0f,0f],RightArm:[0f,0f,0f]},ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1,tag:{CustomModelData:3420002,SkullOwner:"$ender_hopper_display"}}],DisabledSlots:2039583,HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420009}},{}]}]} +summon hopper_minecart ~ ~ ~ {Tags:["gm4_ender_hopper_minecart_new","gm4_new_machine"],Passengers:[{id:"minecraft:item_display",CustomName:'"gm4_ender_hopper_display"',Tags:["gm4_no_edit","gm4_ender_hopper_display","gm4_machine_cart","smithed.entity","smithed.strict","gm4_new_machine"],item:{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:"block/ender_hopper_minecart",SkullOwner:"$ender_hopper_display"}},item_display:head,transformation:{scale:[0.83,0.83,0.83],right_rotation:[0,0,0,1],left_rotation:[0,0,0,1],translation:[0.0,0.7275,0.0]}}]} particle large_smoke ~ ~0.5 ~ 0.2 0.2 0.2 0 10 playsound minecraft:block.respawn_anchor.charge block @a[distance=..5] ~ ~ ~ 0.3 0.7 scoreboard players set @e[tag=gm4_new_machine,distance=..2] gm4_entity_version 1 # clean up data modify entity @e[type=hopper_minecart,tag=gm4_ender_hopper_minecart_new,distance=..0.1,limit=1] {} merge from entity @s {} -data merge entity @e[type=hopper_minecart,tag=gm4_ender_hopper_minecart_new,distance=..0.1,limit=1] {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},[{"translate":"gui.gm4.ender_hopper_minecart","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart","font":"gm4:default","color":"#404040"}]]}',Tags:["gm4_ender_hopper_minecart","gm4_machine_cart"]} +data merge entity @e[type=hopper_minecart,tag=gm4_ender_hopper_minecart_new,distance=..0.1,limit=1] {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},[{"translate":"gui.gm4.ender_hopper_minecart","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper","font":"gm4:default","color":"#404040"}]]}',Tags:["gm4_ender_hopper_minecart","gm4_machine_cart"]} data merge entity @s {Items:[]} kill @s tag @e[distance=..2] remove gm4_new_machine diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/destroy.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/destroy.mcfunction index 5258d31546..cd0cec8839 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/destroy.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/destroy.mcfunction @@ -4,7 +4,7 @@ # run from gm4_ender_hoppers:machine/verify_destroy # kill entities related to machine block -execute positioned ~ ~-0.5 ~ run kill @e[type=armor_stand,tag=gm4_ender_hopper_stand,limit=1,distance=..0.01] +execute positioned ~ ~ ~ run kill @e[type=item_display,tag=gm4_ender_hopper_display,limit=1,distance=..0.01] execute store result score $dropped_item gm4_machine_data run kill @e[type=item,distance=..1,nbt={Age:0s,Item:{id:"minecraft:hopper",Count:1b,tag:{display:{}}}},limit=1,sort=nearest] kill @s diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/destroy_cart/scan_hoppers.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/destroy_cart/scan_hoppers.mcfunction index a20732e8fe..13587a4ee5 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/destroy_cart/scan_hoppers.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/destroy_cart/scan_hoppers.mcfunction @@ -5,35 +5,35 @@ # find hopper with the invalid item scoreboard players set $found_item gm4_machine_data 0 -execute if score $found_item gm4_machine_data matches 0 positioned ~00 ~00 ~00 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~01 ~00 ~00 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~-1 ~00 ~00 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~00 ~00 ~01 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~01 ~00 ~01 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~-1 ~00 ~01 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~00 ~00 ~-1 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~01 ~00 ~-1 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~-1 ~00 ~-1 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~00 ~00 ~00 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~01 ~00 ~00 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~-1 ~00 ~00 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~00 ~00 ~01 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~01 ~00 ~01 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~-1 ~00 ~01 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~00 ~00 ~-1 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~01 ~00 ~-1 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~-1 ~00 ~-1 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~00 ~-1 ~00 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~01 ~-1 ~00 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~-1 ~-1 ~00 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~00 ~-1 ~01 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~01 ~-1 ~01 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~-1 ~-1 ~01 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~00 ~-1 ~-1 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~01 ~-1 ~-1 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~-1 ~-1 ~-1 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~00 ~-1 ~00 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~01 ~-1 ~00 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~-1 ~-1 ~00 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~00 ~-1 ~01 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~01 ~-1 ~01 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~-1 ~-1 ~01 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~00 ~-1 ~-1 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~01 ~-1 ~-1 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~-1 ~-1 ~-1 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~00 ~-2 ~00 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~01 ~-2 ~00 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~-1 ~-2 ~00 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~00 ~-2 ~01 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~01 ~-2 ~01 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~-1 ~-2 ~01 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~00 ~-2 ~-1 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~01 ~-2 ~-1 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper -execute if score $found_item gm4_machine_data matches 0 positioned ~-1 ~-2 ~-1 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~00 ~-2 ~00 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~01 ~-2 ~00 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~-1 ~-2 ~00 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~00 ~-2 ~01 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~01 ~-2 ~01 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~-1 ~-2 ~01 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~00 ~-2 ~-1 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~01 ~-2 ~-1 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper +execute if score $found_item gm4_machine_data matches 0 positioned ~-1 ~-2 ~-1 if block ~ ~ ~ hopper{Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]} run function gm4_ender_hoppers:machine/destroy_cart/update_hopper # if no hoppers found, find hopper minecarts with the invalid item -execute if score $found_item gm4_machine_data matches 0 as @e[type=hopper_minecart,distance=..3,nbt={Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]}] run function gm4_ender_hoppers:machine/destroy_cart/update_hopper_minecart +execute if score $found_item gm4_machine_data matches 0 as @e[type=hopper_minecart,distance=..3,nbt={Items:[{id:"minecraft:hopper_minecart",tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}]}] run function gm4_ender_hoppers:machine/destroy_cart/update_hopper_minecart diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/destroy_cart/update_hopper.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/destroy_cart/update_hopper.mcfunction index 47e70d9ce8..841b09363f 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/destroy_cart/update_hopper.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/destroy_cart/update_hopper.mcfunction @@ -5,11 +5,11 @@ # replace correct slot with proper item data modify storage gm4_machines:temp Items set from block ~ ~ ~ Items -execute if data storage gm4_machines:temp Items[{Slot:0b,tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}] run loot replace block ~ ~ ~ container.0 loot gm4_ender_hoppers:entities/ender_hopper_minecart -execute if data storage gm4_machines:temp Items[{Slot:1b,tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}] run loot replace block ~ ~ ~ container.1 loot gm4_ender_hoppers:entities/ender_hopper_minecart -execute if data storage gm4_machines:temp Items[{Slot:2b,tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}] run loot replace block ~ ~ ~ container.2 loot gm4_ender_hoppers:entities/ender_hopper_minecart -execute if data storage gm4_machines:temp Items[{Slot:3b,tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}] run loot replace block ~ ~ ~ container.3 loot gm4_ender_hoppers:entities/ender_hopper_minecart -execute if data storage gm4_machines:temp Items[{Slot:4b,tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}] run loot replace block ~ ~ ~ container.4 loot gm4_ender_hoppers:entities/ender_hopper_minecart +execute if data storage gm4_machines:temp Items[{Slot:0b,tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}] run loot replace block ~ ~ ~ container.0 loot gm4_ender_hoppers:entities/ender_hopper_minecart +execute if data storage gm4_machines:temp Items[{Slot:1b,tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}] run loot replace block ~ ~ ~ container.1 loot gm4_ender_hoppers:entities/ender_hopper_minecart +execute if data storage gm4_machines:temp Items[{Slot:2b,tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}] run loot replace block ~ ~ ~ container.2 loot gm4_ender_hoppers:entities/ender_hopper_minecart +execute if data storage gm4_machines:temp Items[{Slot:3b,tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}] run loot replace block ~ ~ ~ container.3 loot gm4_ender_hoppers:entities/ender_hopper_minecart +execute if data storage gm4_machines:temp Items[{Slot:4b,tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}] run loot replace block ~ ~ ~ container.4 loot gm4_ender_hoppers:entities/ender_hopper_minecart # clean up data remove storage gm4_machines:temp Items diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/destroy_cart/update_hopper_minecart.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/destroy_cart/update_hopper_minecart.mcfunction index a952ba82f3..4d829adce5 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/destroy_cart/update_hopper_minecart.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/destroy_cart/update_hopper_minecart.mcfunction @@ -5,11 +5,11 @@ # replace correct slot with proper item data modify storage gm4_machines:temp Items set from entity @s Items -execute if data storage gm4_machines:temp Items[{Slot:0b,tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}] run loot replace entity @s container.0 loot gm4_ender_hoppers:entities/ender_hopper_minecart -execute if data storage gm4_machines:temp Items[{Slot:1b,tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}] run loot replace entity @s container.1 loot gm4_ender_hoppers:entities/ender_hopper_minecart -execute if data storage gm4_machines:temp Items[{Slot:2b,tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}] run loot replace entity @s container.2 loot gm4_ender_hoppers:entities/ender_hopper_minecart -execute if data storage gm4_machines:temp Items[{Slot:3b,tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}] run loot replace entity @s container.3 loot gm4_ender_hoppers:entities/ender_hopper_minecart -execute if data storage gm4_machines:temp Items[{Slot:4b,tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Ender Hopper Minecart"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}] run loot replace entity @s container.4 loot gm4_ender_hoppers:entities/ender_hopper_minecart +execute if data storage gm4_machines:temp Items[{Slot:0b,tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}] run loot replace entity @s container.0 loot gm4_ender_hoppers:entities/ender_hopper_minecart +execute if data storage gm4_machines:temp Items[{Slot:1b,tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}] run loot replace entity @s container.1 loot gm4_ender_hoppers:entities/ender_hopper_minecart +execute if data storage gm4_machines:temp Items[{Slot:2b,tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}] run loot replace entity @s container.2 loot gm4_ender_hoppers:entities/ender_hopper_minecart +execute if data storage gm4_machines:temp Items[{Slot:3b,tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}] run loot replace entity @s container.3 loot gm4_ender_hoppers:entities/ender_hopper_minecart +execute if data storage gm4_machines:temp Items[{Slot:4b,tag:{display:{Name:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},{"color":"white","font":"gm4:container_gui","extra":[{"color":"#404040","font":"gm4:default","translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"}],"translate":"gui.gm4.ender_hopper_minecart","fallback":""}]}'}}}] run loot replace entity @s container.4 loot gm4_ender_hoppers:entities/ender_hopper_minecart # clean up data remove storage gm4_machines:temp Items diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/down.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/down.mcfunction index d8a2c1dbac..e11e30b54d 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/down.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/down.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ hopper[facing=down]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper","fallback":"Ender Hopper"},[{"translate":"gui.gm4.ender_hopper","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.ender_hopper","fallback":"Ender Hopper","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:"$ender_hopper_display_2"}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420003}},{}],Pose:{RightArm:[0f, 0f, 0f]},Rotation:[0.0f,0.0f]} +summon item_display ~ ~ ~ {item:{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:'block/ender_hopper',SkullOwner:"$ender_hopper_display"}},item_display:head,CustomName:'"gm4_ender_hopper_display"',Tags:["gm4_ender_hopper_display","smithed.entity","smithed.strict","gm4_new_machine"],transformation:{scale:[0.83,0.83,0.83],left_rotation:[0,0,0,1],right_rotation:[0,0,0,1],translation:[0.0,0.641,0.0]}} summon marker ~ ~ ~ {Tags:["gm4_ender_hopper","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_ender_hopper"',Rotation:[0.0f,0.0f]} diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/east.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/east.mcfunction index 215f93a3f2..a384c3b85e 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/east.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/east.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ hopper[facing=east]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper","fallback":"Ender Hopper"},[{"translate":"gui.gm4.ender_hopper","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.ender_hopper","fallback":"Ender Hopper","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:"$ender_hopper_display_2"}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420008}},{}],Pose:{RightArm:[0f, 0f, 0f]},Rotation:[-90.0f,0.0f]} +summon item_display ~ ~ ~ {item:{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:'block/ender_hopper_side',SkullOwner:"$ender_hopper_display"}},item_display:head,CustomName:'"gm4_ender_hopper_display"',Tags:["gm4_ender_hopper_display","smithed.entity","smithed.strict","gm4_new_machine"],transformation:{scale:[0.83,0.83,0.83],left_rotation:[0,0,0,1],right_rotation:[0,0,0,1],translation:[0.0,0.641,0.0]},Rotation:[-90.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_ender_hopper","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_ender_hopper"',Rotation:[-90.0f,0.0f]} diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/north.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/north.mcfunction index 7e7d32eb3e..369a513826 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/north.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/north.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ hopper[facing=north]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper","fallback":"Ender Hopper"},[{"translate":"gui.gm4.ender_hopper","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.ender_hopper","fallback":"Ender Hopper","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:"$ender_hopper_display_2"}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420008}},{}],Pose:{RightArm:[0f, 0f, 0f]},Rotation:[180.0f,0.0f]} +summon item_display ~ ~ ~ {item:{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:'block/ender_hopper_side',SkullOwner:"$ender_hopper_display"}},item_display:head,CustomName:'"gm4_ender_hopper_display"',Tags:["gm4_ender_hopper_display","smithed.entity","smithed.strict","gm4_new_machine"],transformation:{scale:[0.83,0.83,0.83],left_rotation:[0,0,0,1],right_rotation:[0,0,0,1],translation:[0.0,0.641,0.0]},Rotation:[180.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_ender_hopper","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_ender_hopper"',Rotation:[180.0f,0.0f]} diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/south.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/south.mcfunction index 033b67a1c6..9793cb7771 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/south.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/south.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ hopper[facing=south]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper","fallback":"Ender Hopper"},[{"translate":"gui.gm4.ender_hopper","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.ender_hopper","fallback":"Ender Hopper","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:"$ender_hopper_display_2"}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420008}},{}],Pose:{RightArm:[0f, 0f, 0f]},Rotation:[0.0f,0.0f]} +summon item_display ~ ~ ~ {item:{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:'block/ender_hopper_side',SkullOwner:"$ender_hopper_display"}},item_display:head,CustomName:'"gm4_ender_hopper_display"',Tags:["gm4_ender_hopper_display","smithed.entity","smithed.strict","gm4_new_machine"],transformation:{scale:[0.83,0.83,0.83],left_rotation:[0,0,0,1],right_rotation:[0,0,0,1],translation:[0.0,0.641,0.0]},Rotation:[0.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_ender_hopper","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_ender_hopper"',Rotation:[0.0f,0.0f]} diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/west.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/west.mcfunction index f48e01da37..d43e71297f 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/west.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/west.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ hopper[facing=west]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper","fallback":"Ender Hopper"},[{"translate":"gui.gm4.ender_hopper","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.ender_hopper","fallback":"Ender Hopper","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:"$ender_hopper_display_2"}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420008}},{}],Pose:{RightArm:[0f, 0f, 0f]},Rotation:[90.0f,0.0f]} +summon item_display ~ ~ ~ {item:{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:'block/ender_hopper_side',SkullOwner:"$ender_hopper_display"}},item_display:head,CustomName:'"gm4_ender_hopper_display"',Tags:["gm4_ender_hopper_display","smithed.entity","smithed.strict","gm4_new_machine"],transformation:{scale:[0.83,0.83,0.83],left_rotation:[0,0,0,1],right_rotation:[0,0,0,1],translation:[0.0,0.641,0.0]},Rotation:[90.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_ender_hopper","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_ender_hopper"',Rotation:[90.0f,0.0f]} diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/verify_destroy_cart.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/verify_destroy_cart.mcfunction index e4f55cba5d..b754860de0 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/verify_destroy_cart.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/verify_destroy_cart.mcfunction @@ -3,4 +3,4 @@ # located at @s # run from #gm4_machines:destroy -execute if entity @s[tag=gm4_ender_hopper_stand] run function gm4_ender_hoppers:machine/destroy_cart +execute if entity @s[tag=gm4_ender_hopper_display] run function gm4_ender_hoppers:machine/destroy_cart diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/relocate/place_down.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/relocate/place_down.mcfunction deleted file mode 100644 index ebce3ad5b5..0000000000 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/relocate/place_down.mcfunction +++ /dev/null @@ -1,13 +0,0 @@ -# @s = command block placed by "gm4_relocators:backwards_compatibility/place_down/replace_head" -# located at the command block (where the player head was) - -execute if block ~ ~ ~ command_block[facing=east] run setblock ~ ~ ~ hopper[facing=east] -execute if block ~ ~ ~ command_block[facing=west] run setblock ~ ~ ~ hopper[facing=west] -execute if block ~ ~ ~ command_block[facing=south] run setblock ~ ~ ~ hopper[facing=south] -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.ender_hopper","fallback":"Ender Hopper"}'} -summon armor_stand ~ ~-.5 ~ {Tags:["gm4_ender_hopper","gm4_no_edit"],Small:1b,Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:"$ender_hopper_display"}}],DisabledSlots:2039583,HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420003}}],Pose:{RightArm:[0f, 0f, 0f]}} -particle large_smoke ~ ~0.5 ~ 0.2 0.2 0.2 0 10 -playsound minecraft:block.respawn_anchor.charge block @a[distance=..5] ~ ~ ~ 0.3 0.7 diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/relocate/set_pick_up_data.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/relocate/set_pick_up_data.mcfunction index 2e95784920..13fe14e680 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/relocate/set_pick_up_data.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/relocate/set_pick_up_data.mcfunction @@ -5,8 +5,8 @@ data modify storage gm4_relocators:temp merge_data set value {custom_block:"gm4_ender_hopper",lore:'{"translate":"block.gm4.ender_hopper","fallback":"Ender Hopper","color":"gray","italic":true}'} data modify storage gm4_relocators:temp merge_data.entity_data.Rotation set from entity @s Rotation -execute positioned ~ ~-0.5 ~ run data modify storage gm4_relocators:temp merge_data.entity_data.ArmorItems set from entity @e[type=armor_stand,tag=gm4_ender_hopper_stand,limit=1,distance=..0.01] ArmorItems +data modify storage gm4_relocators:temp merge_data.entity_data.item set from entity @e[type=item_display,tag=gm4_ender_hopper_display,limit=1,distance=..0.01] item -execute positioned ~ ~-0.5 ~ run kill @e[type=armor_stand,tag=gm4_ender_hopper_stand,limit=1,distance=..0.01] +execute positioned ~ ~ ~ run kill @e[type=item_display,tag=gm4_ender_hopper_display,limit=1,distance=..0.01] kill @s scoreboard players set $found_marker gm4_rl_data 1 diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/relocate/summon_block_markers.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/relocate/summon_block_markers.mcfunction index c935d88c7a..c4c36d9f7f 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/relocate/summon_block_markers.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/relocate/summon_block_markers.mcfunction @@ -5,11 +5,11 @@ scoreboard players set $placed_block gm4_rl_data 1 -summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:"$ender_hopper_display_2"}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420003}},{}],Pose:{RightArm:[0f, 0f, 0f]},Rotation:[0.0f,0.0f]} +summon item_display ~ ~ ~ {item:{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:'block/ender_hopper_side',SkullOwner:"$ender_hopper_display"}},item_display:head,CustomName:'"gm4_ender_hopper_display"',Tags:["gm4_ender_hopper_display","smithed.entity","smithed.strict","gm4_new_machine"],transformation:{scale:[0.83,0.83,0.83],left_rotation:[0,0,0,1],right_rotation:[0,0,0,1],translation:[0.0,0.641,0.0]}} summon marker ~ ~ ~ {Tags:["gm4_ender_hopper","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_ender_hopper"',Rotation:[0.0f,0.0f]} execute as @e[tag=gm4_new_machine,distance=..2] run data modify entity @s Rotation set from storage gm4_relocators:temp gm4_relocation.entity_data.Rotation 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 ArmorItems set from storage gm4_relocators:temp gm4_relocation.entity_data.ArmorItems -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 item set from storage gm4_relocators:temp gm4_relocation.entity_data.item +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_ender_hoppers/data/gm4_ender_hoppers/functions/upgrade_paths/1.5.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/upgrade_paths/1.5.mcfunction new file mode 100644 index 0000000000..bd7ce42be7 --- /dev/null +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/upgrade_paths/1.5.mcfunction @@ -0,0 +1,2 @@ +execute as @e[type=armor_stand,tag=gm4_ender_hopper_stand,tag=!gm4_machine_cart,scores={gm4_entity_version=1}] at @s run function gm4_ender_hoppers:upgrade_paths/1.5/block_upgrade +execute as @e[type=armor_stand,tag=gm4_ender_hopper_stand,tag=gm4_machine_cart,scores={gm4_entity_version=1}] on vehicle at @s run function gm4_ender_hoppers:upgrade_paths/1.5/minecart_upgrade diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/upgrade_paths/1.5/block_upgrade.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/upgrade_paths/1.5/block_upgrade.mcfunction new file mode 100644 index 0000000000..8662f8cb68 --- /dev/null +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/upgrade_paths/1.5/block_upgrade.mcfunction @@ -0,0 +1,13 @@ +# run from upgrade_paths/1.5 +# @s = ender hopper display armor stand to be replaced + +summon item_display ~ ~0.5 ~ {item:{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:'block/ender_hopper',SkullOwner:"$ender_hopper_display"}},item_display:head,CustomName:'"gm4_ender_hopper_display"',Tags:["gm4_ender_hopper_display","smithed.entity","smithed.strict","gm4_new_machine"],transformation:{scale:[0.83,0.83,0.83],left_rotation:[0,0,0,1],right_rotation:[0,0,0,1],translation:[0.0,0.641,0.0]},Rotation:[0.0f,0.0f]} + +# side-facing hopper, set the right CMD +execute if entity @s[nbt={HandItems:[{tag:{CustomModelData:3420008}},{}]}] run data modify entity @e[type=item_display,limit=1,distance=..0.6,tag=gm4_new_machine] item.tag.CustomModelData set value "block/ender_hopper_side" + +data modify entity @e[type=item_display,limit=1,distance=..0.6,tag=gm4_new_machine] Rotation set from entity @s Rotation +scoreboard players set @e[type=item_display,limit=1,distance=..0.6,tag=gm4_new_machine] gm4_entity_version 2 +scoreboard players set @e[type=marker,limit=1,distance=..0.6,tag=gm4_ender_hopper] gm4_entity_version 2 +tag @e[type=item_display,distance=..0.6,tag=gm4_new_machine] remove gm4_new_machine +kill @s diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/upgrade_paths/1.5/minecart_upgrade.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/upgrade_paths/1.5/minecart_upgrade.mcfunction new file mode 100644 index 0000000000..eed2733609 --- /dev/null +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/upgrade_paths/1.5/minecart_upgrade.mcfunction @@ -0,0 +1,11 @@ +# run from upgrade_paths/1.5 +# @s = existing ender hopper minecart (cart entity) + +summon hopper_minecart ~ ~ ~ {Tags:["gm4_ender_hopper_minecart_new","gm4_new_machine"],Passengers:[{id:"minecraft:item_display",CustomName:'"gm4_ender_hopper_display"',Tags:["gm4_no_edit","gm4_ender_hopper_display","gm4_machine_cart","smithed.entity","smithed.strict","gm4_new_machine"],item:{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:"block/ender_hopper_minecart",SkullOwner:"$ender_hopper_display"}},item_display:head,transformation:{scale:[0.83,0.83,0.83],right_rotation:[0,0,0,1],left_rotation:[0,0,0,1],translation:[0.0,0.7275,0.0]}}]} +data modify entity @e[type=hopper_minecart,tag=gm4_ender_hopper_minecart_new,distance=..0.1,limit=1] {} merge from entity @s {} +data merge entity @e[type=hopper_minecart,tag=gm4_ender_hopper_minecart_new,distance=..0.1,limit=1] {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper"},[{"translate":"gui.gm4.ender_hopper_minecart","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.ender_hopper_minecart","fallback":"Minecart with Ender Hopper","font":"gm4:default","color":"#404040"}]]}',Tags:["gm4_ender_hopper_minecart","gm4_machine_cart"]} + +data merge entity @s {Items:[]} +execute on passengers run kill @s +kill @s +tag @e[distance=..2] remove gm4_new_machine diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/guidebook/ender_hoppers.json b/gm4_ender_hoppers/data/gm4_ender_hoppers/guidebook/ender_hoppers.json index 1bb0236848..8069a51bf7 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/guidebook/ender_hoppers.json +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/guidebook/ender_hoppers.json @@ -3,8 +3,7 @@ "name": "Ender Hoppers", "module_type": "module", "icon": { - "item": "minecraft:ender_eye", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:ender_eye" }, "criteria": { "open_custom_crafter": { diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/loot_tables/items/ender_hopper.json b/gm4_ender_hoppers/data/gm4_ender_hoppers/loot_tables/items/ender_hopper.json index 3ec9f5b584..f40b5c409e 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/loot_tables/items/ender_hopper.json +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/loot_tables/items/ender_hopper.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420131,gm4_machines:{id:\"ender_hopper\"},SkullOwner:{Name:\"gm4_ender_hopper\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$ender_hopper\"}]}}}" + "tag": "{CustomModelData:'item/ender_hopper',gm4_machines:{id:\"ender_hopper\"},SkullOwner:{Name:\"gm4_ender_hopper\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$ender_hopper\"}]}}}" }, { "function": "set_name", diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/loot_tables/items/ender_hopper_minecart.json b/gm4_ender_hoppers/data/gm4_ender_hoppers/loot_tables/items/ender_hopper_minecart.json index 5ff55d2d16..6b09c9d91f 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/loot_tables/items/ender_hopper_minecart.json +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/loot_tables/items/ender_hopper_minecart.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420002,gm4_machines:{id:\"ender_hopper_minecart\"}}" + "tag": "{CustomModelData:'item/ender_hopper_minecart',gm4_machines:{id:\"ender_hopper_minecart\"}}" }, { "function": "set_name", diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/skins/ender_hopper_display.png b/gm4_ender_hoppers/data/gm4_ender_hoppers/skins/ender_hopper_display.png index 5468edb0b4..2e8f4d644e 100644 Binary files a/gm4_ender_hoppers/data/gm4_ender_hoppers/skins/ender_hopper_display.png and b/gm4_ender_hoppers/data/gm4_ender_hoppers/skins/ender_hopper_display.png differ diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/skins/ender_hopper_display_2.png b/gm4_ender_hoppers/data/gm4_ender_hoppers/skins/ender_hopper_display_2.png deleted file mode 100644 index 2e8f4d644e..0000000000 Binary files a/gm4_ender_hoppers/data/gm4_ender_hoppers/skins/ender_hopper_display_2.png and /dev/null differ diff --git a/gm4_ender_hoppers/overlay_26/data/gm4_ender_hoppers/guidebook/ender_hoppers.json b/gm4_ender_hoppers/overlay_26/data/gm4_ender_hoppers/guidebook/ender_hoppers.json index 5442ca09b4..ba6d6eab97 100644 --- a/gm4_ender_hoppers/overlay_26/data/gm4_ender_hoppers/guidebook/ender_hoppers.json +++ b/gm4_ender_hoppers/overlay_26/data/gm4_ender_hoppers/guidebook/ender_hoppers.json @@ -3,8 +3,7 @@ "name": "Ender Hoppers", "module_type": "module", "icon": { - "item": "minecraft:ender_eye", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:ender_eye" }, "criteria": { "open_custom_crafter": { diff --git a/gm4_enderman_support_class/assets/translations.csv b/gm4_enderman_support_class/assets/translations.csv new file mode 100644 index 0000000000..5805b6e84a --- /dev/null +++ b/gm4_enderman_support_class/assets/translations.csv @@ -0,0 +1,7 @@ +key,en_us +advancement.gm4.enderman_support_class.title,Ender Aid +advancement.gm4.enderman_support_class.description,Come into contact with a support Enderman +text.gm4.guidebook.module_desc.enderman_support_class,This module allows Endermen to aid nearby hostiles in their fight against the player! +text.gm4.guidebook.enderman_support_class.description,"Endermen will buff nearby hostile mobs, giving them extra abilities.\n\nSome mobs get potion effects, while other mobs give effects when nearby." +text.gm4.guidebook.enderman_support_class.buffs,- Creepers get Regeneration II\n- Cave Spiders get Jump Boost II\n- Silverfish get Resistance II +text.gm4.guidebook.enderman_support_class.buffs_1,- Spiders get Jump Boost I\n-Zombies get Speed II\n-Skeletons give Weakness II\n- Shulkers give Blindness diff --git a/gm4_enderman_support_class/beet.yaml b/gm4_enderman_support_class/beet.yaml index 741505dd2d..f5621b2122 100644 --- a/gm4_enderman_support_class/beet.yaml +++ b/gm4_enderman_support_class/beet.yaml @@ -12,6 +12,10 @@ meta: gm4: versioning: schedule_loops: [main] + model_data: + - item: player_head + reference: gui/advancement/enderman_support_class + template: advancement website: description: This module allows Endermen to aid nearby hostiles in their fight against the player! recommended: diff --git a/gm4_enderman_support_class/data/gm4/advancements/enderman_support_class.json b/gm4_enderman_support_class/data/gm4/advancements/enderman_support_class.json index a1ffacb39c..5d8d2a20ea 100644 --- a/gm4_enderman_support_class/data/gm4/advancements/enderman_support_class.json +++ b/gm4_enderman_support_class/data/gm4/advancements/enderman_support_class.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "player_head", - "nbt": "{CustomModelData:3420003,SkullOwner:\"MHF_Enderman\"}" + "nbt": "{CustomModelData:'gui/advancement/enderman_support_class',SkullOwner:\"MHF_Enderman\"}" }, "title": { "translate": "advancement.gm4.enderman_support_class.title", diff --git a/gm4_enderman_support_class/data/gm4_enderman_support_class/guidebook/enderman_support_class.json b/gm4_enderman_support_class/data/gm4_enderman_support_class/guidebook/enderman_support_class.json index faec4f36a9..442cf39fd0 100644 --- a/gm4_enderman_support_class/data/gm4_enderman_support_class/guidebook/enderman_support_class.json +++ b/gm4_enderman_support_class/data/gm4_enderman_support_class/guidebook/enderman_support_class.json @@ -4,7 +4,7 @@ "module_type": "module", "icon": { "item": "minecraft:player_head", - "nbt": "{CustomModelData:3420059,SkullOwner:\"MHF_Enderman\"}" + "nbt": "{SkullOwner:\"MHF_Enderman\"}" }, "criteria": { "encounter_enderman": { diff --git a/gm4_everstone/assets/gm4_everstone/textures/item/everstone.png b/gm4_everstone/assets/gm4_everstone/textures/item/everstone.png new file mode 100644 index 0000000000..ae05e4a738 Binary files /dev/null and b/gm4_everstone/assets/gm4_everstone/textures/item/everstone.png differ diff --git a/gm4_everstone/assets/translations.csv b/gm4_everstone/assets/translations.csv new file mode 100644 index 0000000000..02b4f99ec7 --- /dev/null +++ b/gm4_everstone/assets/translations.csv @@ -0,0 +1,15 @@ +key,en_us +item.gm4.everstone,Everstone +advancement.gm4.everstone.title,Evolution Halt +advancement.gm4.everstone.description,Use an everstone to prevent a mob from aging +text.gm4.guidebook.module_desc.everstone,"Collect Everstones during full moons and use them on baby mobs to stop them from aging! But watch out, some other mobs might start aging, too!" +text.gm4.guidebook.everstone.description,Everstones can prevent mobs from aging.\n\nSome mobs that don't normally age now have the ability to evolve into other mobs. +text.gm4.guidebook.everstone.obtaining,Everstones can be obtained by mining stone during a full moon.\n\nStone mined with Silk Touch will never drop an everstone. +text.gm4.guidebook.everstone.usage,"Dropping an everstone on a mob will prevent it from aging.\n\nZombies, Skeletons, Slimes, Strays, Piglins, Guardians, and Vindicators can evolve under specific conditions." +text.gm4.guidebook.everstone.zombie_conversion,Zombies will convert to husks after being in direct sunlight in a desert or badlands biome for a long time. +text.gm4.guidebook.everstone.skeleton_conversion,"Skeletons will convert into strays after being in a cold, snowy biome for a long time." +text.gm4.guidebook.everstone.slime_conversion,Slimes will convert into magma cubes after being in the nether for a long time. +text.gm4.guidebook.everstone.stray_conversion,"Strays will convert into skeletons if taken out of a cold, snowy biome for a long time." +text.gm4.guidebook.everstone.piglin_conversion,Piglins inside bastion remnants will convert into piglin brutes if there are less than two brutes nearby. +text.gm4.guidebook.everstone.guardian_conversion,"Guardians will convert into elder guardians after being near several other guardians for a long time.\n\nSpecifically, guardians with five other friends will start to age." +text.gm4.guidebook.everstone.vindicator_conversion,"Vindicators will convert into evokers when near at least seven magical blocks for a long time.\n\nThese blocks include enchanting tables, bookshelves, lecterns, brewing stands, and cauldrons." diff --git a/gm4_everstone/beet.yaml b/gm4_everstone/beet.yaml index ec8ef9a66e..8026fa0cc8 100644 --- a/gm4_everstone/beet.yaml +++ b/gm4_everstone/beet.yaml @@ -5,6 +5,9 @@ version: 1.2.X data_pack: load: . +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module @@ -15,6 +18,15 @@ meta: - main - tick - aging_clock + model_data: + - item: firework_star + reference: item/everstone + template: generated + - item: firework_star + reference: gui/advancement/everstones + template: + name: advancement + foward: item/everstone website: description: Collect Everstones during full moons and use them on baby mobs to stop them from aging! But watch out, some other mobs might start aging, too! recommended: diff --git a/gm4_everstone/data/gm4/advancements/everstone.json b/gm4_everstone/data/gm4/advancements/everstone.json index 47c8e2983d..cab0a12cba 100755 --- a/gm4_everstone/data/gm4/advancements/everstone.json +++ b/gm4_everstone/data/gm4/advancements/everstone.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "firework_star", - "nbt": "{CustomModelData:3420003}" + "nbt": "{CustomModelData:'gui/advancement/everstones'}" }, "title": { "translate": "advancement.gm4.everstone.title", diff --git a/gm4_everstone/data/gm4_everstone/guidebook/everstone.json b/gm4_everstone/data/gm4_everstone/guidebook/everstone.json index 6543c24d17..abd116ffe0 100644 --- a/gm4_everstone/data/gm4_everstone/guidebook/everstone.json +++ b/gm4_everstone/data/gm4_everstone/guidebook/everstone.json @@ -3,8 +3,7 @@ "name": "Everstone", "module_type": "module", "icon": { - "item": "minecraft:firework_star", - "nbt": "{CustomModelData:3420004}" + "item": "minecraft:firework_star" }, "criteria": { "obtain_cobblestone_during_full_moon": { diff --git a/gm4_everstone/data/gm4_everstone/loot_tables/everstone.json b/gm4_everstone/data/gm4_everstone/loot_tables/everstone.json index f269bbb749..a73cbecc86 100755 --- a/gm4_everstone/data/gm4_everstone/loot_tables/everstone.json +++ b/gm4_everstone/data/gm4_everstone/loot_tables/everstone.json @@ -13,7 +13,7 @@ }, { "function": "set_nbt", - "tag": "{CustomModelData:3420002,gm4_everstone:1b,Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'item/everstone',gm4_everstone:1b,Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" }, { "function": "set_name", diff --git a/gm4_forming_press/assets/gm4_forming_press/textures/block/forming_press_bottom.png b/gm4_forming_press/assets/gm4_forming_press/textures/block/forming_press_bottom.png new file mode 100644 index 0000000000..08cdd66a96 Binary files /dev/null and b/gm4_forming_press/assets/gm4_forming_press/textures/block/forming_press_bottom.png differ diff --git a/gm4_forming_press/assets/gm4_forming_press/textures/block/forming_press_bottom_out.png b/gm4_forming_press/assets/gm4_forming_press/textures/block/forming_press_bottom_out.png new file mode 100644 index 0000000000..e8ee5ab325 Binary files /dev/null and b/gm4_forming_press/assets/gm4_forming_press/textures/block/forming_press_bottom_out.png differ diff --git a/gm4_forming_press/assets/gm4_forming_press/textures/block/forming_press_front.png b/gm4_forming_press/assets/gm4_forming_press/textures/block/forming_press_front.png new file mode 100644 index 0000000000..e225e14747 Binary files /dev/null and b/gm4_forming_press/assets/gm4_forming_press/textures/block/forming_press_front.png differ diff --git a/gm4_forming_press/assets/gm4_forming_press/textures/block/forming_press_side.png b/gm4_forming_press/assets/gm4_forming_press/textures/block/forming_press_side.png new file mode 100644 index 0000000000..c26f507614 Binary files /dev/null and b/gm4_forming_press/assets/gm4_forming_press/textures/block/forming_press_side.png differ diff --git a/gm4_forming_press/assets/gm4_forming_press/textures/block/forming_press_top.png b/gm4_forming_press/assets/gm4_forming_press/textures/block/forming_press_top.png new file mode 100644 index 0000000000..e1dff00027 Binary files /dev/null and b/gm4_forming_press/assets/gm4_forming_press/textures/block/forming_press_top.png differ diff --git a/gm4_forming_press/assets/gm4_forming_press/textures/block/forming_press_top_out.png b/gm4_forming_press/assets/gm4_forming_press/textures/block/forming_press_top_out.png new file mode 100644 index 0000000000..134252376b Binary files /dev/null and b/gm4_forming_press/assets/gm4_forming_press/textures/block/forming_press_top_out.png differ diff --git a/gm4_forming_press/assets/gm4_forming_press/textures/gui/container/forming_press.png b/gm4_forming_press/assets/gm4_forming_press/textures/gui/container/forming_press.png new file mode 100644 index 0000000000..11c417779d Binary files /dev/null and b/gm4_forming_press/assets/gm4_forming_press/textures/gui/container/forming_press.png differ diff --git a/gm4_forming_press/assets/translations.csv b/gm4_forming_press/assets/translations.csv new file mode 100644 index 0000000000..17410a2a2a --- /dev/null +++ b/gm4_forming_press/assets/translations.csv @@ -0,0 +1,9 @@ +key,en_us +container.gm4.forming_press,Forming Press +block.gm4.forming_press,Forming Press +block.gm4.charcoal_block,Block of Charcoal +text.gm4.guidebook.module_desc.forming_press,Create a Forming Press to unlock more efficient recipes for all types of brick and Charcoal. +text.gm4.guidebook.forming_press.description,"Forming Presses can process smelting and crafting operations, such as brick crafting, charcoal creation, and lava generation.\n\nThey can be crafted in a Custom Crafter." +text.gm4.guidebook.forming_press.doubling,The overall output of the Forming Press is approximately doubled compared to normal crafting operations. +text.gm4.guidebook.forming_press.crafting,A Forming Press can be crafted in a Custom Crafter: +text.gm4.guidebook.forming_press.recipes,The following recipes can be used in a Forming Press: diff --git a/gm4_forming_press/beet.yaml b/gm4_forming_press/beet.yaml index 1819ea6166..6d33800cf3 100644 --- a/gm4_forming_press/beet.yaml +++ b/gm4_forming_press/beet.yaml @@ -5,6 +5,9 @@ version: 1.3.X data_pack: load: . +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module - gm4.plugins.include.lib_machines @@ -17,6 +20,44 @@ meta: lib_custom_crafters: 3.0.0 lib_machines: 1.1.0 schedule_loops: [main] + model_data: + - item: player_head + reference: item/forming_press + model: block/forming_press + - item: piston + template: block + transforms: + - name: item_display + origin: [0.5, 0.5, 0.5] + scale: [0.624, 0.624, 0.624] + rotation: [180, 0, 0] + translation: [0, -0.79, 0] + broadcast: + - reference: block/forming_press + textures: + front: block/forming_press_side + side: block/forming_press_side + top: block/forming_press_top_out + bottom: block/forming_press_bottom + - reference: block/forming_press_side + textures: + front: block/forming_press_front + side: block/forming_press_side + top: block/forming_press_top + bottom: block/forming_press_bottom + - reference: block/forming_press_down + textures: + front: block/forming_press_side + side: block/forming_press_side + top: block/forming_press_top + bottom: block/forming_press_bottom_out + - item: coal_block + reference: item/charcoal_block + template: vanilla + gui_fonts: + - translation: gui.gm4.forming_press + container: dropper + texture: gui/container/forming_press website: description: Create a Forming Press to unlock more efficient recipes for all types of brick and Charcoal. recommended: @@ -45,6 +86,6 @@ meta: - BluePsychoRanger - TheEpyonProject Textures by: - - kyrkis + - Kyrius Icon Design: - BluePsychoRanger diff --git a/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/down.mcfunction b/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/down.mcfunction index 86ce254dd0..3607b7d1dc 100644 --- a/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/down.mcfunction +++ b/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/down.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=down]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.forming_press","fallback":"Forming Press"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:offscreen"},{"translate":"gui.gm4.forming_press","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.4 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_forming_press_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_forming_press_stand"',ArmorItems:[{},{},{},{id:"minecraft:piston",Count:1b,tag:{CustomModelData:3420007}}],Pose:{Head:[180f,0f,0f]},Rotation:[180.0f,0.0f]} +summon armor_stand ~ ~-0.4 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_forming_press_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_forming_press_stand"',ArmorItems:[{},{},{},{id:"minecraft:piston",Count:1b,tag:{CustomModelData:"block/forming_press_down"}}],Pose:{Head:[180f,0f,0f]},Rotation:[180.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_forming_press","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_forming_press"',Rotation:[180.0f,0.0f]} diff --git a/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/east.mcfunction b/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/east.mcfunction index 0014c19069..da3df088fe 100644 --- a/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/east.mcfunction +++ b/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/east.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=east]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.forming_press","fallback":"Forming Press"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:offscreen"},{"translate":"gui.gm4.forming_press","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.4 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_forming_press_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_forming_press_stand"',ArmorItems:[{},{},{},{id:"minecraft:piston",Count:1b,tag:{CustomModelData:3420006}}],Pose:{Head:[180f,0f,0f]},Rotation:[-90.0f,0.0f]} +summon armor_stand ~ ~-0.4 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_forming_press_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_forming_press_stand"',ArmorItems:[{},{},{},{id:"minecraft:piston",Count:1b,tag:{CustomModelData:"block/forming_press_side"}}],Pose:{Head:[180f,0f,0f]},Rotation:[-90.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_forming_press","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_forming_press"',Rotation:[-90.0f,0.0f]} diff --git a/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/north.mcfunction b/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/north.mcfunction index 6a364af62c..9d006ebf7d 100644 --- a/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/north.mcfunction +++ b/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/north.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=north]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.forming_press","fallback":"Forming Press"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:offscreen"},{"translate":"gui.gm4.forming_press","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.4 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_forming_press_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_forming_press_stand"',ArmorItems:[{},{},{},{id:"minecraft:piston",Count:1b,tag:{CustomModelData:3420006}}],Pose:{Head:[180f,0f,0f]},Rotation:[180.0f,0.0f]} +summon armor_stand ~ ~-0.4 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_forming_press_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_forming_press_stand"',ArmorItems:[{},{},{},{id:"minecraft:piston",Count:1b,tag:{CustomModelData:"block/forming_press_side"}}],Pose:{Head:[180f,0f,0f]},Rotation:[180.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_forming_press","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_forming_press"',Rotation:[180.0f,0.0f]} diff --git a/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/south.mcfunction b/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/south.mcfunction index 21b8d3d209..56b4f3a727 100644 --- a/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/south.mcfunction +++ b/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/south.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=south]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.forming_press","fallback":"Forming Press"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:offscreen"},{"translate":"gui.gm4.forming_press","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.4 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_forming_press_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_forming_press_stand"',ArmorItems:[{},{},{},{id:"minecraft:piston",Count:1b,tag:{CustomModelData:3420006}}],Pose:{Head:[180f,0f,0f]},Rotation:[0.0f,0.0f]} +summon armor_stand ~ ~-0.4 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_forming_press_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_forming_press_stand"',ArmorItems:[{},{},{},{id:"minecraft:piston",Count:1b,tag:{CustomModelData:"block/forming_press_side"}}],Pose:{Head:[180f,0f,0f]},Rotation:[0.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_forming_press","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_forming_press"',Rotation:[0.0f,0.0f]} diff --git a/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/up.mcfunction b/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/up.mcfunction index 281ac07601..77d8a3619c 100644 --- a/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/up.mcfunction +++ b/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/up.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=up]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.forming_press","fallback":"Forming Press"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:offscreen"},{"translate":"gui.gm4.forming_press","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.4 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_forming_press_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_forming_press_stand"',ArmorItems:[{},{},{},{id:"minecraft:piston",Count:1b,tag:{CustomModelData:3420001}}],Pose:{Head:[180f,0f,0f]},Rotation:[0.0f,0.0f]} +summon armor_stand ~ ~-0.4 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_forming_press_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_forming_press_stand"',ArmorItems:[{},{},{},{id:"minecraft:piston",Count:1b,tag:{CustomModelData:"block/forming_press"}}],Pose:{Head:[180f,0f,0f]},Rotation:[0.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_forming_press","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_forming_press"',Rotation:[0.0f,0.0f]} diff --git a/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/west.mcfunction b/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/west.mcfunction index d74ea9f1f6..37f76141ce 100644 --- a/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/west.mcfunction +++ b/gm4_forming_press/data/gm4_forming_press/functions/machine/rotate/west.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=west]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.forming_press","fallback":"Forming Press"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:offscreen"},{"translate":"gui.gm4.forming_press","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:half_invert"},{"translate":"container.gm4.forming_press","fallback":"Forming Press","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.4 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_forming_press_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_forming_press_stand"',ArmorItems:[{},{},{},{id:"minecraft:piston",Count:1b,tag:{CustomModelData:3420006}}],Pose:{Head:[180f,0f,0f]},Rotation:[90.0f,0.0f]} +summon armor_stand ~ ~-0.4 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_forming_press_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_forming_press_stand"',ArmorItems:[{},{},{},{id:"minecraft:piston",Count:1b,tag:{CustomModelData:"block/forming_press_side"}}],Pose:{Head:[180f,0f,0f]},Rotation:[90.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_forming_press","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_forming_press"',Rotation:[90.0f,0.0f]} diff --git a/gm4_forming_press/data/gm4_forming_press/functions/relocate/summon_block_markers.mcfunction b/gm4_forming_press/data/gm4_forming_press/functions/relocate/summon_block_markers.mcfunction index 3597c4f8cb..7cd9a28102 100644 --- a/gm4_forming_press/data/gm4_forming_press/functions/relocate/summon_block_markers.mcfunction +++ b/gm4_forming_press/data/gm4_forming_press/functions/relocate/summon_block_markers.mcfunction @@ -5,7 +5,7 @@ scoreboard players set $placed_block gm4_rl_data 1 -summon armor_stand ~ ~-0.4 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_forming_press_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_forming_press_stand"',ArmorItems:[{},{},{},{id:"minecraft:piston",Count:1b,tag:{CustomModelData:3420001}}],Pose:{Head:[180f,0f,0f]},Rotation:[0.0f,0.0f]} +summon armor_stand ~ ~-0.4 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_forming_press_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_forming_press_stand"',ArmorItems:[{},{},{},{id:"minecraft:piston",Count:1b,tag:{CustomModelData:"block/forming_press"}}],Pose:{Head:[180f,0f,0f]},Rotation:[0.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_forming_press","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_forming_press"',Rotation:[0.0f,0.0f]} execute as @e[tag=gm4_new_machine,distance=..2] run data modify entity @s Rotation set from storage gm4_relocators:temp gm4_relocation.entity_data.Rotation diff --git a/gm4_forming_press/data/gm4_forming_press/guidebook/forming_press.json b/gm4_forming_press/data/gm4_forming_press/guidebook/forming_press.json index 90d41e203b..9d8c19c28c 100644 --- a/gm4_forming_press/data/gm4_forming_press/guidebook/forming_press.json +++ b/gm4_forming_press/data/gm4_forming_press/guidebook/forming_press.json @@ -3,8 +3,7 @@ "name": "Forming Press", "module_type": "module", "icon": { - "item": "minecraft:furnace", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:furnace" }, "criteria": { "create_custom_crafter": { diff --git a/gm4_forming_press/data/gm4_forming_press/loot_tables/items/charcoal_block.json b/gm4_forming_press/data/gm4_forming_press/loot_tables/items/charcoal_block.json index b802708b90..cad950d55a 100644 --- a/gm4_forming_press/data/gm4_forming_press/loot_tables/items/charcoal_block.json +++ b/gm4_forming_press/data/gm4_forming_press/loot_tables/items/charcoal_block.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420001}" + "tag": "{CustomModelData:'item/charcoal_block'}" }, { "function": "set_name", diff --git a/gm4_forming_press/data/gm4_forming_press/loot_tables/items/forming_press.json b/gm4_forming_press/data/gm4_forming_press/loot_tables/items/forming_press.json index aa7b143ad6..26e2875ec7 100644 --- a/gm4_forming_press/data/gm4_forming_press/loot_tables/items/forming_press.json +++ b/gm4_forming_press/data/gm4_forming_press/loot_tables/items/forming_press.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420129,gm4_machines:{id:\"forming_press\"},SkullOwner:{Name:\"gm4_forming_press\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$forming_press\"}]}}}" + "tag": "{CustomModelData:'item/forming_press',gm4_machines:{id:\"forming_press\"},SkullOwner:{Name:\"gm4_forming_press\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$forming_press\"}]}}}" }, { "function": "set_name", diff --git a/gm4_forming_press/data/gm4_master_crafting/functions/relocate/place_down.mcfunction b/gm4_forming_press/data/gm4_master_crafting/functions/relocate/place_down.mcfunction deleted file mode 100644 index 04d9d059a4..0000000000 --- a/gm4_forming_press/data/gm4_master_crafting/functions/relocate/place_down.mcfunction +++ /dev/null @@ -1,12 +0,0 @@ -# @s = command block placed by "gm4_relocators:backwards_compatibility/place_down/replace_head" -# located at the command block (where the player head was) - -execute if block ~ ~ ~ command_block[facing=east] run setblock ~ ~ ~ dropper[facing=west] -execute if block ~ ~ ~ command_block[facing=west] run setblock ~ ~ ~ dropper[facing=east] -execute if block ~ ~ ~ command_block[facing=south] run setblock ~ ~ ~ dropper[facing=north] -execute if block ~ ~ ~ command_block[facing=north] run setblock ~ ~ ~ dropper[facing=south] -execute if block ~ ~ ~ command_block[facing=down] run setblock ~ ~ ~ dropper[facing=up] - -data merge block ~ ~ ~ {CustomName:'{"translate":"block.gm4.master_crafter","fallback":"Mastercraftsman\'s Bench"}'} -summon armor_stand ~ ~-.4 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,DisabledSlots:2039552,Tags:["gm4_no_edit","gm4_custom_crafter","gm4_master_crafting"],HasVisualFire:1,CustomName:'"gm4_master_crafter"',ArmorItems:[{},{},{},{id:"minecraft:piston",Count:1b,tag:{CustomModelData:3420001}}],Pose:{Head:[180f,0f,0f]}} -playsound entity.blaze.hurt block @a[distance=..4] ~ ~ ~ 1 0.8 1 diff --git a/gm4_forming_press/overlay_26/data/gm4_forming_press/guidebook/forming_press.json b/gm4_forming_press/overlay_26/data/gm4_forming_press/guidebook/forming_press.json index 6a822efd43..9bdfeed644 100644 --- a/gm4_forming_press/overlay_26/data/gm4_forming_press/guidebook/forming_press.json +++ b/gm4_forming_press/overlay_26/data/gm4_forming_press/guidebook/forming_press.json @@ -3,8 +3,7 @@ "name": "Forming Press", "module_type": "module", "icon": { - "item": "minecraft:furnace", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:furnace" }, "criteria": { "create_custom_crafter": { diff --git a/gm4_fulcio_shamir/assets/translations.csv b/gm4_fulcio_shamir/assets/translations.csv new file mode 100644 index 0000000000..bcfea25b73 --- /dev/null +++ b/gm4_fulcio_shamir/assets/translations.csv @@ -0,0 +1,5 @@ +key,en_us +item.gm4.shamir.fulcio,Fulcio +text.gm4.guidebook.module_desc.fulcio_shamir,Adds the shamir 'Fulcio' to Metallurgy. It allows you to place blocks in mid-air! This also enables you to choose the orientation of blocks like logs without needing a supporting block. +text.gm4.guidebook.fulcio_shamir.description,"Fulcio changes block placement. While sneaking, blocks can be placed in mid-air." +text.gm4.guidebook.fulcio_shamir.usage,The Fulcio Shamir is found on Barimium Bands. It can be placed onto compasses.\n\nHolding the tool and sneaking will create a temporary space where blocks can be placed. diff --git a/gm4_fulcio_shamir/beet.yaml b/gm4_fulcio_shamir/beet.yaml index d443062f23..d010a4f519 100644 --- a/gm4_fulcio_shamir/beet.yaml +++ b/gm4_fulcio_shamir/beet.yaml @@ -5,7 +5,11 @@ version: 1.2.X data_pack: load: . +resource_pack: + load: ../gm4_metallurgy + pipeline: + - gm4_metallurgy.shamir_model_template - gm4.plugins.extend.module meta: @@ -16,6 +20,13 @@ meta: schedule_loops: - main - 4_tick + model_data: + - item: compass + reference: shamir/fulcio + template: + name: shamir + metal: barimium + textures_path: gm4_metallurgy:item/shamir/barimium website: description: Adds the shamir 'Fulcio' to Metallurgy. It allows you to place blocks in mid-air! This also enables you to choose the orientation of blocks like logs without needing a supporting block. recommended: [] diff --git a/gm4_fulcio_shamir/data/gm4_fulcio_shamir/functions/init.mcfunction b/gm4_fulcio_shamir/data/gm4_fulcio_shamir/functions/init.mcfunction index b17032eb39..7913c99c4a 100644 --- a/gm4_fulcio_shamir/data/gm4_fulcio_shamir/functions/init.mcfunction +++ b/gm4_fulcio_shamir/data/gm4_fulcio_shamir/functions/init.mcfunction @@ -8,7 +8,7 @@ scoreboard players set fulcio_shamir gm4_modules 1 data remove storage gm4_player_heads:register heads[{id:"gm4_fulcio_shamir:band/v0"}] # register shamir with lib_player_heads -execute unless data storage gm4_player_heads:register heads[{id:"gm4_fulcio_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_fulcio_shamir:band/v1",name:"[Drop to Fix Item] gm4_fulcio_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"fulcio",metal:{type:"barimium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/barimium",CustomModelData:3420115,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#D18A8A","translate":"item.gm4.metallurgy.band","fallback":"Barimium Band","with":[{"translate":"item.gm4.metallurgy.barimium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.fulcio","fallback":"Fulcio"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_fulcio_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_fulcio_shamir:band/v1",name:"[Drop to Fix Item] gm4_fulcio_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"fulcio",metal:{type:"barimium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/barimium",CustomModelData:"shamir/fulcio",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#D18A8A","translate":"item.gm4.metallurgy.band","fallback":"Barimium Band","with":[{"translate":"item.gm4.metallurgy.barimium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.fulcio","fallback":"Fulcio"}']}}} schedule function gm4_fulcio_shamir:main 1t schedule function gm4_fulcio_shamir:4_tick 1t diff --git a/gm4_fulcio_shamir/data/gm4_fulcio_shamir/guidebook/fulcio_shamir.json b/gm4_fulcio_shamir/data/gm4_fulcio_shamir/guidebook/fulcio_shamir.json index d09d64a400..3e53deb473 100644 --- a/gm4_fulcio_shamir/data/gm4_fulcio_shamir/guidebook/fulcio_shamir.json +++ b/gm4_fulcio_shamir/data/gm4_fulcio_shamir/guidebook/fulcio_shamir.json @@ -4,8 +4,7 @@ "module_type": "expansion", "base_module": "metallurgy", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420115}" + "item": "minecraft:anvil" }, "criteria": { "obtain_fulcio_shamir": { diff --git a/gm4_fulcio_shamir/data/gm4_fulcio_shamir/loot_tables/band.json b/gm4_fulcio_shamir/data/gm4_fulcio_shamir/loot_tables/band.json index ccb516728a..c507a3fd50 100644 --- a/gm4_fulcio_shamir/data/gm4_fulcio_shamir/loot_tables/band.json +++ b/gm4_fulcio_shamir/data/gm4_fulcio_shamir/loot_tables/band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420115,SkullOwner:{Name:\"[Drop to Fix Item] gm4_fulcio_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"fulcio\"}}" + "tag": "{CustomModelData:'shamir/fulcio',SkullOwner:{Name:\"[Drop to Fix Item] gm4_fulcio_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"fulcio\"}}" }, { "function": "minecraft:set_lore", diff --git a/gm4_guidebook/assets/gm4/font/gm4_items.json b/gm4_guidebook/assets/gm4/font/gm4_items.json new file mode 100644 index 0000000000..b8d82f3328 --- /dev/null +++ b/gm4_guidebook/assets/gm4/font/gm4_items.json @@ -0,0 +1,184 @@ +{ + "providers": [ + { + "type": "bitmap", + "file": "gm4:item/boots_of_ostara/boots_of_ostara_overlay.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u4101" + ] + }, + { + "type": "bitmap", + "file": "gm4:item/boots_of_ostara/boots_of_ostara.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u4102" + ] + }, + { + "type": "bitmap", + "file": "gm4:item/scuba_gear/flippers_overlay.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u4103" + ] + }, + { + "type": "bitmap", + "file": "gm4:item/scuba_gear/flippers.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u4104" + ] + }, + { + "type": "bitmap", + "file": "gm4:item/scuba_gear/scuba_helmet.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u4105" + ] + }, + { + "type": "bitmap", + "file": "gm4:item/scuba_gear/scuba_tank.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u4106" + ] + }, + { + "type": "bitmap", + "file": "gm4:item/heart_canisters/heart_canister_tier_1.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u4109" + ] + }, + { + "type": "bitmap", + "file": "gm4:item/tunnel_bores/piston_minecart.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u4110" + ] + }, + { + "type": "bitmap", + "file": "gm4:item/orb_of_ankou/orb_of_ankou_overlay.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u4111" + ] + }, + { + "type": "bitmap", + "file": "gm4:item/orb_of_ankou/orb_of_ankou.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u4112" + ] + }, + { + "type": "bitmap", + "file": "gm4:item/boots_of_ostara/boots_of_ostara_overlay.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u4201" + ] + }, + { + "type": "bitmap", + "file": "gm4:item/boots_of_ostara/boots_of_ostara.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u4202" + ] + }, + { + "type": "bitmap", + "file": "gm4:item/scuba_gear/flippers_overlay.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u4203" + ] + }, + { + "type": "bitmap", + "file": "gm4:item/scuba_gear/flippers.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u4204" + ] + }, + { + "type": "bitmap", + "file": "gm4:item/scuba_gear/scuba_helmet.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u4205" + ] + }, + { + "type": "bitmap", + "file": "gm4:item/scuba_gear/scuba_tank.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u4206" + ] + }, + { + "type": "bitmap", + "file": "gm4:item/heart_canisters/heart_canister_tier_1.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u4209" + ] + }, + { + "type": "bitmap", + "file": "gm4:item/tunnel_bores/piston_minecart.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u4210" + ] + }, + { + "type": "bitmap", + "file": "gm4:item/orb_of_ankou/orb_of_ankou_overlay.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u4211" + ] + }, + { + "type": "bitmap", + "file": "gm4:item/orb_of_ankou/orb_of_ankou.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u4212" + ] + } + ] +} diff --git a/gm4_guidebook/assets/gm4/font/guidebook.json b/gm4_guidebook/assets/gm4/font/guidebook.json new file mode 100644 index 0000000000..d767ee6e67 --- /dev/null +++ b/gm4_guidebook/assets/gm4/font/guidebook.json @@ -0,0 +1,160 @@ +{ + "providers": [ + { + "type": "space", + "advances": { + " ": 4, + "\u200c": 0, + "\ue001": -1, + "\ue002": -2, + "\ue005": -5, + "\ue007": -7, + "\ue008": -8, + "\ue010": -10, + "\ue012": -12, + "\ue014": -14, + "\ue016": -16, + "\ue030": -30, + "\ue148": -161, + "\uf001": 1, + "\uf003": 3, + "\uf004": 4, + "\uf008": 8, + "\uf015": 15, + "\uf016": 16, + "\uf018": 18, + "\uf032": 32, + "\uf037": 37, + "\uf048": 48, + "\uf110": 110, + "☒": 10 + } + }, + { + "type": "bitmap", + "file": "gm4_guidebook:gui/shapeless.png", + "ascent": 8, + "height": 10, + "chars": [ + "🔀" + ] + }, + { + "type": "bitmap", + "file": "gm4_guidebook:gui/locked_page.png", + "ascent": 24, + "height": 40, + "chars": [ + "?" + ] + }, + { + "type": "bitmap", + "file": "gm4_guidebook:gui/toast.png", + "ascent": 25, + "height": 32, + "chars": [ + "\u9000" + ] + }, + { + "type": "bitmap", + "file": "gm4_guidebook:gui/toast_icon.png", + "ascent": 25, + "height": 32, + "chars": [ + "\u9001" + ] + }, + { + "type": "bitmap", + "file": "gm4_guidebook:gui/crafting_grid.png", + "ascent": 7, + "height": 68, + "chars": [ + "\u9002" + ] + }, + { + "type": "bitmap", + "file": "gm4_guidebook:gui/crafting_grid.png", + "ascent": -32768, + "height": -68, + "chars": [ + "\u9003" + ] + }, + { + "type": "bitmap", + "file": "gm4_guidebook:gui/page.png", + "ascent": 55, + "height": 256, + "chars": [ + "\u9004" + ] + }, + { + "type": "bitmap", + "file": "gm4_guidebook:gui/page.png", + "ascent": -32768, + "height": -256, + "chars": [ + "\u9005" + ] + }, + { + "type": "bitmap", + "file": "gm4_guidebook:gui/page_edge.png", + "ascent": -32768, + "height": -256, + "chars": [ + "\u9006" + ] + }, + { + "type": "bitmap", + "file": "gm4_guidebook:gui/page_edge.png", + "ascent": 55, + "height": 256, + "chars": [ + "\u9007" + ] + }, + { + "type": "bitmap", + "file": "gm4_guidebook:gui/page_intro.png", + "ascent": 37, + "height": 256, + "chars": [ + "\u9008" + ] + }, + { + "type": "bitmap", + "file": "gm4_guidebook:gui/page_intro.png", + "ascent": -32768, + "height": -256, + "chars": [ + "\u9009" + ] + }, + { + "type": "bitmap", + "file": "gm4_guidebook:gui/page_edge_intro.png", + "ascent": -32768, + "height": -256, + "chars": [ + "\u900a" + ] + }, + { + "type": "bitmap", + "file": "gm4_guidebook:gui/page_edge_intro.png", + "ascent": 37, + "height": 256, + "chars": [ + "\u900b" + ] + } + ] +} diff --git a/gm4_guidebook/assets/gm4/font/vanilla_items.json b/gm4_guidebook/assets/gm4/font/vanilla_items.json new file mode 100644 index 0000000000..a77edc40c6 --- /dev/null +++ b/gm4_guidebook/assets/gm4/font/vanilla_items.json @@ -0,0 +1,7996 @@ +{ + "providers": [ + { + "type": "bitmap", + "file": "minecraft:item/acacia_boat.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0903" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/acacia_door.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0904" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/acacia_sapling.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0905" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/acacia_sign.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0906" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/activator_rail.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0907" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/allium.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0908" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/amethyst_cluster.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0909" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/amethyst_shard.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u090a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/apple.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u090b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/armor_stand.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u090c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/arrow.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u090d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/axolotl_bucket.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u090e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/azure_bluet.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u090f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/baked_potato.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0910" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bamboo.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0911" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/barrier.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0912" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/beef.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0913" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/beetroot.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0914" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/beetroot_seeds.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0915" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/beetroot_soup.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0916" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bell.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0917" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/birch_boat.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0916" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/birch_door.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0919" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/birch_sapling.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u091a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/birch_sign.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u091b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/black_candle.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u091c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/black_dye.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u091d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/black_stained_glass.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u091e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/blaze_powder.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u091f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/blaze_rod.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0920" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/blue_candle.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0921" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/blue_dye.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0922" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/blue_orchid.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0923" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/blue_stained_glass.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0924" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bone.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0925" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bone_meal.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0926" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/book.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0927" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bow.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0928" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bowl.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0929" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/brain_coral.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u092a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/brain_coral_fan.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u092b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bread.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u092c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/brewing_stand.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u092d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/brick.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u092e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/broken_elytra.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u092f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/brown_candle.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0930" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/brown_dye.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0931" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/brown_mushroom.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0932" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/brown_stained_glass.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0933" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/bubble_coral.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0934" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/bubble_coral_fan.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0935" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bucket.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0936" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bundle.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0937" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bundle_filled.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0938" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cake.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0939" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/campfire.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u093a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/candle.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u093b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/carrot.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u093c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/carrot_on_a_stick.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u093d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cauldron.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u093e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chain.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u093f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chainmail_boots.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0940" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chainmail_chestplate.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0941" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chainmail_helmet.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0942" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chainmail_leggings.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0943" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/charcoal.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0944" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chest_minecart.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0945" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chicken.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0946" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chorus_fruit.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0947" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/clay_ball.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0948" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/clock_00.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0949" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/coal.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u094a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/cobweb.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u094b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cocoa_beans.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u094c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cod.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u094d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cod_bucket.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u094e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/command_block_minecart.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u094f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/comparator.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0950" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/compass_16.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0951" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_beef.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0952" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_chicken.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0953" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_cod.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0954" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_mutton.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0955" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_porkchop.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0956" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_rabbit.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0957" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_salmon.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0958" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cookie.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0959" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/copper_ingot.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u095a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/cornflower.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u095b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/creeper_banner_pattern.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u095c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/crimson_door.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u095d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/crimson_fungus.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u095e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/crimson_roots.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u095f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/crimson_sign.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0960" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/crossbow_standby.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0961" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/crossbow_arrow.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0962" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/crossbow_firework.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0963" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cyan_candle.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0964" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cyan_dye.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0965" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/cyan_stained_glass.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0966" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dandelion.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0967" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/dark_oak_boat.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0968" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/dark_oak_door.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0969" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dark_oak_sapling.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u096a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/dark_oak_sign.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u096b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_brain_coral.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u096c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_brain_coral_fan.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u096d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_bubble_coral.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u096e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_bubble_coral_fan.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u096f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_bush.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0970" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_fire_coral.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0971" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_fire_coral_fan.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0972" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_horn_coral.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0973" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_horn_coral_fan.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0974" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_tube_coral.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0975" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_tube_coral_fan.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0976" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/detector_rail.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0977" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0978" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_axe.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0979" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_boots.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u097a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_chestplate.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u097b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_helmet.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u097c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_hoe.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u097d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_horse_armor.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u097e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_leggings.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u097f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_pickaxe.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0980" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_shovel.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0981" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_sword.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0982" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/dragon_breath.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0983" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/dried_kelp.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0984" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/egg.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0985" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/elytra.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0986" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/emerald.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0987" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/enchanted_book.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0988" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/end_crystal.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0989" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/ender_eye.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u098a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/ender_pearl.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u098b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/experience_bottle.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u098c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/feather.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u098d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/fermented_spider_eye.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u098e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/fern.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u098f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/filled_map.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0990" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/filled_map_markings.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0991" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/fire_charge.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0992" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/fire_coral.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0993" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/fire_coral_fan.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0994" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/firework_rocket.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0995" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/firework_star.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0996" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/firework_star_overlay.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0997" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/fishing_rod.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0998" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/flint.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0999" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/flint_and_steel.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u099a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/flower_banner_pattern.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u099b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/flower_pot.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u099c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/furnace_minecart.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u099d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/ghast_tear.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u099e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glass_bottle.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u099f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/glass.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09a0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glistering_melon_slice.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09a1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/globe_banner_pattern.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09a2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glow_berries.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09a3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glow_ink_sac.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09a4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glow_item_frame.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09a5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/glow_lichen.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09a6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glowstone_dust.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09a7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/gold_ingot.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09a8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/gold_nugget.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09a9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_apple.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09aa" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_axe.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09ab" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_boots.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09ac" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_carrot.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09ad" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_chestplate.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09ae" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_helmet.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09af" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_hoe.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09b0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_horse_armor.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09b1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_leggings.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09b2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_pickaxe.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09b3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_shovel.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09b4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_sword.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09b5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/gray_candle.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09b7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/gray_dye.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09b8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/gray_stained_glass.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09b9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/green_candle.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09ba" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/green_dye.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09bb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/green_stained_glass.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09bc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/gunpowder.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09bd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/hanging_roots.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09be" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/heart_of_the_sea.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09bf" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/honey_bottle.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09c0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/honeycomb.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09c1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/hopper.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09c2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/hopper_minecart.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09c3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/horn_coral.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09c4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/horn_coral_fan.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09c5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/ink_sac.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09c6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_axe.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09c7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/iron_bars.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09c8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_boots.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09c9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_chestplate.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09ca" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_door.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09cb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_helmet.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09cc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_hoe.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09cd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_horse_armor.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09ce" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_ingot.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09cf" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_leggings.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09d0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_nugget.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09d1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_pickaxe.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09d2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_shovel.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09d3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_sword.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09d4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/item_frame.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09d5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/jungle_boat.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09d6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/jungle_door.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09d7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/jungle_sapling.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09d8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/jungle_sign.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09d9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/kelp.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09da" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/knowledge_book.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09db" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/ladder.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09dc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lantern.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09dd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lapis_lazuli.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09de" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/large_amethyst_bud.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09df" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/large_fern_top.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09e0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lava_bucket.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09e1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lead.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09e2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09e3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_boots.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09e4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_boots_overlay.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09e5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_chestplate.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09e6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_chestplate_overlay.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09e7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_helmet.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09e8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_helmet_overlay.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09e9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_horse_armor.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09ea" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_leggings.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09eb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_leggings_overlay.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09ec" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/lever.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09ed" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09ee" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_00.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09ef" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_01.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09f0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_02.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09f1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_03.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09f2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_04.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09f3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_05.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09f4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_06.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09f5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_07.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09f6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_08.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09f7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_09.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09f8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_10.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09f9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_11.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09fa" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_12.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09fb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_13.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09fc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_14.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09fd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_15.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09fe" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_blue_candle.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u09ff" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_blue_dye.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a00" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/light_blue_stained_glass.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a01" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_gray_candle.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a02" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_gray_dye.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a03" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/light_gray_stained_glass.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a04" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/lilac_top.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a05" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/lily_of_the_valley.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a06" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/lily_pad.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a07" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lime_candle.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a08" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lime_dye.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a09" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/lime_stained_glass.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a0a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lingering_potion.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a0b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/magenta_candle.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a0c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/magenta_dye.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a0d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/magenta_stained_glass.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a0e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/magma_cream.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a0f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/map.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a10" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/medium_amethyst_bud.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a11" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/melon_seeds.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a12" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/melon_slice.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a13" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/milk_bucket.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a14" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/minecart.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a15" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/mojang_banner_pattern.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a16" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/mushroom_stew.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a17" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_11.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a16" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_13.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a19" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_blocks.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a1a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_cat.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a1b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_chirp.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a1c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_far.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a1d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_mall.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a1e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_mellohi.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a1f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_pigstep.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a20" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_stal.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a21" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_strad.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a22" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_wait.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a23" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_ward.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a24" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/mutton.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a25" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/name_tag.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a26" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/nautilus_shell.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a27" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/nether_brick.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a28" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/nether_sprouts.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a29" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/nether_star.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a2a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/nether_wart.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a2b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_axe.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a2c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_boots.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a2d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_chestplate.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a2e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_helmet.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a2f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_hoe.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a30" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_ingot.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a31" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_leggings.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a32" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_pickaxe.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a33" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_scrap.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a34" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_shovel.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a35" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_sword.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a36" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/oak_boat.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a37" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/oak_door.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a38" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/oak_sapling.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a39" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/oak_sign.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a3a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/orange_candle.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a3b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/orange_dye.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a3c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/orange_stained_glass.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a3d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/orange_tulip.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a3e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/oxeye_daisy.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a3f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/painting.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a40" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/paper.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a41" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/peony_top.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a42" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/phantom_membrane.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a43" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/piglin_banner_pattern.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a44" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pink_candle.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a45" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pink_dye.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a46" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/pink_stained_glass.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a47" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/pink_tulip.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a48" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pointed_dripstone.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a49" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/poisonous_potato.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a4a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/popped_chorus_fruit.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a4b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/poppy.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a4c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/porkchop.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a4d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/potato.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a4e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/potion.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a4f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/potion_overlay.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a50" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/powder_snow_bucket.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a51" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/powered_rail.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a52" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/prismarine_crystals.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a53" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/prismarine_shard.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a54" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pufferfish.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a55" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pufferfish_bucket.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a56" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pumpkin_pie.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a57" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pumpkin_seeds.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a58" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/purple_candle.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a59" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/purple_dye.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a5a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/purple_stained_glass.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a5b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/quartz.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a5c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/rabbit.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a5d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/rabbit_foot.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a5e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/rabbit_hide.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a5f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/rabbit_stew.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a60" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/rail.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a61" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/raw_copper.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a62" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/raw_gold.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a63" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/raw_iron.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a64" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/red_candle.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a65" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/red_dye.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a66" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/red_mushroom.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a67" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/red_stained_glass.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a68" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/red_tulip.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a69" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/redstone.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a6a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/redstone_torch.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a6b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/repeater.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a6c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/rose_bush_top.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a6d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/rotten_flesh.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a6e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/saddle.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a6f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/salmon.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a70" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/salmon_bucket.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a71" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/scute.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a72" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/sea_pickle.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a73" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/seagrass.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a74" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/shears.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a75" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/shulker_shell.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a76" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/skull_banner_pattern.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a77" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/slime_ball.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a78" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/small_amethyst_bud.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a79" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/snowball.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a7a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/soul_campfire.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a7b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/soul_lantern.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a7c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/soul_torch.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a7d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spawn_egg.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a7e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spawn_egg_overlay.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a7f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spectral_arrow.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a80" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spider_eye.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a81" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/splash_potion.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a82" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spruce_boat.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a83" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spruce_door.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a84" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/spruce_sapling.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a85" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spruce_sign.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a86" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spyglass.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a87" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stick.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a88" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stone_axe.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a89" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stone_hoe.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a8a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stone_pickaxe.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a8b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stone_shovel.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a8c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stone_sword.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a8d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/string.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a8e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/structure_void.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a8f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/sugar.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a90" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/sugar_cane.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a91" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/sunflower_front.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a92" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/suspicious_stew.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a93" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/sweet_berries.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a94" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/tall_grass_top.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a95" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tipped_arrow_base.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a96" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tipped_arrow_base.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a97" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tipped_arrow_head.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a98" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tnt_minecart.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a99" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/torch.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a9a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/totem_of_undying.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a9b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/trident.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a9c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/tripwire_hook.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a9d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tropical_fish.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a9e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tropical_fish_bucket.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0a9f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/tube_coral.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0aa0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/tube_coral_fan.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0aa1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/turtle_egg.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0aa2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/turtle_helmet.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0aa3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/twisting_vines_plant.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0aa4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/vine.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0aa5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/warped_door.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0aa6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/warped_fungus.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0aa7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/warped_fungus_on_a_stick.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0aa8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/warped_roots.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0aa9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/warped_sign.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0aaa" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/water_bucket.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0aab" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/weeping_vines_plant.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0aac" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wheat.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0aad" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wheat_seeds.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0aae" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/white_candle.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0aaf" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/white_dye.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0ab0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/white_stained_glass.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0ab1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/white_tulip.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0ab2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/wither_rose.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0ab3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wooden_axe.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0ab4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wooden_hoe.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0ab5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wooden_pickaxe.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0ab6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wooden_shovel.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0ab7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wooden_sword.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0ab8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/writable_book.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0ab9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/written_book.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0aba" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/yellow_candle.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0abb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/yellow_dye.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0abc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/yellow_stained_glass.png", + "ascent": -32768, + "height": -16, + "chars": [ + "\u0abd" + ] + }, + { + "type": "bitmap", + "file": "gm4_guidebook:font_magic/block_sheet.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ad7\u0ad8\u0ad9\u0ada\u0adb\u0adc\u0add\u0ade\u0adf\u0ae0\u0ae1\u0ae2\u0ae3\u0ae4\u0ae5\u0ae6\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0af0\u0af1", + "\u0af2\u0af3\u0af4\u0af5\u0af6\u0af7\u0af8\u0af9\u0afa\u0afb\u0afc\u0afd\u0afe\u0aff\u0b00\u0b01\u0b02\u0b03\u0b04\u0b05\u0b06\u0b07\u0b08\u0b09\u0b0a\u0b0b\u0b0c", + "\u0b0d\u0b0e\u0b0f\u0b10\u0b11\u0b12\u0b13\u0b14\u0b15\u0b16\u0b17\u0b16\u0b19\u0b1a\u0b1b\u0b1c\u0b1d\u0b1e\u0b1f\u0b20\u0b21\u0b22\u0b23\u0b24\u0b25\u0b26\u0b27", + "\u0b28\u0b29\u0b2a\u0b2b\u0b2c\u0b2d\u0b2e\u0b2f\u0b30\u0b31\u0b32\u0b33\u0b34\u0b35\u0b36\u0b37\u0b38\u0b39\u0b3a\u0b3b\u0b3c\u0b3d\u0b3e\u0b3f\u0b40\u0b41\u0b42", + "\u0b43\u0b44\u0b45\u0b46\u0b47\u0b48\u0b49\u0b4a\u0b4b\u0b4c\u0b4d\u0b4e\u0b4f\u0b50\u0b51\u0b52\u0b53\u0b54\u0b55\u0b56\u0b57\u0b58\u0b59\u0b5a\u0b5b\u0b5c\u0b5d", + "\u0b5e\u0b5f\u0b60\u0b61\u0b62\u0b63\u0b64\u0b65\u0b66\u0b67\u0b68\u0b69\u0b6a\u0b6b\u0b6c\u0b6d\u0b6e\u0b6f\u0b70\u0b71\u0b72\u0b73\u0b74\u0b75\u0b76\u0b77\u0b78", + "\u0b79\u0b7a\u0b7b\u0b7c\u0b7d\u0b7e\u0b7f\u0b80\u0b81\u0b82\u0b83\u0b84\u0b85\u0b86\u0b87\u0b88\u0b89\u0b8a\u0b8b\u0b8c\u0b8d\u0b8e\u0b8f\u0b90\u0b91\u0b92\u0b93", + "\u0b94\u0b95\u0b96\u0b97\u0b98\u0b99\u0b9a\u0b9b\u0b9c\u0b9d\u0b9e\u0b9f\u0ba0\u0ba1\u0ba2\u0ba3\u0ba4\u0ba5\u0ba6\u0ba7\u0ba8\u0ba9\u0baa\u0bab\u0bac\u0bad\u0bae", + "\u0baf\u0bb0\u0bb1\u0bb2\u0bb3\u0bb4\u0bb5\u0bb6\u0bb7\u0bb8\u0bb9\u0bba\u0bbb\u0bbc\u0bbd\u0bbe\u0bbf\u0bc0\u0bc1\u0bc2\u0bc3\u0bc4\u0bc5\u0bc6\u0bc7\u0bc8\u0bc9", + "\u0bca\u0bcb\u0bcc\u0bcd\u0bce\u0bcf\u0bd0\u0bd1\u0bd2\u0bd3\u0bd4\u0bd5\u0bd6\u0bd7\u0bd8\u0bd9\u0bda\u0bdb\u0bdc\u0bdd\u0bde\u0bdf\u0be0\u0be1\u0be2\u0be3\u0be4", + "\u0be5\u0be6\u0be7\u0be8\u0be9\u0bea\u0beb\u0bec\u0bed\u0bee\u0bef\u0bf0\u0bf1\u0bf2\u0bf3\u0bf4\u0bf5\u0bf6\u0bf7\u0bf8\u0bf9\u0bfa\u0bfb\u0bfc\u0bfd\u0bfe\u0bff", + "\u0c00\u0c01\u0c02\u0c03\u0c04\u0c05\u0c06\u0c07\u0c08\u0c09\u0c0a\u0c0b\u0c0c\u0c0d\u0c0e\u0c0f\u0c10\u0c11\u0c12\u0c13\u0c14\u0c15\u0c16\u0c17\u0c16\u0c19\u0c1a", + "\u0c1b\u0c1c\u0c1d\u0c1e\u0c1f\u0c20\u0c21\u0c22\u0c23\u0c24\u0c25\u0c26\u0c27\u0c28\u0c29\u0c2a\u0c2b\u0c2c\u0c2d\u0c2e\u0c2f\u0c30\u0c31\u0c32\u0c33\u0c34\u0c35", + "\u0c36\u0c37\u0c38\u0c39\u0c3a\u0c3b\u0c3c\u0c3d\u0c3e\u0c3f\u0c40\u0c41\u0c42\u0c43\u0c44\u0c45\u0c46\u0c47\u0c48\u0c49\u0c4a\u0c4b\u0c4c\u0c4d\u0c4e\u0c4f\u0c50", + "\u0c51\u0c52\u0c53\u0c54\u0c55\u0c56\u0c57\u0c58\u0c59\u0c5a\u0c5b\u0c5c\u0c5d\u0c5e\u0c5f\u0c60\u0c61\u0c62\u0c63\u0c64\u0c65\u0c66\u0c67\u0c68\u0c69\u0c6a\u0c6b", + "\u0c6c\u0c6d\u0c6e\u0c6f\u0c70\u0c71\u0c72\u0c73\u0c74\u0c75\u0c76\u0c77\u0c78\u0c79\u0c7a\u0c7b\u0c7c\u0c7d\u0c7e\u0c7f\u0c80\u0c81\u0c82\u0c83\u0c84\u0c85\u0c86", + "\u0c87\u0c88\u0c89\u0c8a\u0c8b\u0c8c\u0c8d\u0c8e\u0c8f\u0c90\u0c91\u0c92\u0c93\u0c94\u0c95\u0c96\u0c97\u0c98\u0c99\u0c9a\u0c9b\u0c9c\u0c9d\u0c9e\u0c9f\u0ca0\u0ca1", + "\u0ca2\u0ca3\u0ca4\u0ca5\u0ca6\u0ca7\u0ca8\u0ca9\u0caa\u0cab\u0cac\u0cad\u0cae\u0caf\u0cb0\u0cb1\u0cb2\u0cb3\u0cb4\u0cb5\u0cb6\u0cb7\u0cb8\u0cb9\u0cba\u0cbb\u0cbc", + "\u0cbd\u0cbe\u0cbf\u0cc0\u0cc1\u0cc2\u0cc3\u0cc4\u0cc5\u0cc6\u0cc7\u0cc8\u0cc9\u0cca\u0ccb\u0ccc\u0ccd\u0cce\u0ccf\u0cd0\u0cd1\u0cd2\u0cd3\u0cd4\u0cd5\u0cd6\u0cd7", + "\u0cd8\u0cd9\u0cda\u0cdb\u0cdc\u0cdd\u0cde\u0cdf\u0ce0\u0ce1\u0ce2\u0ce3\u0ce4\u0ce5\u0ce6\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee\u0cef\u0cf0\u0cf1\u0cf2", + "\u0cf3\u0cf4\u0cf5\u0cf6\u0cf7\u0cf8\u0cf9\u0cfa\u0cfb\u0cfc\u0cfd\u0cfe\u0cff\u0d00\u0d01\u0d02\u0d03\u0d04\u0d05\u0d06\u0d07\u0d08\u0d09\u0d0a\u0d0b\u0d0c\u0d0d", + "\u0d0e\u0d0f\u0d10\u0d11\u0d12\u0d13\u0d14\u0d15\u0d16\u0d17\u0d16\u0d19\u0d1a\u0d1b\u0d1c\u0d1d\u0d1e\u0d1f\u0d20\u0d21\u0d22\u0d23\u0d24\u0d25\u0d26\u0d27\u0d28", + "\u0d29\u0d2a\u0d2b\u0d2c\u0d2d\u0d2e\u0d2f\u0d30\u0d31\u0d32\u0d33\u0d34\u0d35\u0d36\u0d37\u0d38\u0d39\u0d3a\u0d3b\u0d3c\u0d3d\u0d3e\u0d3f\u0d40\u0d41\u0d42\u0d43", + "\u0d44\u0d45\u0d46\u0d47\u0d48\u0d49\u0d4a\u0d4b\u0d4c\u0d4d\u0d4e\u0d4f\u0d50\u0d51\u0d52\u0d53\u0d54\u0d55\u0d56\u0d57\u0d58\u0d59\u0d5a\u0d5b\u0d5c\u0d5d\u0d5e", + "\u0d5f\u0d60\u0d61\u0d62\u0d63\u0d64\u0d65\u0d66\u0d67\u0d68\u0d69\u0d6a\u0d6b\u0d6c\u0d6d\u0d6e\u0d6f\u0d70\u0d71\u0d72\u0d73\u0d74\u0d75\u0d76\u0d77\u0d78\u0d79", + "\u0d7a\u0d7b\u0d7c\u0d7d\u0d7e\u0d7f\u0d80\u0d81\u0d82\u0d83\u0d84\u0d85\u0d86\u0d87\u0d88\u0d89\u0d8a\u0d8b\u0d8c\u0d8d\u0d8e\u0d8f\u0d90\u0d91\u0000\u0000\u0000", + "\u4001\u4002\u4003\u4004\u4005\u4006\u4007\u4008\u4009\u4010\u4011\u4012\u4013\u4014\u4015\u4016\u4017\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/acacia_boat.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0d92" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/acacia_door.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0d93" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/acacia_sapling.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0d94" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/acacia_sign.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0d95" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/activator_rail.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0d96" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/allium.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0d97" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/amethyst_cluster.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0d98" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/amethyst_shard.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0d99" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/apple.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0d9a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/armor_stand.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0d9b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/arrow.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0d9c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/axolotl_bucket.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0d9d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/azure_bluet.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0d9e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/baked_potato.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0d9f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bamboo.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0da0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/barrier.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0da1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/beef.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0da2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/beetroot.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0da3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/beetroot_seeds.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0da4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/beetroot_soup.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0da5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bell.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0da6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/birch_boat.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0da7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/birch_door.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0da8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/birch_sapling.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0da9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/birch_sign.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0daa" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/black_candle.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dab" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/black_dye.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dac" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/black_stained_glass.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dad" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/blaze_powder.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dae" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/blaze_rod.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0daf" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/blue_candle.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0db0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/blue_dye.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0db1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/blue_orchid.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0db2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/blue_stained_glass.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0db3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bone.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0db4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bone_meal.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0db5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/book.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0db6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bow.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0db7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bowl.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0db8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/brain_coral.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0db9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/brain_coral_fan.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dba" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bread.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dbb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/brewing_stand.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dbc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/brick.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dbd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/broken_elytra.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dbe" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/brown_candle.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dbf" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/brown_dye.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dc0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/brown_mushroom.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dc1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/brown_stained_glass.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dc2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/bubble_coral.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dc3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/bubble_coral_fan.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dc4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bucket.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dc5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bundle.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dc6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bundle_filled.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dc7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cake.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dc8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/campfire.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dc9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/candle.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dca" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/carrot.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dcb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/carrot_on_a_stick.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dcc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cauldron.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dcd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chain.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dce" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chainmail_boots.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dcf" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chainmail_chestplate.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dd0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chainmail_helmet.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dd1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chainmail_leggings.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dd2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/charcoal.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dd3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chest_minecart.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dd4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chicken.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dd5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chorus_fruit.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dd6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/clay_ball.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dd7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/clock_00.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dd8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/coal.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dd9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/cobweb.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dda" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cocoa_beans.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ddb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cod.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ddc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cod_bucket.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ddd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/command_block_minecart.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dde" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/comparator.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ddf" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/compass_16.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0de0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_beef.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0de1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_chicken.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0de2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_cod.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0de3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_mutton.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0de4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_porkchop.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0de5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_rabbit.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0de6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_salmon.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0de7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cookie.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0de8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/copper_ingot.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0de9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/cornflower.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dea" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/creeper_banner_pattern.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0deb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/crimson_door.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dec" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/crimson_fungus.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ded" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/crimson_roots.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dee" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/crimson_sign.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0def" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/crossbow_standby.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0df0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/crossbow_arrow.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0df1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/crossbow_firework.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0df2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cyan_candle.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0df3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cyan_dye.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0df4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/cyan_stained_glass.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0df5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dandelion.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0df6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/dark_oak_boat.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0df7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/dark_oak_door.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0df8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dark_oak_sapling.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0df9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/dark_oak_sign.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dfa" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_brain_coral.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dfb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_brain_coral_fan.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dfc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_bubble_coral.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dfd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_bubble_coral_fan.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dfe" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_bush.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0dff" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_fire_coral.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e00" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_fire_coral_fan.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e01" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_horn_coral.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e02" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_horn_coral_fan.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e03" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_tube_coral.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e04" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_tube_coral_fan.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e05" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/detector_rail.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e06" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e07" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_axe.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e08" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_boots.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e09" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_chestplate.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e0a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_helmet.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e0b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_hoe.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e0c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_horse_armor.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e0d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_leggings.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e0e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_pickaxe.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e0f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_shovel.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e10" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_sword.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e11" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/dragon_breath.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e12" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/dried_kelp.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e13" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/egg.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e14" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/elytra.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e15" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/emerald.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e16" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/enchanted_book.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e17" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/end_crystal.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e16" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/ender_eye.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e19" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/ender_pearl.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e1a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/experience_bottle.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e1b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/feather.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e1c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/fermented_spider_eye.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e1d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/fern.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e1e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/filled_map.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e1f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/filled_map_markings.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e20" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/fire_charge.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e21" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/fire_coral.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e22" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/fire_coral_fan.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e23" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/firework_rocket.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e24" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/firework_star.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e25" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/firework_star_overlay.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e26" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/fishing_rod.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e27" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/flint.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e28" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/flint_and_steel.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e29" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/flower_banner_pattern.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e2a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/flower_pot.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e2b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/furnace_minecart.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e2c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/ghast_tear.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e2d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glass_bottle.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e2e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/glass.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e2f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glistering_melon_slice.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e30" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/globe_banner_pattern.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e31" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glow_berries.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e32" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glow_ink_sac.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e33" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glow_item_frame.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e34" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/glow_lichen.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e35" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glowstone_dust.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e36" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/gold_ingot.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e37" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/gold_nugget.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e38" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_apple.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e39" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_axe.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e3a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_boots.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e3b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_carrot.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e3c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_chestplate.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e3d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_helmet.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e3e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_hoe.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e3f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_horse_armor.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e40" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_leggings.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e41" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_pickaxe.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e42" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_shovel.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e43" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_sword.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e44" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/gray_candle.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e46" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/gray_dye.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e47" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/gray_stained_glass.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e48" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/green_candle.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e49" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/green_dye.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e4a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/green_stained_glass.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e4b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/gunpowder.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e4c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/hanging_roots.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e4d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/heart_of_the_sea.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e4e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/honey_bottle.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e4f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/honeycomb.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e50" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/hopper.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e51" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/hopper_minecart.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e52" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/horn_coral.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e53" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/horn_coral_fan.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e54" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/ink_sac.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e55" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_axe.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e56" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/iron_bars.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e57" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_boots.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e58" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_chestplate.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e59" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_door.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e5a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_helmet.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e5b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_hoe.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e5c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_horse_armor.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e5d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_ingot.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e5e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_leggings.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e5f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_nugget.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e60" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_pickaxe.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e61" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_shovel.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e62" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_sword.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e63" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/item_frame.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e64" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/jungle_boat.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e65" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/jungle_door.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e66" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/jungle_sapling.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e67" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/jungle_sign.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e68" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/kelp.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e69" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/knowledge_book.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e6a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/ladder.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e6b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lantern.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e6c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lapis_lazuli.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e6d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/large_amethyst_bud.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e6e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/large_fern_top.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e6f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lava_bucket.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e70" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lead.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e71" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e72" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_boots.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e73" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_boots_overlay.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e74" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_chestplate.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e75" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_chestplate_overlay.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e76" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_helmet.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e77" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_helmet_overlay.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e78" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_horse_armor.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e79" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_leggings.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e7a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_leggings_overlay.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e7b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/lever.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e7c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e7d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_00.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e7e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_01.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e7f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_02.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e80" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_03.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e81" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_04.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e82" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_05.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e83" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_06.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e84" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_07.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e85" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_08.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e86" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_09.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e87" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_10.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e88" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_11.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e89" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_12.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e8a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_13.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e8b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_14.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e8c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_15.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e8d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_blue_candle.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e8e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_blue_dye.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e8f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/light_blue_stained_glass.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e90" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_gray_candle.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e91" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_gray_dye.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e92" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/light_gray_stained_glass.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e93" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/lilac_top.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e94" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/lily_of_the_valley.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e95" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/lily_pad.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e96" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lime_candle.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e97" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lime_dye.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e98" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/lime_stained_glass.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e99" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lingering_potion.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e9a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/magenta_candle.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e9b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/magenta_dye.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e9c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/magenta_stained_glass.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e9d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/magma_cream.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e9e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/map.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0e9f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/medium_amethyst_bud.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ea0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/melon_seeds.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ea1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/melon_slice.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ea2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/milk_bucket.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ea3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/minecart.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ea4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/mojang_banner_pattern.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ea5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/mushroom_stew.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ea6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_11.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ea7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_13.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ea8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_blocks.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ea9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_cat.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eaa" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_chirp.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eab" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_far.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eac" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_mall.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ead" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_mellohi.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eae" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_pigstep.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eaf" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_stal.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eb0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_strad.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eb1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_wait.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eb2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_ward.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eb3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/mutton.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eb4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/name_tag.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eb5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/nautilus_shell.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eb6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/nether_brick.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eb7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/nether_sprouts.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eb8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/nether_star.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eb9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/nether_wart.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eba" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_axe.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ebb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_boots.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ebc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_chestplate.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ebd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_helmet.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ebe" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_hoe.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ebf" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_ingot.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ec0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_leggings.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ec1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_pickaxe.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ec2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_scrap.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ec3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_shovel.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ec4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_sword.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ec5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/oak_boat.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ec6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/oak_door.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ec7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/oak_sapling.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ec8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/oak_sign.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ec9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/orange_candle.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eca" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/orange_dye.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ecb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/orange_stained_glass.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ecc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/orange_tulip.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ecd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/oxeye_daisy.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ece" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/painting.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ecf" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/paper.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ed0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/peony_top.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ed1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/phantom_membrane.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ed2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/piglin_banner_pattern.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ed3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pink_candle.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ed4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pink_dye.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ed5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/pink_stained_glass.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ed6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/pink_tulip.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ed7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pointed_dripstone.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ed8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/poisonous_potato.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ed9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/popped_chorus_fruit.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eda" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/poppy.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0edb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/porkchop.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0edc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/potato.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0edd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/potion.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ede" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/potion_overlay.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0edf" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/powder_snow_bucket.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ee0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/powered_rail.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ee1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/prismarine_crystals.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ee2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/prismarine_shard.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ee3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pufferfish.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ee4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pufferfish_bucket.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ee5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pumpkin_pie.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ee6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pumpkin_seeds.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ee7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/purple_candle.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ee8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/purple_dye.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ee9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/purple_stained_glass.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eea" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/quartz.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eeb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/rabbit.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eec" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/rabbit_foot.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eed" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/rabbit_hide.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eee" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/rabbit_stew.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eef" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/rail.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ef0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/raw_copper.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ef1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/raw_gold.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ef2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/raw_iron.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ef3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/red_candle.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ef4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/red_dye.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ef5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/red_mushroom.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ef6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/red_stained_glass.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ef7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/red_tulip.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ef8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/redstone.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0ef9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/redstone_torch.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0efa" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/repeater.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0efb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/rose_bush_top.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0efc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/rotten_flesh.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0efd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/saddle.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0efe" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/salmon.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0eff" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/salmon_bucket.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f00" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/scute.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f01" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/sea_pickle.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f02" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/seagrass.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f03" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/shears.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f04" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/shulker_shell.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f05" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/skull_banner_pattern.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f06" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/slime_ball.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f07" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/small_amethyst_bud.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f08" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/snowball.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f09" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/soul_campfire.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f0a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/soul_lantern.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f0b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/soul_torch.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f0c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spawn_egg.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f0d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spawn_egg_overlay.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f0e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spectral_arrow.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f0f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spider_eye.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f10" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/splash_potion.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f11" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spruce_boat.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f12" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spruce_door.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f13" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/spruce_sapling.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f14" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spruce_sign.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f15" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spyglass.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f16" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stick.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f17" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stone_axe.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f16" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stone_hoe.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f19" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stone_pickaxe.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f1a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stone_shovel.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f1b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stone_sword.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f1c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/string.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f1d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/structure_void.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f1e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/sugar.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f1f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/sugar_cane.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f20" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/sunflower_front.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f21" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/suspicious_stew.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f22" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/sweet_berries.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f23" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/tall_grass_top.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f24" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tipped_arrow_base.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f25" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tipped_arrow_base.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f26" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tipped_arrow_head.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f27" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tnt_minecart.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f28" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/torch.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f29" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/totem_of_undying.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f2a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/trident.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f2b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/tripwire_hook.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f2c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tropical_fish.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f2d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tropical_fish_bucket.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f2e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/tube_coral.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f2f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/tube_coral_fan.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f30" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/turtle_egg.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f31" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/turtle_helmet.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f32" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/twisting_vines_plant.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f33" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/vine.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f34" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/warped_door.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f35" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/warped_fungus.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f36" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/warped_fungus_on_a_stick.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f37" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/warped_roots.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f38" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/warped_sign.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f39" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/water_bucket.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f3a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/weeping_vines_plant.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f3b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wheat.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f3c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wheat_seeds.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f3d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/white_candle.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f3e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/white_dye.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f3f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/white_stained_glass.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f40" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/white_tulip.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f41" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/wither_rose.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f42" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wooden_axe.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f43" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wooden_hoe.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f44" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wooden_pickaxe.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f45" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wooden_shovel.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f46" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wooden_sword.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f47" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/writable_book.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f48" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/written_book.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f49" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/yellow_candle.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f4a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/yellow_dye.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f4b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/yellow_stained_glass.png", + "ascent": 8, + "height": 16, + "chars": [ + "\u0f4c" + ] + } + + ] +} diff --git a/gm4_guidebook/assets/gm4/textures/item/NOTE.md b/gm4_guidebook/assets/gm4/textures/item/NOTE.md new file mode 100644 index 0000000000..8da67e8ea0 --- /dev/null +++ b/gm4_guidebook/assets/gm4/textures/item/NOTE.md @@ -0,0 +1,3 @@ +# NOTE + +These textures will be distributed to their proper datapack folders in the future, but that architechure is considered future work. They are left here as legacy textures and referenced in the gm4_items.json font. diff --git a/gm4_guidebook/assets/gm4/textures/item/boots_of_ostara/boots_of_ostara.png b/gm4_guidebook/assets/gm4/textures/item/boots_of_ostara/boots_of_ostara.png new file mode 100644 index 0000000000..990066bdc4 Binary files /dev/null and b/gm4_guidebook/assets/gm4/textures/item/boots_of_ostara/boots_of_ostara.png differ diff --git a/gm4_guidebook/assets/gm4/textures/item/boots_of_ostara/boots_of_ostara_overlay.png b/gm4_guidebook/assets/gm4/textures/item/boots_of_ostara/boots_of_ostara_overlay.png new file mode 100644 index 0000000000..5164f29d32 Binary files /dev/null and b/gm4_guidebook/assets/gm4/textures/item/boots_of_ostara/boots_of_ostara_overlay.png differ diff --git a/gm4_guidebook/assets/gm4/textures/item/heart_canisters/heart_canister_tier_1.png b/gm4_guidebook/assets/gm4/textures/item/heart_canisters/heart_canister_tier_1.png new file mode 100644 index 0000000000..7110e27c75 Binary files /dev/null and b/gm4_guidebook/assets/gm4/textures/item/heart_canisters/heart_canister_tier_1.png differ diff --git a/gm4_guidebook/assets/gm4/textures/item/orb_of_ankou/orb_of_ankou.png b/gm4_guidebook/assets/gm4/textures/item/orb_of_ankou/orb_of_ankou.png new file mode 100644 index 0000000000..4de0576fec Binary files /dev/null and b/gm4_guidebook/assets/gm4/textures/item/orb_of_ankou/orb_of_ankou.png differ diff --git a/gm4_guidebook/assets/gm4/textures/item/orb_of_ankou/orb_of_ankou_overlay.png b/gm4_guidebook/assets/gm4/textures/item/orb_of_ankou/orb_of_ankou_overlay.png new file mode 100644 index 0000000000..c847564474 Binary files /dev/null and b/gm4_guidebook/assets/gm4/textures/item/orb_of_ankou/orb_of_ankou_overlay.png differ diff --git a/gm4_guidebook/assets/gm4/textures/item/scuba_gear/flippers.png b/gm4_guidebook/assets/gm4/textures/item/scuba_gear/flippers.png new file mode 100644 index 0000000000..77b97ce6d9 Binary files /dev/null and b/gm4_guidebook/assets/gm4/textures/item/scuba_gear/flippers.png differ diff --git a/gm4_guidebook/assets/gm4/textures/item/scuba_gear/flippers_overlay.png b/gm4_guidebook/assets/gm4/textures/item/scuba_gear/flippers_overlay.png new file mode 100644 index 0000000000..8fca7781bb Binary files /dev/null and b/gm4_guidebook/assets/gm4/textures/item/scuba_gear/flippers_overlay.png differ diff --git a/gm4_guidebook/assets/gm4/textures/item/scuba_gear/scuba_helmet.png b/gm4_guidebook/assets/gm4/textures/item/scuba_gear/scuba_helmet.png new file mode 100644 index 0000000000..1fd07b8c6b Binary files /dev/null and b/gm4_guidebook/assets/gm4/textures/item/scuba_gear/scuba_helmet.png differ diff --git a/gm4_guidebook/assets/gm4/textures/item/scuba_gear/scuba_tank.png b/gm4_guidebook/assets/gm4/textures/item/scuba_gear/scuba_tank.png new file mode 100644 index 0000000000..3df3e0af3f Binary files /dev/null and b/gm4_guidebook/assets/gm4/textures/item/scuba_gear/scuba_tank.png differ diff --git a/gm4_guidebook/assets/gm4/textures/item/tunnel_bores/piston_minecart.png b/gm4_guidebook/assets/gm4/textures/item/tunnel_bores/piston_minecart.png new file mode 100644 index 0000000000..0eee24a75f Binary files /dev/null and b/gm4_guidebook/assets/gm4/textures/item/tunnel_bores/piston_minecart.png differ diff --git a/gm4_guidebook/assets/gm4_guidebook/lang/en_us.json b/gm4_guidebook/assets/gm4_guidebook/lang/en_us.json new file mode 100644 index 0000000000..ac45cf0e1c --- /dev/null +++ b/gm4_guidebook/assets/gm4_guidebook/lang/en_us.json @@ -0,0 +1,1262 @@ +{ + "gui.gm4.guidebook.page": "\u9004\u9005\ue005\u9006\u9007\ue001", + "gui.gm4.guidebook.page.toc": "\u9008\u9009\ue005\u900a\u900b\ue001", + "gui.gm4.guidebook.page.intro": "\u9008\u9009\ue005\u900a\u900b\ue001", + "gui.gm4.guidebook.header.toc": "\uf016", + "gui.gm4.guidebook.header.toc.under": "\uf016", + "gui.gm4.guidebook.header.wiki": "\uf016", + "gui.gm4.guidebook.header.wiki.under": "\uf016", + "gui.gm4.guidebook.header.refresh": "\uf016", + "gui.gm4.guidebook.header.refresh.under": "\uf016", + "gui.gm4.guidebook.header.prev": "\uf016", + "gui.gm4.guidebook.header.prev.under": "\uf016", + "gui.gm4.guidebook.header.next": "\uf016", + "gui.gm4.guidebook.header.next.under": "\uf016", + "gui.gm4.guidebook.locked_page": "\n\n\n\n\uf110\n\uf110\uf037?\uf048\n\uf110\n\uf110", + "gui.gm4.guidebook.toast": "\u9000\ue148\u9001\uf003", + "gui.gm4.guidebook.crafting.display.grid": "\uf004\u9002\u9003\ue007", + "gui.gm4.guidebook.crafting.display.empty_slot": "\uf018", + "gui.gm4.guidebook.crafting.display.filled_slot.under": "\uf018", + "gui.gm4.guidebook.crafting.display.empty_slot.under": "\uf018", + "gui.gm4.guidebook.crafting.display.arrow": "\uf018", + "gui.gm4.guidebook.crafting.display.arrow.under": "\uf018", + "gui.gm4.guidebook.crafting.display.shapeless": "🔀", + "gui.gm4.guidebook.crafting.display.count.0": "\ue007\u0abf", + "gui.gm4.guidebook.crafting.display.count.1": "\ue007\u0ac0", + "gui.gm4.guidebook.crafting.display.count.2": "\ue007\u0ac1", + "gui.gm4.guidebook.crafting.display.count.3": "\ue007\u0ac2", + "gui.gm4.guidebook.crafting.display.count.4": "\ue007\u0ac3", + "gui.gm4.guidebook.crafting.display.count.5": "\ue007\u0ac4", + "gui.gm4.guidebook.crafting.display.count.6": "\ue007\u0ac5", + "gui.gm4.guidebook.crafting.display.count.7": "\ue007\u0ac6", + "gui.gm4.guidebook.crafting.display.count.8": "\ue007\u0ac7", + "gui.gm4.guidebook.crafting.display.count.9": "\ue007\u0ac8", + "gui.gm4.guidebook.crafting.display.count.10": "\ue012\u0ac0\ue002\u0abf", + "gui.gm4.guidebook.crafting.display.count.11": "\ue012\u0ac0\ue002\u0ac0", + "gui.gm4.guidebook.crafting.display.count.12": "\ue012\u0ac0\ue002\u0ac1", + "gui.gm4.guidebook.crafting.display.count.13": "\ue012\u0ac0\ue002\u0ac2", + "gui.gm4.guidebook.crafting.display.count.14": "\ue012\u0ac0\ue002\u0ac3", + "gui.gm4.guidebook.crafting.display.count.15": "\ue012\u0ac0\ue002\u0ac4", + "gui.gm4.guidebook.crafting.display.count.16": "\ue012\u0ac0\ue002\u0ac5", + "gui.gm4.guidebook.crafting.display.count.17": "\ue012\u0ac0\ue002\u0ac6", + "gui.gm4.guidebook.crafting.display.count.18": "\ue012\u0ac0\ue002\u0ac7", + "gui.gm4.guidebook.crafting.display.count.19": "\ue012\u0ac0\ue002\u0ac8", + "gui.gm4.guidebook.crafting.display.count.20": "\ue012\u0ac1\ue002\u0abf", + "gui.gm4.guidebook.crafting.display.count.21": "\ue012\u0ac1\ue002\u0ac0", + "gui.gm4.guidebook.crafting.display.count.22": "\ue012\u0ac1\ue002\u0ac1", + "gui.gm4.guidebook.crafting.display.count.23": "\ue012\u0ac1\ue002\u0ac2", + "gui.gm4.guidebook.crafting.display.count.24": "\ue012\u0ac1\ue002\u0ac3", + "gui.gm4.guidebook.crafting.display.count.25": "\ue012\u0ac1\ue002\u0ac4", + "gui.gm4.guidebook.crafting.display.count.26": "\ue012\u0ac1\ue002\u0ac5", + "gui.gm4.guidebook.crafting.display.count.27": "\ue012\u0ac1\ue002\u0ac6", + "gui.gm4.guidebook.crafting.display.count.28": "\ue012\u0ac1\ue002\u0ac7", + "gui.gm4.guidebook.crafting.display.count.29": "\ue012\u0ac1\ue002\u0ac8", + "gui.gm4.guidebook.crafting.display.count.30": "\ue012\u0ac2\ue002\u0abf", + "gui.gm4.guidebook.crafting.display.count.31": "\ue012\u0ac2\ue002\u0ac0", + "gui.gm4.guidebook.crafting.display.count.32": "\ue012\u0ac2\ue002\u0ac1", + "gui.gm4.guidebook.crafting.display.count.33": "\ue012\u0ac2\ue002\u0ac2", + "gui.gm4.guidebook.crafting.display.count.34": "\ue012\u0ac2\ue002\u0ac3", + "gui.gm4.guidebook.crafting.display.count.35": "\ue012\u0ac2\ue002\u0ac4", + "gui.gm4.guidebook.crafting.display.count.36": "\ue012\u0ac2\ue002\u0ac5", + "gui.gm4.guidebook.crafting.display.count.37": "\ue012\u0ac2\ue002\u0ac6", + "gui.gm4.guidebook.crafting.display.count.38": "\ue012\u0ac2\ue002\u0ac7", + "gui.gm4.guidebook.crafting.display.count.39": "\ue012\u0ac2\ue002\u0ac8", + "gui.gm4.guidebook.crafting.display.count.40": "\ue012\u0ac3\ue002\u0abf", + "gui.gm4.guidebook.crafting.display.count.41": "\ue012\u0ac3\ue002\u0ac0", + "gui.gm4.guidebook.crafting.display.count.42": "\ue012\u0ac3\ue002\u0ac1", + "gui.gm4.guidebook.crafting.display.count.43": "\ue012\u0ac3\ue002\u0ac2", + "gui.gm4.guidebook.crafting.display.count.44": "\ue012\u0ac3\ue002\u0ac3", + "gui.gm4.guidebook.crafting.display.count.45": "\ue012\u0ac3\ue002\u0ac4", + "gui.gm4.guidebook.crafting.display.count.46": "\ue012\u0ac3\ue002\u0ac5", + "gui.gm4.guidebook.crafting.display.count.47": "\ue012\u0ac3\ue002\u0ac6", + "gui.gm4.guidebook.crafting.display.count.48": "\ue012\u0ac3\ue002\u0ac7", + "gui.gm4.guidebook.crafting.display.count.49": "\ue012\u0ac3\ue002\u0ac8", + "gui.gm4.guidebook.crafting.display.count.50": "\ue012\u0ac4\ue002\u0abf", + "gui.gm4.guidebook.crafting.display.count.51": "\ue012\u0ac4\ue002\u0ac0", + "gui.gm4.guidebook.crafting.display.count.52": "\ue012\u0ac4\ue002\u0ac1", + "gui.gm4.guidebook.crafting.display.count.53": "\ue012\u0ac4\ue002\u0ac2", + "gui.gm4.guidebook.crafting.display.count.54": "\ue012\u0ac4\ue002\u0ac3", + "gui.gm4.guidebook.crafting.display.count.55": "\ue012\u0ac4\ue002\u0ac4", + "gui.gm4.guidebook.crafting.display.count.56": "\ue012\u0ac4\ue002\u0ac5", + "gui.gm4.guidebook.crafting.display.count.57": "\ue012\u0ac4\ue002\u0ac6", + "gui.gm4.guidebook.crafting.display.count.58": "\ue012\u0ac4\ue002\u0ac7", + "gui.gm4.guidebook.crafting.display.count.59": "\ue012\u0ac4\ue002\u0ac8", + "gui.gm4.guidebook.crafting.display.count.60": "\ue012\u0ac5\ue002\u0abf", + "gui.gm4.guidebook.crafting.display.count.61": "\ue012\u0ac5\ue002\u0ac0", + "gui.gm4.guidebook.crafting.display.count.62": "\ue012\u0ac5\ue002\u0ac1", + "gui.gm4.guidebook.crafting.display.count.63": "\ue012\u0ac5\ue002\u0ac2", + "gui.gm4.guidebook.crafting.display.count.64": "\ue012\u0ac5\ue002\u0ac3", + "gui.gm4.guidebook.crafting.display.minecraft.acacia_button": "\u0ad7\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.acacia_fence": "\u0ad8\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.acacia_fence_gate": "\u0ad9\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.acacia_leaves": "\u0ada\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.acacia_log": "\u0adb\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.acacia_planks": "\u0adc\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.acacia_pressure_plate": "\u0add\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.acacia_slab": "\u0ade\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.acacia_stairs": "\u0adf\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.acacia_trapdoor": "\u0ae0\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.acacia_wood": "\u0ae1\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.amethyst_block": "\u0ae2\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.ancient_debris": "\u0ae3\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.andesite": "\u0ae4\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.andesite_slab": "\u0ae5\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.andesite_stairs": "\u0ae6\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.andesite_wall": "\u0ae7\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.anvil": "\u0ae8\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.azalea": "\u0ae9\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.azalea_leaves": "\u0aea\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.barrel": "\u0aeb\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.basalt": "\u0aec\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.beacon": "\u0aed\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.bedrock": "\u0aee\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.bee_nest": "\u0aef\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.beehive": "\u0af0\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.big_dripleaf": "\u0af1\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.birch_button": "\u0af2\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.birch_fence": "\u0af3\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.birch_fence_gate": "\u0af4\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.birch_leaves": "\u0af5\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.birch_log": "\u0af6\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.birch_planks": "\u0af7\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.birch_pressure_plate": "\u0af8\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.birch_slab": "\u0af9\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.birch_stairs": "\u0afa\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.birch_trapdoor": "\u0afb\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.birch_wood": "\u0afc\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.black_banner": "\u0afd\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.black_bed": "\u0afe\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.black_carpet": "\u0aff\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.black_concrete": "\u0b00\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.black_concrete_powder": "\u0b01\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.black_glazed_terracotta": "\u0b02\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.black_shulker_box": "\u0b03\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.black_stained_glass": "\u0b04\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.black_terracotta": "\u0b05\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.black_wool": "\u0b06\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.blackstone": "\u0b07\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.blackstone_slab": "\u0b08\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.blackstone_stairs": "\u0b09\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.blackstone_wall": "\u0b0a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.blast_furnace": "\u0b0b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.blue_banner": "\u0b0c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.blue_bed": "\u0b0d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.blue_carpet": "\u0b0e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.blue_concrete": "\u0b0f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.blue_concrete_powder": "\u0b10\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.blue_glazed_terracotta": "\u0b11\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.blue_ice": "\u0b12\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.blue_shulker_box": "\u0b13\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.blue_stained_glass": "\u0b14\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.blue_terracotta": "\u0b15\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.blue_wool": "\u0b16\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.bone_block": "\u0b17\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.bookshelf": "\u0b18\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.brain_coral_block": "\u0b19\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.brick_slab": "\u0b1a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.brick_stairs": "\u0b1b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.brick_wall": "\u0b1c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.bricks": "\u0b1d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.brown_banner": "\u0b1e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.brown_bed": "\u0b1f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.brown_carpet": "\u0b20\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.brown_concrete": "\u0b21\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.brown_concrete_powder": "\u0b22\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.brown_glazed_terracotta": "\u0b23\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.brown_mushroom_block": "\u0b24\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.brown_shulker_box": "\u0b25\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.brown_stained_glass": "\u0b26\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.brown_terracotta": "\u0b27\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.brown_wool": "\u0b28\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.bubble_coral_block": "\u0b29\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.budding_amethyst": "\u0b2a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cactus": "\u0b2b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.calcite": "\u0b2c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cartography_table": "\u0b2d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.carved_pumpkin": "\u0b2e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.chain_command_block": "\u0b2f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.chest": "\u0b30\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.chipped_anvil": "\u0b31\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.chiseled_deepslate": "\u0b32\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.chiseled_nether_bricks": "\u0b33\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.chiseled_polished_blackstone": "\u0b34\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.chiseled_quartz_block": "\u0b35\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.chiseled_red_sandstone": "\u0b36\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.chiseled_sandstone": "\u0b37\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.chiseled_stone_bricks": "\u0b38\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.chorus_flower": "\u0b39\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.chorus_plant": "\u0b3a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.clay": "\u0b3b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.coal_block": "\u0b3c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.coal_ore": "\u0b3d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.coarse_dirt": "\u0b3e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cobbled_deepslate": "\u0b3f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cobbled_deepslate_slab": "\u0b40\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cobbled_deepslate_stairs": "\u0b41\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cobbled_deepslate_wall": "\u0b42\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cobblestone": "\u0b43\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cobblestone_slab": "\u0b44\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cobblestone_stairs": "\u0b45\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cobblestone_wall": "\u0b46\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.command_block": "\u0b47\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.composter": "\u0b48\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.conduit": "\u0b49\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.copper_block": "\u0b4a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.copper_ore": "\u0b4b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cracked_deepslate_bricks": "\u0b4c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cracked_deepslate_tiles": "\u0b4d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cracked_nether_bricks": "\u0b4e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cracked_polished_blackstone_bricks": "\u0b4f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cracked_stone_bricks": "\u0b50\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.crafting_table": "\u0b51\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.creeper_head": "\u0b52\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.crimson_button": "\u0b53\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.crimson_fence": "\u0b54\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.crimson_fence_gate": "\u0b55\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.crimson_hyphae": "\u0b56\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.crimson_nylium": "\u0b57\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.crimson_planks": "\u0b58\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.crimson_pressure_plate": "\u0b59\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.crimson_slab": "\u0b5a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.crimson_stairs": "\u0b5b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.crimson_stem": "\u0b5c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.crimson_trapdoor": "\u0b5d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.crying_obsidian": "\u0b5e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cut_copper": "\u0b5f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cut_copper_slab": "\u0b60\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cut_copper_stairs": "\u0b61\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cut_red_sandstone": "\u0b62\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cut_red_sandstone_slab": "\u0b63\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cut_sandstone": "\u0b64\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cut_sandstone_slab": "\u0b65\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cyan_banner": "\u0b66\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cyan_bed": "\u0b67\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cyan_carpet": "\u0b68\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cyan_concrete": "\u0b69\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cyan_concrete_powder": "\u0b6a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cyan_glazed_terracotta": "\u0b6b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cyan_shulker_box": "\u0b6c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cyan_stained_glass": "\u0b6d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cyan_terracotta": "\u0b6e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.cyan_wool": "\u0b6f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.damaged_anvil": "\u0b70\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dark_oak_button": "\u0b71\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dark_oak_fence": "\u0b72\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dark_oak_fence_gate": "\u0b73\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dark_oak_leaves": "\u0b74\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dark_oak_log": "\u0b75\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dark_oak_planks": "\u0b76\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dark_oak_pressure_plate": "\u0b77\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dark_oak_slab": "\u0b78\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dark_oak_stairs": "\u0b79\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dark_oak_trapdoor": "\u0b7a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dark_oak_wood": "\u0b7b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dark_prismarine": "\u0b7c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dark_prismarine_slab": "\u0b7d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dark_prismarine_stairs": "\u0b7e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.daylight_detector": "\u0b7f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dead_brain_coral_block": "\u0b80\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dead_bubble_coral_block": "\u0b81\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dead_fire_coral_block": "\u0b82\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dead_horn_coral_block": "\u0b83\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dead_tube_coral_block": "\u0b84\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.deepslate": "\u0b85\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.deepslate_brick_slab": "\u0b86\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.deepslate_brick_stairs": "\u0b87\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.deepslate_brick_wall": "\u0b88\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.deepslate_bricks": "\u0b89\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.deepslate_coal_ore": "\u0b8a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.deepslate_copper_ore": "\u0b8b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.deepslate_diamond_ore": "\u0b8c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.deepslate_emerald_ore": "\u0b8d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.deepslate_gold_ore": "\u0b8e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.deepslate_iron_ore": "\u0b8f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.deepslate_lapis_ore": "\u0b90\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.deepslate_redstone_ore": "\u0b91\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.deepslate_tile_slab": "\u0b92\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.deepslate_tile_stairs": "\u0b93\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.deepslate_tile_wall": "\u0b94\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.deepslate_tiles": "\u0b95\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.diamond_block": "\u0b96\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.diamond_ore": "\u0b97\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.diorite": "\u0b98\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.diorite_slab": "\u0b99\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.diorite_stairs": "\u0b9a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.diorite_wall": "\u0b9b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dirt": "\u0b9c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dirt_path": "\u0b9d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dispenser": "\u0b9e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dragon_egg": "\u0b9f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dragon_head": "\u0ba0\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dried_kelp_block": "\u0ba1\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dripstone_block": "\u0ba2\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.dropper": "\u0ba3\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.emerald_block": "\u0ba4\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.emerald_ore": "\u0ba5\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.enchanting_table": "\u0ba6\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.end_portal_frame": "\u0ba7\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.end_rod": "\u0ba8\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.end_stone": "\u0ba9\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.end_stone_brick_slab": "\u0baa\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.end_stone_brick_stairs": "\u0bab\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.end_stone_brick_wall": "\u0bac\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.end_stone_bricks": "\u0bad\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.ender_chest": "\u0bae\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.exposed_copper": "\u0baf\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.exposed_cut_copper": "\u0bb0\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.exposed_cut_copper_slab": "\u0bb1\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.exposed_cut_copper_stairs": "\u0bb2\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.farmland": "\u0bb3\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.fire_coral_block": "\u0bb4\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.fletching_table": "\u0bb5\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.flowering_azalea": "\u0bb6\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.flowering_azalea_leaves": "\u0bb7\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.furnace": "\u0bb8\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.gilded_blackstone": "\u0bb9\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.glass": "\u0bba\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.glowstone": "\u0bbb\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.gold_block": "\u0bbc\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.gold_ore": "\u0bbd\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.granite": "\u0bbe\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.granite_slab": "\u0bbf\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.granite_stairs": "\u0bc0\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.granite_wall": "\u0bc1\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.grass_block": "\u0bc2\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.gravel": "\u0bc3\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.gray_banner": "\u0bc4\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.gray_bed": "\u0bc5\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.gray_carpet": "\u0bc6\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.gray_concrete": "\u0bc7\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.gray_concrete_powder": "\u0bc8\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.gray_glazed_terracotta": "\u0bc9\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.gray_shulker_box": "\u0bca\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.gray_stained_glass": "\u0bcb\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.gray_terracotta": "\u0bcc\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.gray_wool": "\u0bcd\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.green_banner": "\u0bce\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.green_bed": "\u0bcf\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.green_carpet": "\u0bd0\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.green_concrete": "\u0bd1\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.green_concrete_powder": "\u0bd2\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.green_glazed_terracotta": "\u0bd3\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.green_shulker_box": "\u0bd4\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.green_stained_glass": "\u0bd5\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.green_terracotta": "\u0bd6\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.green_wool": "\u0bd7\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.grindstone": "\u0bd8\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.hay_block": "\u0bd9\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.heavy_weighted_pressure_plate": "\u0bda\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.honey_block": "\u0bdb\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.honeycomb_block": "\u0bdc\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.horn_coral_block": "\u0bdd\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.ice": "\u0bde\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.infested_chiseled_stone_bricks": "\u0bdf\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.infested_cobblestone": "\u0be0\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.infested_cracked_stone_bricks": "\u0be1\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.infested_deepslate": "\u0be2\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.infested_mossy_stone_bricks": "\u0be3\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.infested_stone": "\u0be4\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.infested_stone_bricks": "\u0be5\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.iron_block": "\u0be6\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.iron_ore": "\u0be7\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.iron_trapdoor": "\u0be8\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.jack_o_lantern": "\u0be9\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.jigsaw": "\u0bea\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.jukebox": "\u0beb\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.jungle_button": "\u0bec\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.jungle_fence": "\u0bed\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.jungle_fence_gate": "\u0bee\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.jungle_leaves": "\u0bef\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.jungle_log": "\u0bf0\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.jungle_planks": "\u0bf1\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.jungle_pressure_plate": "\u0bf2\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.jungle_slab": "\u0bf3\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.jungle_stairs": "\u0bf4\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.jungle_trapdoor": "\u0bf5\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.jungle_wood": "\u0bf6\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.lapis_block": "\u0bf7\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.lapis_ore": "\u0bf8\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.lectern": "\u0bf9\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.light_blue_banner": "\u0bfa\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.light_blue_bed": "\u0bfb\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.light_blue_carpet": "\u0bfc\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.light_blue_concrete": "\u0bfd\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.light_blue_concrete_powder": "\u0bfe\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.light_blue_glazed_terracotta": "\u0bff\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.light_blue_shulker_box": "\u0c00\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.light_blue_stained_glass": "\u0c01\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.light_blue_terracotta": "\u0c02\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.light_blue_wool": "\u0c03\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.light_gray_banner": "\u0c04\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.light_gray_bed": "\u0c05\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.light_gray_carpet": "\u0c06\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.light_gray_concrete": "\u0c07\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.light_gray_concrete_powder": "\u0c08\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.light_gray_glazed_terracotta": "\u0c09\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.light_gray_shulker_box": "\u0c0a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.light_gray_stained_glass": "\u0c0b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.light_gray_terracotta": "\u0c0c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.light_gray_wool": "\u0c0d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.light_weighted_pressure_plate": "\u0c0e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.lightning_rod": "\u0c0f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.lime_banner": "\u0c10\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.lime_bed": "\u0c11\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.lime_carpet": "\u0c12\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.lime_concrete": "\u0c13\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.lime_concrete_powder": "\u0c14\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.lime_glazed_terracotta": "\u0c15\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.lime_shulker_box": "\u0c16\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.lime_stained_glass": "\u0c17\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.lime_terracotta": "\u0c18\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.lime_wool": "\u0c19\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.lodestone": "\u0c1a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.loom": "\u0c1b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.magenta_banner": "\u0c1c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.magenta_bed": "\u0c1d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.magenta_carpet": "\u0c1e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.magenta_concrete": "\u0c1f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.magenta_concrete_powder": "\u0c20\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.magenta_glazed_terracotta": "\u0c21\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.magenta_shulker_box": "\u0c22\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.magenta_stained_glass": "\u0c23\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.magenta_terracotta": "\u0c24\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.magenta_wool": "\u0c25\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.magma_block": "\u0c26\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.melon": "\u0c27\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.moss_block": "\u0c28\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.moss_carpet": "\u0c29\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.mossy_cobblestone": "\u0c2a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.mossy_cobblestone_slab": "\u0c2b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.mossy_cobblestone_stairs": "\u0c2c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.mossy_cobblestone_wall": "\u0c2d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.mossy_stone_brick_slab": "\u0c2e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.mossy_stone_brick_stairs": "\u0c2f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.mossy_stone_brick_wall": "\u0c30\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.mossy_stone_bricks": "\u0c31\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.mushroom_stem": "\u0c32\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.mycelium": "\u0c33\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.nether_brick_fence": "\u0c34\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.nether_brick_slab": "\u0c35\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.nether_brick_stairs": "\u0c36\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.nether_brick_wall": "\u0c37\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.nether_bricks": "\u0c38\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.nether_gold_ore": "\u0c39\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.nether_quartz_ore": "\u0c3a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.nether_wart_block": "\u0c3b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.netherite_block": "\u0c3c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.netherrack": "\u0c3d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.note_block": "\u0c3e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.oak_button": "\u0c3f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.oak_fence": "\u0c40\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.oak_fence_gate": "\u0c41\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.oak_leaves": "\u0c42\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.oak_log": "\u0c43\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.oak_planks": "\u0c44\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.oak_pressure_plate": "\u0c45\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.oak_slab": "\u0c46\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.oak_stairs": "\u0c47\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.oak_trapdoor": "\u0c48\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.oak_wood": "\u0c49\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.observer": "\u0c4a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.obsidian": "\u0c4b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.orange_banner": "\u0c4c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.orange_bed": "\u0c4d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.orange_carpet": "\u0c4e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.orange_concrete": "\u0c4f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.orange_concrete_powder": "\u0c50\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.orange_glazed_terracotta": "\u0c51\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.orange_shulker_box": "\u0c52\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.orange_stained_glass": "\u0c53\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.orange_terracotta": "\u0c54\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.orange_wool": "\u0c55\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.oxidized_copper": "\u0c56\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.oxidized_cut_copper": "\u0c57\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.oxidized_cut_copper_slab": "\u0c58\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.oxidized_cut_copper_stairs": "\u0c59\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.packed_ice": "\u0c5a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.petrified_oak_slab": "\u0c5b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.pink_banner": "\u0c5c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.pink_bed": "\u0c5d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.pink_carpet": "\u0c5e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.pink_concrete": "\u0c5f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.pink_concrete_powder": "\u0c60\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.pink_glazed_terracotta": "\u0c61\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.pink_shulker_box": "\u0c62\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.pink_stained_glass": "\u0c63\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.pink_terracotta": "\u0c64\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.pink_wool": "\u0c65\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.piston": "\u0c66\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.player_head": "\u0c67\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.podzol": "\u0c68\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_andesite": "\u0c69\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_andesite_slab": "\u0c6a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_andesite_stairs": "\u0c6b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_basalt": "\u0c6c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_blackstone": "\u0c6d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_blackstone_brick_slab": "\u0c6e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_blackstone_brick_stairs": "\u0c6f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_blackstone_brick_wall": "\u0c70\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_blackstone_bricks": "\u0c71\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_blackstone_button": "\u0c72\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_blackstone_pressure_plate": "\u0c73\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_blackstone_slab": "\u0c74\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_blackstone_stairs": "\u0c75\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_blackstone_wall": "\u0c76\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_deepslate": "\u0c77\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_deepslate_slab": "\u0c78\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_deepslate_stairs": "\u0c79\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_deepslate_wall": "\u0c7a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_diorite": "\u0c7b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_diorite_slab": "\u0c7c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_diorite_stairs": "\u0c7d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_granite": "\u0c7e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_granite_slab": "\u0c7f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.polished_granite_stairs": "\u0c80\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.prismarine": "\u0c81\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.prismarine_brick_slab": "\u0c82\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.prismarine_brick_stairs": "\u0c83\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.prismarine_bricks": "\u0c84\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.prismarine_slab": "\u0c85\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.prismarine_stairs": "\u0c86\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.prismarine_wall": "\u0c87\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.pumpkin": "\u0c88\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.purple_banner": "\u0c89\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.purple_bed": "\u0c8a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.purple_carpet": "\u0c8b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.purple_concrete": "\u0c8c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.purple_concrete_powder": "\u0c8d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.purple_glazed_terracotta": "\u0c8e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.purple_shulker_box": "\u0c8f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.purple_stained_glass": "\u0c90\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.purple_terracotta": "\u0c91\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.purple_wool": "\u0c92\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.purpur_block": "\u0c93\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.purpur_pillar": "\u0c94\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.purpur_slab": "\u0c95\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.purpur_stairs": "\u0c96\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.quartz_block": "\u0c97\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.quartz_bricks": "\u0c98\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.quartz_pillar": "\u0c99\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.quartz_slab": "\u0c9a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.quartz_stairs": "\u0c9b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.raw_copper_block": "\u0c9c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.raw_gold_block": "\u0c9d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.raw_iron_block": "\u0c9e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.red_banner": "\u0c9f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.red_bed": "\u0ca0\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.red_carpet": "\u0ca1\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.red_concrete": "\u0ca2\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.red_concrete_powder": "\u0ca3\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.red_glazed_terracotta": "\u0ca4\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.red_mushroom_block": "\u0ca5\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.red_nether_brick_slab": "\u0ca6\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.red_nether_brick_stairs": "\u0ca7\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.red_nether_brick_wall": "\u0ca8\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.red_nether_bricks": "\u0ca9\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.red_sand": "\u0caa\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.red_sandstone": "\u0cab\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.red_sandstone_slab": "\u0cac\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.red_sandstone_stairs": "\u0cad\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.red_sandstone_wall": "\u0cae\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.red_shulker_box": "\u0caf\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.red_stained_glass": "\u0cb0\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.red_terracotta": "\u0cb1\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.red_wool": "\u0cb2\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.redstone_block": "\u0cb3\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.redstone_lamp": "\u0cb4\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.redstone_ore": "\u0cb5\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.repeating_command_block": "\u0cb6\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.respawn_anchor": "\u0cb7\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.rooted_dirt": "\u0cb8\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.sand": "\u0cb9\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.sandstone": "\u0cba\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.sandstone_slab": "\u0cbb\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.sandstone_stairs": "\u0cbc\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.sandstone_wall": "\u0cbd\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.scaffolding": "\u0cbe\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.sculk_sensor": "\u0cbf\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.sea_lantern": "\u0cc0\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.shield": "\u0cc1\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.shroomlight": "\u0cc2\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.shulker_box": "\u0cc3\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.skeleton_skull": "\u0cc4\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.slime_block": "\u0cc5\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.small_dripleaf": "\u0cc6\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.smithing_table": "\u0cc7\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.smoker": "\u0cc8\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.smooth_basalt": "\u0cc9\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.smooth_quartz": "\u0cca\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.smooth_quartz_slab": "\u0ccb\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.smooth_quartz_stairs": "\u0ccc\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.smooth_red_sandstone": "\u0ccd\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.smooth_red_sandstone_slab": "\u0cce\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.smooth_red_sandstone_stairs": "\u0ccf\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.smooth_sandstone": "\u0cd0\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.smooth_sandstone_slab": "\u0cd1\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.smooth_sandstone_stairs": "\u0cd2\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.smooth_stone": "\u0cd3\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.smooth_stone_slab": "\u0cd4\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.snow": "\u0cd5\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.snow_block": "\u0cd6\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.soul_sand": "\u0cd7\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.soul_soil": "\u0cd8\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.spawner": "\u0cd9\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.sponge": "\u0cda\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.spore_blossom": "\u0cdb\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.spruce_button": "\u0cdc\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.spruce_fence": "\u0cdd\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.spruce_fence_gate": "\u0cde\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.spruce_leaves": "\u0cdf\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.spruce_log": "\u0ce0\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.spruce_planks": "\u0ce1\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.spruce_pressure_plate": "\u0ce2\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.spruce_slab": "\u0ce3\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.spruce_stairs": "\u0ce4\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.spruce_trapdoor": "\u0ce5\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.spruce_wood": "\u0ce6\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.sticky_piston": "\u0ce7\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stone": "\u0ce8\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stone_brick_slab": "\u0ce9\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stone_brick_stairs": "\u0cea\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stone_brick_wall": "\u0ceb\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stone_bricks": "\u0cec\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stone_button": "\u0ced\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stone_pressure_plate": "\u0cee\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stone_slab": "\u0cef\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stone_stairs": "\u0cf0\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stonecutter": "\u0cf1\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stripped_acacia_log": "\u0cf2\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stripped_acacia_wood": "\u0cf3\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stripped_birch_log": "\u0cf4\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stripped_birch_wood": "\u0cf5\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stripped_crimson_hyphae": "\u0cf6\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stripped_crimson_stem": "\u0cf7\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stripped_dark_oak_log": "\u0cf8\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stripped_dark_oak_wood": "\u0cf9\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stripped_jungle_log": "\u0cfa\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stripped_jungle_wood": "\u0cfb\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stripped_oak_log": "\u0cfc\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stripped_oak_wood": "\u0cfd\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stripped_spruce_log": "\u0cfe\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stripped_spruce_wood": "\u0cff\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stripped_warped_hyphae": "\u0d00\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.stripped_warped_stem": "\u0d01\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.structure_block": "\u0d02\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.target": "\u0d03\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.terracotta": "\u0d04\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.tinted_glass": "\u0d05\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.tnt": "\u0d06\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.trapped_chest": "\u0d07\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.tube_coral_block": "\u0d08\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.tuff": "\u0d09\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.warped_button": "\u0d0a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.warped_fence": "\u0d0b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.warped_fence_gate": "\u0d0c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.warped_hyphae": "\u0d0d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.warped_nylium": "\u0d0e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.warped_planks": "\u0d0f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.warped_pressure_plate": "\u0d10\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.warped_slab": "\u0d11\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.warped_stairs": "\u0d12\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.warped_stem": "\u0d13\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.warped_trapdoor": "\u0d14\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.warped_wart_block": "\u0d15\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.waxed_copper_block": "\u0d16\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.waxed_cut_copper": "\u0d17\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.waxed_cut_copper_slab": "\u0d18\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.waxed_cut_copper_stairs": "\u0d19\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.waxed_exposed_copper": "\u0d1a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.waxed_exposed_cut_copper": "\u0d1b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.waxed_exposed_cut_copper_slab": "\u0d1c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.waxed_exposed_cut_copper_stairs": "\u0d1d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.waxed_oxidized_copper": "\u0d1e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.waxed_oxidized_cut_copper": "\u0d1f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.waxed_oxidized_cut_copper_slab": "\u0d20\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.waxed_oxidized_cut_copper_stairs": "\u0d21\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.waxed_weathered_copper": "\u0d22\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.waxed_weathered_cut_copper": "\u0d23\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.waxed_weathered_cut_copper_slab": "\u0d24\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.waxed_weathered_cut_copper_stairs": "\u0d25\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.weathered_copper": "\u0d26\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.weathered_cut_copper": "\u0d27\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.weathered_cut_copper_slab": "\u0d28\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.weathered_cut_copper_stairs": "\u0d29\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.wet_sponge": "\u0d2a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.white_banner": "\u0d2b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.white_bed": "\u0d2c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.white_carpet": "\u0d2d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.white_concrete": "\u0d2e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.white_concrete_powder": "\u0d2f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.white_glazed_terracotta": "\u0d30\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.white_shulker_box": "\u0d31\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.white_stained_glass": "\u0d32\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.white_terracotta": "\u0d33\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.white_wool": "\u0d34\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.wither_skeleton_skull": "\u0d35\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.yellow_banner": "\u0d36\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.yellow_bed": "\u0d37\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.yellow_carpet": "\u0d38\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.yellow_concrete": "\u0d39\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.yellow_concrete_powder": "\u0d3a\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.yellow_glazed_terracotta": "\u0d3b\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.yellow_shulker_box": "\u0d3c\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.yellow_stained_glass": "\u0d3d\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.yellow_terracotta": "\u0d3e\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.yellow_wool": "\u0d3f\uf001", + "gui.gm4.guidebook.crafting.display.minecraft.zombie_head": "\u0d40\uf001", + "gui.gm4.guidebook.crafting.display.gm4.block_compressor": "\u4001\uf001", + "gui.gm4.guidebook.crafting.display.gm4.charcoal_block": "\u0b3c\uf001", + "gui.gm4.guidebook.crafting.display.gm4.custom_crafter": "\u4002\uf001", + "gui.gm4.guidebook.crafting.display.gm4.disassembler": "\u4003\uf001", + "gui.gm4.guidebook.crafting.display.gm4.enchantment_extractor": "\u4004\uf001", + "gui.gm4.guidebook.crafting.display.gm4.ender_hopper": "\u4005\uf001", + "gui.gm4.guidebook.crafting.display.gm4.liquid_tank": "\u4006\uf001", + "gui.gm4.guidebook.crafting.display.gm4.forming_press": "\u4007\uf001", + "gui.gm4.guidebook.crafting.display.gm4.smeltery": "\u4008\uf001", + "gui.gm4.guidebook.crafting.display.gm4.tinkering_compressor": "\u4009\uf001", + "gui.gm4.guidebook.crafting.display.gm4.teleportation_anchor": "\u4010\uf001", + "gui.gm4.guidebook.crafting.display.gm4.teleportation_jammer": "\u4011\uf001", + "gui.gm4.guidebook.crafting.display.banner_pattern.border": "\uf806\uf804\u0d41", + "gui.gm4.guidebook.crafting.display.banner_pattern.bricks": "\uf806\uf804\u0d42", + "gui.gm4.guidebook.crafting.display.banner_pattern.circle": "\uf806\uf804\u0d43", + "gui.gm4.guidebook.crafting.display.banner_pattern.creeper": "\uf806\uf804\u0d44", + "gui.gm4.guidebook.crafting.display.banner_pattern.cross": "\uf806\uf804\u0d45", + "gui.gm4.guidebook.crafting.display.banner_pattern.curly_border": "\uf806\uf804\u0d46", + "gui.gm4.guidebook.crafting.display.banner_pattern.diagonal_left": "\uf806\uf804\u0d47", + "gui.gm4.guidebook.crafting.display.banner_pattern.diagonal_right": "\uf806\uf804\u0d48", + "gui.gm4.guidebook.crafting.display.banner_pattern.diagonal_up_left": "\uf806\uf804\u0d49", + "gui.gm4.guidebook.crafting.display.banner_pattern.diagonal_up_right": "\uf806\uf804\u0d4a", + "gui.gm4.guidebook.crafting.display.banner_pattern.flower": "\uf806\uf804\u0d4b", + "gui.gm4.guidebook.crafting.display.banner_pattern.globe": "\uf806\uf804\u0d4c", + "gui.gm4.guidebook.crafting.display.banner_pattern.gradient": "\uf806\uf804\u0d4d", + "gui.gm4.guidebook.crafting.display.banner_pattern.gradient_up": "\uf806\uf804\u0d4e", + "gui.gm4.guidebook.crafting.display.banner_pattern.half_horizontal": "\uf806\uf804\u0d4f", + "gui.gm4.guidebook.crafting.display.banner_pattern.half_horizontal_bottom": "\uf806\uf804\u0d50", + "gui.gm4.guidebook.crafting.display.banner_pattern.half_vertical": "\uf806\uf804\u0d51", + "gui.gm4.guidebook.crafting.display.banner_pattern.half_vertical_right": "\uf806\uf804\u0d52", + "gui.gm4.guidebook.crafting.display.banner_pattern.mojang": "\uf806\uf804\u0d53", + "gui.gm4.guidebook.crafting.display.banner_pattern.piglin": "\uf806\uf804\u0d54", + "gui.gm4.guidebook.crafting.display.banner_pattern.rhombus": "\uf806\uf804\u0d55", + "gui.gm4.guidebook.crafting.display.banner_pattern.skull": "\uf806\uf804\u0d56", + "gui.gm4.guidebook.crafting.display.banner_pattern.small_stripes": "\uf806\uf804\u0d57", + "gui.gm4.guidebook.crafting.display.banner_pattern.square_bottom_left": "\uf806\uf804\u0d58", + "gui.gm4.guidebook.crafting.display.banner_pattern.square_bottom_right": "\uf806\uf804\u0d59", + "gui.gm4.guidebook.crafting.display.banner_pattern.square_top_left": "\uf806\uf804\u0d5a", + "gui.gm4.guidebook.crafting.display.banner_pattern.square_top_right": "\uf806\uf804\u0d5b", + "gui.gm4.guidebook.crafting.display.banner_pattern.straight_cross": "\uf806\uf804\u0d5c", + "gui.gm4.guidebook.crafting.display.banner_pattern.stripe_bottom": "\uf806\uf804\u0d5d", + "gui.gm4.guidebook.crafting.display.banner_pattern.stripe_center": "\uf806\uf804\u0d5e", + "gui.gm4.guidebook.crafting.display.banner_pattern.stripe_downleft": "\uf806\uf804\u0d5f", + "gui.gm4.guidebook.crafting.display.banner_pattern.stripe_downright": "\uf806\uf804\u0d60", + "gui.gm4.guidebook.crafting.display.banner_pattern.stripe_left": "\uf806\uf804\u0d61", + "gui.gm4.guidebook.crafting.display.banner_pattern.stripe_middle": "\uf806\uf804\u0d62", + "gui.gm4.guidebook.crafting.display.banner_pattern.stripe_right": "\uf806\uf804\u0d63", + "gui.gm4.guidebook.crafting.display.banner_pattern.stripe_top": "\uf806\uf804\u0d64", + "gui.gm4.guidebook.crafting.display.banner_pattern.triangle_bottom": "\uf806\uf804\u0d65", + "gui.gm4.guidebook.crafting.display.banner_pattern.triangle_top": "\uf806\uf804\u0d66", + "gui.gm4.guidebook.crafting.display.banner_pattern.triangles_bottom": "\uf806\uf804\u0d67", + "gui.gm4.guidebook.crafting.display.banner_pattern.triangles_top": "\uf806\uf804\u0d68", + "gui.gm4.guidebook.crafting.display.shield_pattern.base": "\uf806\uf804\u0d69", + "gui.gm4.guidebook.crafting.display.shield_pattern.border": "\uf806\uf804\u0d6a", + "gui.gm4.guidebook.crafting.display.shield_pattern.bricks": "\uf806\uf804\u0d6b", + "gui.gm4.guidebook.crafting.display.shield_pattern.circle": "\uf806\uf804\u0d6c", + "gui.gm4.guidebook.crafting.display.shield_pattern.creeper": "\uf806\uf804\u0d6d", + "gui.gm4.guidebook.crafting.display.shield_pattern.cross": "\uf806\uf804\u0d6e", + "gui.gm4.guidebook.crafting.display.shield_pattern.curly_border": "\uf806\uf804\u0d6f", + "gui.gm4.guidebook.crafting.display.shield_pattern.diagonal_left": "\uf806\uf804\u0d70", + "gui.gm4.guidebook.crafting.display.shield_pattern.diagonal_right": "\uf806\uf804\u0d71", + "gui.gm4.guidebook.crafting.display.shield_pattern.diagonal_up_left": "\uf806\uf804\u0d72", + "gui.gm4.guidebook.crafting.display.shield_pattern.diagonal_up_right": "\uf806\uf804\u0d73", + "gui.gm4.guidebook.crafting.display.shield_pattern.flower": "\uf806\uf804\u0d74", + "gui.gm4.guidebook.crafting.display.shield_pattern.globe": "\uf806\uf804\u0d75", + "gui.gm4.guidebook.crafting.display.shield_pattern.gradient": "\uf806\uf804\u0d76", + "gui.gm4.guidebook.crafting.display.shield_pattern.gradient_up": "\uf806\uf804\u0d77", + "gui.gm4.guidebook.crafting.display.shield_pattern.half_horizontal": "\uf806\uf804\u0d78", + "gui.gm4.guidebook.crafting.display.shield_pattern.half_horizontal_bottom": "\uf806\uf804\u0d79", + "gui.gm4.guidebook.crafting.display.shield_pattern.half_vertical": "\uf806\uf804\u0d7a", + "gui.gm4.guidebook.crafting.display.shield_pattern.half_vertical_right": "\uf806\uf804\u0d7b", + "gui.gm4.guidebook.crafting.display.shield_pattern.mojang": "\uf806\uf804\u0d7c", + "gui.gm4.guidebook.crafting.display.shield_pattern.piglin": "\uf806\uf804\u0d7d", + "gui.gm4.guidebook.crafting.display.shield_pattern.rhombus": "\uf806\uf804\u0d7e", + "gui.gm4.guidebook.crafting.display.shield_pattern.skull": "\uf806\uf804\u0d7f", + "gui.gm4.guidebook.crafting.display.shield_pattern.small_stripes": "\uf806\uf804\u0d80", + "gui.gm4.guidebook.crafting.display.shield_pattern.square_bottom_left": "\uf806\uf804\u0d81", + "gui.gm4.guidebook.crafting.display.shield_pattern.square_bottom_right": "\uf806\uf804\u0d82", + "gui.gm4.guidebook.crafting.display.shield_pattern.square_top_left": "\uf806\uf804\u0d83", + "gui.gm4.guidebook.crafting.display.shield_pattern.square_top_right": "\uf806\uf804\u0d84", + "gui.gm4.guidebook.crafting.display.shield_pattern.straight_cross": "\uf806\uf804\u0d85", + "gui.gm4.guidebook.crafting.display.shield_pattern.stripe_bottom": "\uf806\uf804\u0d86", + "gui.gm4.guidebook.crafting.display.shield_pattern.stripe_center": "\uf806\uf804\u0d87", + "gui.gm4.guidebook.crafting.display.shield_pattern.stripe_downleft": "\uf806\uf804\u0d88", + "gui.gm4.guidebook.crafting.display.shield_pattern.stripe_downright": "\uf806\uf804\u0d89", + "gui.gm4.guidebook.crafting.display.shield_pattern.stripe_left": "\uf806\uf804\u0d8a", + "gui.gm4.guidebook.crafting.display.shield_pattern.stripe_middle": "\uf806\uf804\u0d8b", + "gui.gm4.guidebook.crafting.display.shield_pattern.stripe_right": "\uf806\uf804\u0d8c", + "gui.gm4.guidebook.crafting.display.shield_pattern.stripe_top": "\uf806\uf804\u0d8d", + "gui.gm4.guidebook.crafting.display.shield_pattern.triangle_bottom": "\uf806\uf804\u0d8e", + "gui.gm4.guidebook.crafting.display.shield_pattern.triangle_top": "\uf806\uf804\u0d8f", + "gui.gm4.guidebook.crafting.display.shield_pattern.triangles_bottom": "\uf806\uf804\u0d90", + "gui.gm4.guidebook.crafting.display.shield_pattern.triangles_top": "\uf806\uf804\u0d91", + "gui.gm4.guidebook.crafting.display.minecraft.acacia_boat": "\u0d92\u0903\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.acacia_door": "\u0d93\u0904\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.acacia_sapling": "\u0d94\u0905\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.acacia_sign": "\u0d95\u0906\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.activator_rail": "\u0d96\u0907\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.allium": "\u0d97\u0908\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.amethyst_cluster": "\u0d98\u0909\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.amethyst_shard": "\u0d99\u090a\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.apple": "\u0d9a\u090b\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.armor_stand": "\u0d9b\u090c\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.arrow": "\u0d9c\u090d\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.axolotl_bucket": "\u0d9d\u090e\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.azure_bluet": "\u0d9e\u090f\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.baked_potato": "\u0d9f\u0910\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.bamboo": "\u0da0\u0911\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.barrier": "\u0da1\u0912\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.beef": "\u0da2\u0913\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.beetroot": "\u0da3\u0914\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.beetroot_seeds": "\u0da4\u0915\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.beetroot_soup": "\u0da5\u0916\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.bell": "\u0da6\u0917\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.birch_boat": "\u0da7\u0918\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.birch_door": "\u0da8\u0919\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.birch_sapling": "\u0da9\u091a\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.birch_sign": "\u0daa\u091b\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.black_candle": "\u0dab\u091c\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.black_dye": "\u0dac\u091d\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.black_stained_glass_pane": "\u0dad\u091e\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.blaze_powder": "\u0dae\u091f\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.blaze_rod": "\u0daf\u0920\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.blue_candle": "\u0db0\u0921\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.blue_dye": "\u0db1\u0922\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.blue_orchid": "\u0db2\u0923\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.blue_stained_glass_pane": "\u0db3\u0924\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.bone": "\u0db4\u0925\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.bone_meal": "\u0db5\u0926\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.book": "\u0db6\u0927\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.bow": "\u0db7\u0928\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.bowl": "\u0db8\u0929\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.brain_coral": "\u0db9\u092a\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.brain_coral_fan": "\u0dba\u092b\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.bread": "\u0dbb\u092c\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.brewing_stand": "\u0dbc\u092d\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.brick": "\u0dbd\u092e\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.broken_elytra": "\u0dbe\u092f\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.brown_candle": "\u0dbf\u0930\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.brown_dye": "\u0dc0\u0931\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.brown_mushroom": "\u0dc1\u0932\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.brown_stained_glass_pane": "\u0dc2\u0933\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.bubble_coral": "\u0dc3\u0934\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.bubble_coral_fan": "\u0dc4\u0935\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.bucket": "\u0dc5\u0936\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.bundle": "\u0dc6\u0937\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.bundle_filled": "\u0dc7\u0938\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.cake": "\u0dc8\u0939\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.campfire": "\u0dc9\u093a\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.candle": "\u0dca\u093b\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.carrot": "\u0dcb\u093c\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.carrot_on_a_stick": "\u0dcc\u093d\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.cauldron": "\u0dcd\u093e\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.chain": "\u0dce\u093f\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.chainmail_boots": "\u0dcf\u0940\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.chainmail_chestplate": "\u0dd0\u0941\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.chainmail_helmet": "\u0dd1\u0942\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.chainmail_leggings": "\u0dd2\u0943\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.charcoal": "\u0dd3\u0944\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.chest_minecart": "\u0dd4\u0945\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.chicken": "\u0dd5\u0946\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.chorus_fruit": "\u0dd6\u0947\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.clay_ball": "\u0dd7\u0948\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.clock": "\u0dd8\u0949\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.coal": "\u0dd9\u094a\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.cobweb": "\u0dda\u094b\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.cocoa_beans": "\u0ddb\u094c\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.cod": "\u0ddc\u094d\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.cod_bucket": "\u0ddd\u094e\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.command_block_minecart": "\u0dde\u094f\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.comparator": "\u0ddf\u0950\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.compass": "\u0de0\u0951\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.cooked_beef": "\u0de1\u0952\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.cooked_chicken": "\u0de2\u0953\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.cooked_cod": "\u0de3\u0954\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.cooked_mutton": "\u0de4\u0955\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.cooked_porkchop": "\u0de5\u0956\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.cooked_rabbit": "\u0de6\u0957\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.cooked_salmon": "\u0de7\u0958\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.cookie": "\u0de8\u0959\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.copper_ingot": "\u0de9\u095a\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.cornflower": "\u0dea\u095b\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.creeper_banner_pattern": "\u0deb\u095c\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.crimson_door": "\u0dec\u095d\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.crimson_fungus": "\u0ded\u095e\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.crimson_roots": "\u0dee\u095f\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.crimson_sign": "\u0def\u0960\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.crossbow": "\u0df0\u0961\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.crossbow_arrow": "\u0df1\u0962\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.crossbow_firework": "\u0df2\u0963\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.cyan_candle": "\u0df3\u0964\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.cyan_dye": "\u0df4\u0965\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.cyan_stained_glass_pane": "\u0df5\u0966\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.dandelion": "\u0df6\u0967\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.dark_oak_boat": "\u0df7\u0968\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.dark_oak_door": "\u0df8\u0969\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.dark_oak_sapling": "\u0df9\u096a\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.dark_oak_sign": "\u0dfa\u096b\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.dead_brain_coral": "\u0dfb\u096c\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.dead_brain_coral_fan": "\u0dfc\u096d\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.dead_bubble_coral": "\u0dfd\u096e\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.dead_bubble_coral_fan": "\u0dfe\u096f\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.dead_bush": "\u0dff\u0970\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.dead_fire_coral": "\u0e00\u0971\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.dead_fire_coral_fan": "\u0e01\u0972\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.dead_horn_coral": "\u0e02\u0973\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.dead_horn_coral_fan": "\u0e03\u0974\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.dead_tube_coral": "\u0e04\u0975\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.dead_tube_coral_fan": "\u0e05\u0976\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.detector_rail": "\u0e06\u0977\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.diamond": "\u0e07\u0978\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.diamond_axe": "\u0e08\u0979\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.diamond_boots": "\u0e09\u097a\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.diamond_chestplate": "\u0e0a\u097b\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.diamond_helmet": "\u0e0b\u097c\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.diamond_hoe": "\u0e0c\u097d\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.diamond_horse_armor": "\u0e0d\u097e\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.diamond_leggings": "\u0e0e\u097f\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.diamond_pickaxe": "\u0e0f\u0980\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.diamond_shovel": "\u0e10\u0981\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.diamond_sword": "\u0e11\u0982\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.dragon_breath": "\u0e12\u0983\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.dried_kelp": "\u0e13\u0984\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.egg": "\u0e14\u0985\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.elytra": "\u0e15\u0986\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.emerald": "\u0e16\u0987\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.enchanted_book": "\u0e17\u0988\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.end_crystal": "\u0e18\u0989\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.ender_eye": "\u0e19\u098a\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.ender_pearl": "\u0e1a\u098b\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.experience_bottle": "\u0e1b\u098c\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.feather": "\u0e1c\u098d\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.fermented_spider_eye": "\u0e1d\u098e\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.fern": "\u0e1e\u098f\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.filled_map": "\u0e1f\u0990\uf015", + "gui.gm4.guidebook.crafting.display.overlay.minecraft.filled_map_markings": "\uf806\uf804\u0e20\u0991\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.fire_charge": "\u0e21\u0992\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.fire_coral": "\u0e22\u0993\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.fire_coral_fan": "\u0e23\u0994\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.firework_rocket": "\u0e24\u0995\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.firework_star": "\u0e25\u0996\uf015", + "gui.gm4.guidebook.crafting.display.overlay.minecraft.firework_star_overlay": "\uf806\uf804\u0e26\u0997\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.fishing_rod": "\u0e27\u0998\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.flint": "\u0e28\u0999\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.flint_and_steel": "\u0e29\u099a\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.flower_banner_pattern": "\u0e2a\u099b\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.flower_pot": "\u0e2b\u099c\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.furnace_minecart": "\u0e2c\u099d\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.ghast_tear": "\u0e2d\u099e\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.glass_bottle": "\u0e2e\u099f\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.glass_pane": "\u0e2f\u09a0\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.glistering_melon_slice": "\u0e30\u09a1\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.globe_banner_pattern": "\u0e31\u09a2\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.glow_berries": "\u0e32\u09a3\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.glow_ink_sac": "\u0e33\u09a4\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.glow_item_frame": "\u0e34\u09a5\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.glow_lichen": "\u0e35\u09a6\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.glowstone_dust": "\u0e36\u09a7\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.gold_ingot": "\u0e37\u09a8\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.gold_nugget": "\u0e38\u09a9\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.golden_apple": "\u0e39\u09aa\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.enchanted_golden_apple": "\u0e39\u09aa\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.golden_axe": "\u0e3a\u09ab\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.golden_boots": "\u0e3b\u09ac\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.golden_carrot": "\u0e3c\u09ad\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.golden_chestplate": "\u0e3d\u09ae\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.golden_helmet": "\u0e3e\u09af\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.golden_hoe": "\u0e3f\u09b0\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.golden_horse_armor": "\u0e40\u09b1\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.golden_leggings": "\u0e41\u09b2\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.golden_pickaxe": "\u0e42\u09b3\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.golden_shovel": "\u0e43\u09b4\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.golden_sword": "\u0e44\u09b5\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.grass": "\u0e45\u09b6\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.gray_candle": "\u0e46\u09b7\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.gray_dye": "\u0e47\u09b8\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.gray_stained_glass_pane": "\u0e48\u09b9\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.green_candle": "\u0e49\u09ba\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.green_dye": "\u0e4a\u09bb\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.green_stained_glass_pane": "\u0e4b\u09bc\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.gunpowder": "\u0e4c\u09bd\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.hanging_roots": "\u0e4d\u09be\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.heart_of_the_sea": "\u0e4e\u09bf\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.honey_bottle": "\u0e4f\u09c0\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.honeycomb": "\u0e50\u09c1\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.hopper": "\u0e51\u09c2\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.hopper_minecart": "\u0e52\u09c3\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.horn_coral": "\u0e53\u09c4\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.horn_coral_fan": "\u0e54\u09c5\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.ink_sac": "\u0e55\u09c6\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.iron_axe": "\u0e56\u09c7\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.iron_bars": "\u0e57\u09c8\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.iron_boots": "\u0e58\u09c9\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.iron_chestplate": "\u0e59\u09ca\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.iron_door": "\u0e5a\u09cb\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.iron_helmet": "\u0e5b\u09cc\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.iron_hoe": "\u0e5c\u09cd\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.iron_horse_armor": "\u0e5d\u09ce\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.iron_ingot": "\u0e5e\u09cf\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.iron_leggings": "\u0e5f\u09d0\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.iron_nugget": "\u0e60\u09d1\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.iron_pickaxe": "\u0e61\u09d2\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.iron_shovel": "\u0e62\u09d3\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.iron_sword": "\u0e63\u09d4\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.item_frame": "\u0e64\u09d5\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.jungle_boat": "\u0e65\u09d6\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.jungle_door": "\u0e66\u09d7\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.jungle_sapling": "\u0e67\u09d8\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.jungle_sign": "\u0e68\u09d9\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.kelp": "\u0e69\u09da\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.knowledge_book": "\u0e6a\u09db\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.ladder": "\u0e6b\u09dc\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.lantern": "\u0e6c\u09dd\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.lapis_lazuli": "\u0e6d\u09de\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.large_amethyst_bud": "\u0e6e\u09df\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.large_fern": "\u0e6f\u09e0\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.lava_bucket": "\u0e70\u09e1\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.lead": "\u0e71\u09e2\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.leather": "\u0e72\u09e3\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.leather_boots": "\u0e73\u09e4\uf015", + "gui.gm4.guidebook.crafting.display.overlay.minecraft.leather_boots_overlay": "\uf806\uf804\u0e74\u09e5\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.leather_chestplate": "\u0e75\u09e6\uf015", + "gui.gm4.guidebook.crafting.display.overlay.minecraft.leather_chestplate_overlay": "\uf806\uf804\u0e76\u09e7\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.leather_helmet": "\u0e77\u09e8\uf015", + "gui.gm4.guidebook.crafting.display.overlay.minecraft.leather_helmet_overlay": "\uf806\uf804\u0e78\u09e9\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.leather_horse_armor": "\u0e79\u09ea\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.leather_leggings": "\u0e7a\u09eb\uf015", + "gui.gm4.guidebook.crafting.display.overlay.minecraft.leather_leggings_overlay": "\uf806\uf804\u0e7b\u09ec\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.lever": "\u0e7c\u09ed\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.light": "\u0e7d\u09ee\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.light_00": "\u0e7e\u09ef\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.light_01": "\u0e7f\u09f0\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.light_02": "\u0e80\u09f1\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.light_03": "\u0e81\u09f2\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.light_04": "\u0e82\u09f3\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.light_05": "\u0e83\u09f4\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.light_06": "\u0e84\u09f5\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.light_07": "\u0e85\u09f6\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.light_08": "\u0e86\u09f7\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.light_09": "\u0e87\u09f8\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.light_10": "\u0e88\u09f9\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.light_11": "\u0e89\u09fa\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.light_12": "\u0e8a\u09fb\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.light_13": "\u0e8b\u09fc\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.light_14": "\u0e8c\u09fd\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.light_15": "\u0e8d\u09fe\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.light_blue_candle": "\u0e8e\u09ff\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.light_blue_dye": "\u0e8f\u0a00\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.light_blue_stained_glass_pane": "\u0e90\u0a01\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.light_gray_candle": "\u0e91\u0a02\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.light_gray_dye": "\u0e92\u0a03\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.light_gray_stained_glass_pane": "\u0e93\u0a04\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.lilac": "\u0e94\u0a05\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.lily_of_the_valley": "\u0e95\u0a06\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.lily_pad": "\u0e96\u0a07\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.lime_candle": "\u0e97\u0a08\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.lime_dye": "\u0e98\u0a09\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.lime_stained_glass_pane": "\u0e99\u0a0a\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.lingering_potion": "\u0e9a\u0a0b\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.magenta_candle": "\u0e9b\u0a0c\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.magenta_dye": "\u0e9c\u0a0d\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.magenta_stained_glass_pane": "\u0e9d\u0a0e\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.magma_cream": "\u0e9e\u0a0f\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.map": "\u0e9f\u0a10\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.medium_amethyst_bud": "\u0ea0\u0a11\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.melon_seeds": "\u0ea1\u0a12\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.melon_slice": "\u0ea2\u0a13\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.milk_bucket": "\u0ea3\u0a14\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.minecart": "\u0ea4\u0a15\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.mojang_banner_pattern": "\u0ea5\u0a16\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.mushroom_stew": "\u0ea6\u0a17\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.music_disc_11": "\u0ea7\u0a18\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.music_disc_13": "\u0ea8\u0a19\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.music_disc_blocks": "\u0ea9\u0a1a\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.music_disc_cat": "\u0eaa\u0a1b\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.music_disc_chirp": "\u0eab\u0a1c\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.music_disc_far": "\u0eac\u0a1d\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.music_disc_mall": "\u0ead\u0a1e\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.music_disc_mellohi": "\u0eae\u0a1f\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.music_disc_pigstep": "\u0eaf\u0a20\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.music_disc_stal": "\u0eb0\u0a21\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.music_disc_strad": "\u0eb1\u0a22\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.music_disc_wait": "\u0eb2\u0a23\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.music_disc_ward": "\u0eb3\u0a24\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.mutton": "\u0eb4\u0a25\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.name_tag": "\u0eb5\u0a26\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.nautilus_shell": "\u0eb6\u0a27\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.nether_brick": "\u0eb7\u0a28\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.nether_sprouts": "\u0eb8\u0a29\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.nether_star": "\u0eb9\u0a2a\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.nether_wart": "\u0eba\u0a2b\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.netherite_axe": "\u0ebb\u0a2c\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.netherite_boots": "\u0ebc\u0a2d\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.netherite_chestplate": "\u0ebd\u0a2e\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.netherite_helmet": "\u0ebe\u0a2f\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.netherite_hoe": "\u0ebf\u0a30\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.netherite_ingot": "\u0ec0\u0a31\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.netherite_leggings": "\u0ec1\u0a32\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.netherite_pickaxe": "\u0ec2\u0a33\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.netherite_scrap": "\u0ec3\u0a34\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.netherite_shovel": "\u0ec4\u0a35\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.netherite_sword": "\u0ec5\u0a36\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.oak_boat": "\u0ec6\u0a37\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.oak_door": "\u0ec7\u0a38\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.oak_sapling": "\u0ec8\u0a39\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.oak_sign": "\u0ec9\u0a3a\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.orange_candle": "\u0eca\u0a3b\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.orange_dye": "\u0ecb\u0a3c\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.orange_stained_glass_pane": "\u0ecc\u0a3d\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.orange_tulip": "\u0ecd\u0a3e\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.oxeye_daisy": "\u0ece\u0a3f\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.painting": "\u0ecf\u0a40\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.paper": "\u0ed0\u0a41\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.peony": "\u0ed1\u0a42\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.phantom_membrane": "\u0ed2\u0a43\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.piglin_banner_pattern": "\u0ed3\u0a44\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.pink_candle": "\u0ed4\u0a45\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.pink_dye": "\u0ed5\u0a46\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.pink_stained_glass_pane": "\u0ed6\u0a47\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.pink_tulip": "\u0ed7\u0a48\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.pointed_dripstone": "\u0ed8\u0a49\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.poisonous_potato": "\u0ed9\u0a4a\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.popped_chorus_fruit": "\u0eda\u0a4b\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.poppy": "\u0edb\u0a4c\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.porkchop": "\u0edc\u0a4d\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.potato": "\u0edd\u0a4e\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.potion": "\u0ede\u0a4f\uf015", + "gui.gm4.guidebook.crafting.display.overlay.minecraft.potion_overlay": "\uf806\uf804\u0edf\u0a50\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.powder_snow_bucket": "\u0ee0\u0a51\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.powered_rail": "\u0ee1\u0a52\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.prismarine_crystals": "\u0ee2\u0a53\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.prismarine_shard": "\u0ee3\u0a54\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.pufferfish": "\u0ee4\u0a55\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.pufferfish_bucket": "\u0ee5\u0a56\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.pumpkin_pie": "\u0ee6\u0a57\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.pumpkin_seeds": "\u0ee7\u0a58\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.purple_candle": "\u0ee8\u0a59\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.purple_dye": "\u0ee9\u0a5a\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.purple_stained_glass_pane": "\u0eea\u0a5b\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.quartz": "\u0eeb\u0a5c\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.rabbit": "\u0eec\u0a5d\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.rabbit_foot": "\u0eed\u0a5e\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.rabbit_hide": "\u0eee\u0a5f\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.rabbit_stew": "\u0eef\u0a60\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.rail": "\u0ef0\u0a61\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.raw_copper": "\u0ef1\u0a62\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.raw_gold": "\u0ef2\u0a63\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.raw_iron": "\u0ef3\u0a64\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.red_candle": "\u0ef4\u0a65\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.red_dye": "\u0ef5\u0a66\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.red_mushroom": "\u0ef6\u0a67\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.red_stained_glass_pane": "\u0ef7\u0a68\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.red_tulip": "\u0ef8\u0a69\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.redstone": "\u0ef9\u0a6a\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.redstone_torch": "\u0efa\u0a6b\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.repeater": "\u0efb\u0a6c\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.rose_bush": "\u0efc\u0a6d\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.rotten_flesh": "\u0efd\u0a6e\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.saddle": "\u0efe\u0a6f\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.salmon": "\u0eff\u0a70\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.salmon_bucket": "\u0f00\u0a71\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.scute": "\u0f01\u0a72\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.sea_pickle": "\u0f02\u0a73\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.seagrass": "\u0f03\u0a74\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.shears": "\u0f04\u0a75\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.shulker_shell": "\u0f05\u0a76\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.skull_banner_pattern": "\u0f06\u0a77\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.slime_ball": "\u0f07\u0a78\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.small_amethyst_bud": "\u0f08\u0a79\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.snowball": "\u0f09\u0a7a\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.soul_campfire": "\u0f0a\u0a7b\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.soul_lantern": "\u0f0b\u0a7c\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.soul_torch": "\u0f0c\u0a7d\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.spawn_egg": "\u0f0d\u0a7e\uf015", + "gui.gm4.guidebook.crafting.display.overlay.minecraft.spawn_egg_overlay": "\uf806\uf804\u0f0e\u0a7f\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.spectral_arrow": "\u0f0f\u0a80\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.spider_eye": "\u0f10\u0a81\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.splash_potion": "\u0f11\u0a82\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.spruce_boat": "\u0f12\u0a83\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.spruce_door": "\u0f13\u0a84\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.spruce_sapling": "\u0f14\u0a85\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.spruce_sign": "\u0f15\u0a86\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.spyglass": "\u0f16\u0a87\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.stick": "\u0f17\u0a88\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.stone_axe": "\u0f18\u0a89\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.stone_hoe": "\u0f19\u0a8a\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.stone_pickaxe": "\u0f1a\u0a8b\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.stone_shovel": "\u0f1b\u0a8c\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.stone_sword": "\u0f1c\u0a8d\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.string": "\u0f1d\u0a8e\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.structure_void": "\u0f1e\u0a8f\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.sugar": "\u0f1f\u0a90\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.sugar_cane": "\u0f20\u0a91\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.sunflower": "\u0f21\u0a92\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.suspicious_stew": "\u0f22\u0a93\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.sweet_berries": "\u0f23\u0a94\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.tall_grass": "\u0f24\u0a95\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.tipped_arrow": "\u0f25\u0a96\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.tipped_arrow_base": "\u0f26\u0a97\uf015", + "gui.gm4.guidebook.crafting.display.overlay.minecraft.tipped_arrow_head": "\uf806\uf804\u0f27\u0a98\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.tnt_minecart": "\u0f28\u0a99\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.torch": "\u0f29\u0a9a\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.totem_of_undying": "\u0f2a\u0a9b\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.trident": "\u0f2b\u0a9c\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.tripwire_hook": "\u0f2c\u0a9d\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.tropical_fish": "\u0f2d\u0a9e\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.tropical_fish_bucket": "\u0f2e\u0a9f\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.tube_coral": "\u0f2f\u0aa0\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.tube_coral_fan": "\u0f30\u0aa1\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.turtle_egg": "\u0f31\u0aa2\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.turtle_helmet": "\u0f32\u0aa3\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.twisting_vines": "\u0f33\u0aa4\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.vine": "\u0f34\u0aa5\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.warped_door": "\u0f35\u0aa6\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.warped_fungus": "\u0f36\u0aa7\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.warped_fungus_on_a_stick": "\u0f37\u0aa8\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.warped_roots": "\u0f38\u0aa9\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.warped_sign": "\u0f39\u0aaa\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.water_bucket": "\u0f3a\u0aab\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.weeping_vines": "\u0f3b\u0aac\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.wheat": "\u0f3c\u0aad\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.wheat_seeds": "\u0f3d\u0aae\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.white_candle": "\u0f3e\u0aaf\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.white_dye": "\u0f3f\u0ab0\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.white_stained_glass_pane": "\u0f40\u0ab1\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.white_tulip": "\u0f41\u0ab2\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.wither_rose": "\u0f42\u0ab3\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.wooden_axe": "\u0f43\u0ab4\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.wooden_hoe": "\u0f44\u0ab5\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.wooden_pickaxe": "\u0f45\u0ab6\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.wooden_shovel": "\u0f46\u0ab7\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.wooden_sword": "\u0f47\u0ab8\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.writable_book": "\u0f48\u0ab9\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.written_book": "\u0f49\u0aba\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.yellow_candle": "\u0f4a\u0abb\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.yellow_dye": "\u0f4b\u0abc\uf015", + "gui.gm4.guidebook.crafting.display.minecraft.yellow_stained_glass_pane": "\u0f4c\u0abd\uf015", + "gui.gm4.guidebook.crafting.display.overlay.gm4.boots_of_ostara_overlay": "\uf806\uf804\u4101\u4201\uf015", + "gui.gm4.guidebook.crafting.display.gm4.boots_of_ostara": "\u4102\u4202\uf015", + "gui.gm4.guidebook.crafting.display.overlay.gm4.flippers_overlay": "\uf806\uf804\u4103\u4203\uf015", + "gui.gm4.guidebook.crafting.display.gm4.flippers": "\u4104\u4204\uf015", + "gui.gm4.guidebook.crafting.display.gm4.scuba_helmet": "\u4105\u4205\uf015", + "gui.gm4.guidebook.crafting.display.gm4.scuba_tank": "\u4106\u4206\uf015", + "gui.gm4.guidebook.crafting.display.gm4.secret_trapped_oak_sign": "\u4107\u4207\uf015", + "gui.gm4.guidebook.crafting.display.gm4.trapped_oak_sign": "\u4108\u4208\uf015", + "gui.gm4.guidebook.crafting.display.gm4.relocator": "\u4012", + "gui.gm4.guidebook.crafting.display.gm4.tier_1_heart_canister": "\u4109\u4209\uf015", + "gui.gm4.guidebook.crafting.display.gm4.tier_2_heart_canister": "\u4013", + "gui.gm4.guidebook.crafting.display.gm4.piston_minecart": "\u4110\u4210\uf015", + "gui.gm4.guidebook.crafting.display.gm4.landmine": "\u4014", + "gui.gm4.guidebook.crafting.display.gm4.landmine.crafting_table": "\u4015", + "gui.gm4.guidebook.crafting.display.gm4.landmine.invisible": "\u4016", + "gui.gm4.guidebook.crafting.display.gm4.soft_defuser": "\u4017", + "gui.gm4.guidebook.crafting.display.overlay.gm4.orb_of_ankou_overlay": "\uf806\uf804\u4111\u4211\uf015", + "gui.gm4.guidebook.crafting.display.gm4.orb_of_ankou": "\u4112\u4212\uf015" +} diff --git a/gm4_guidebook/assets/gm4_guidebook/textures/font_magic/block_sheet.png b/gm4_guidebook/assets/gm4_guidebook/textures/font_magic/block_sheet.png new file mode 100644 index 0000000000..fd79c51524 Binary files /dev/null and b/gm4_guidebook/assets/gm4_guidebook/textures/font_magic/block_sheet.png differ diff --git a/gm4_guidebook/assets/gm4_guidebook/textures/font_magic/numbers.png b/gm4_guidebook/assets/gm4_guidebook/textures/font_magic/numbers.png new file mode 100644 index 0000000000..612d882c2f Binary files /dev/null and b/gm4_guidebook/assets/gm4_guidebook/textures/font_magic/numbers.png differ diff --git a/gm4_guidebook/assets/gm4_guidebook/textures/font_magic/spacing_square.png b/gm4_guidebook/assets/gm4_guidebook/textures/font_magic/spacing_square.png new file mode 100644 index 0000000000..8a216f2464 Binary files /dev/null and b/gm4_guidebook/assets/gm4_guidebook/textures/font_magic/spacing_square.png differ diff --git a/gm4_guidebook/assets/gm4_guidebook/textures/gui/crafting_grid.png b/gm4_guidebook/assets/gm4_guidebook/textures/gui/crafting_grid.png new file mode 100644 index 0000000000..ab514b43f1 Binary files /dev/null and b/gm4_guidebook/assets/gm4_guidebook/textures/gui/crafting_grid.png differ diff --git a/gm4_guidebook/assets/gm4_guidebook/textures/gui/crafting_grid_standard.png b/gm4_guidebook/assets/gm4_guidebook/textures/gui/crafting_grid_standard.png new file mode 100644 index 0000000000..e5036ca627 Binary files /dev/null and b/gm4_guidebook/assets/gm4_guidebook/textures/gui/crafting_grid_standard.png differ diff --git a/gm4_guidebook/assets/gm4_guidebook/textures/gui/locked_page.png b/gm4_guidebook/assets/gm4_guidebook/textures/gui/locked_page.png new file mode 100644 index 0000000000..291961469d Binary files /dev/null and b/gm4_guidebook/assets/gm4_guidebook/textures/gui/locked_page.png differ diff --git a/gm4_guidebook/assets/gm4_guidebook/textures/gui/page.png b/gm4_guidebook/assets/gm4_guidebook/textures/gui/page.png new file mode 100644 index 0000000000..80579fb873 Binary files /dev/null and b/gm4_guidebook/assets/gm4_guidebook/textures/gui/page.png differ diff --git a/gm4_guidebook/assets/gm4_guidebook/textures/gui/page_edge.png b/gm4_guidebook/assets/gm4_guidebook/textures/gui/page_edge.png new file mode 100644 index 0000000000..5d37111684 Binary files /dev/null and b/gm4_guidebook/assets/gm4_guidebook/textures/gui/page_edge.png differ diff --git a/gm4_guidebook/assets/gm4_guidebook/textures/gui/page_edge_intro.png b/gm4_guidebook/assets/gm4_guidebook/textures/gui/page_edge_intro.png new file mode 100644 index 0000000000..f7f245d25a Binary files /dev/null and b/gm4_guidebook/assets/gm4_guidebook/textures/gui/page_edge_intro.png differ diff --git a/gm4_guidebook/assets/gm4_guidebook/textures/gui/page_full.png b/gm4_guidebook/assets/gm4_guidebook/textures/gui/page_full.png new file mode 100644 index 0000000000..cdfdf990b2 Binary files /dev/null and b/gm4_guidebook/assets/gm4_guidebook/textures/gui/page_full.png differ diff --git a/gm4_guidebook/assets/gm4_guidebook/textures/gui/page_full_intro.png b/gm4_guidebook/assets/gm4_guidebook/textures/gui/page_full_intro.png new file mode 100644 index 0000000000..768b050d6e Binary files /dev/null and b/gm4_guidebook/assets/gm4_guidebook/textures/gui/page_full_intro.png differ diff --git a/gm4_guidebook/assets/gm4_guidebook/textures/gui/page_intro.png b/gm4_guidebook/assets/gm4_guidebook/textures/gui/page_intro.png new file mode 100644 index 0000000000..e911bd40b4 Binary files /dev/null and b/gm4_guidebook/assets/gm4_guidebook/textures/gui/page_intro.png differ diff --git a/gm4_guidebook/assets/gm4_guidebook/textures/gui/shapeless.png b/gm4_guidebook/assets/gm4_guidebook/textures/gui/shapeless.png new file mode 100644 index 0000000000..14ff4207c8 Binary files /dev/null and b/gm4_guidebook/assets/gm4_guidebook/textures/gui/shapeless.png differ diff --git a/gm4_guidebook/assets/gm4_guidebook/textures/gui/toast.png b/gm4_guidebook/assets/gm4_guidebook/textures/gui/toast.png new file mode 100644 index 0000000000..852c061326 Binary files /dev/null and b/gm4_guidebook/assets/gm4_guidebook/textures/gui/toast.png differ diff --git a/gm4_guidebook/assets/gm4_guidebook/textures/gui/toast_copy.png b/gm4_guidebook/assets/gm4_guidebook/textures/gui/toast_copy.png new file mode 100644 index 0000000000..2adb15a495 Binary files /dev/null and b/gm4_guidebook/assets/gm4_guidebook/textures/gui/toast_copy.png differ diff --git a/gm4_guidebook/assets/gm4_guidebook/textures/gui/toast_icon.png b/gm4_guidebook/assets/gm4_guidebook/textures/gui/toast_icon.png new file mode 100644 index 0000000000..58161e4e09 Binary files /dev/null and b/gm4_guidebook/assets/gm4_guidebook/textures/gui/toast_icon.png differ diff --git a/gm4_guidebook/assets/gm4_guidebook/textures/gui/toast_icon_copy.png b/gm4_guidebook/assets/gm4_guidebook/textures/gui/toast_icon_copy.png new file mode 100644 index 0000000000..6b7a2b049f Binary files /dev/null and b/gm4_guidebook/assets/gm4_guidebook/textures/gui/toast_icon_copy.png differ diff --git a/gm4_guidebook/assets/gm4_guidebook/textures/gui/unknown_item.png b/gm4_guidebook/assets/gm4_guidebook/textures/gui/unknown_item.png new file mode 100644 index 0000000000..51e0ca4829 Binary files /dev/null and b/gm4_guidebook/assets/gm4_guidebook/textures/gui/unknown_item.png differ diff --git a/gm4_guidebook/assets/gm4_guidebook/textures/item/guidebook.png b/gm4_guidebook/assets/gm4_guidebook/textures/item/guidebook.png new file mode 100644 index 0000000000..709447f2f7 Binary files /dev/null and b/gm4_guidebook/assets/gm4_guidebook/textures/item/guidebook.png differ diff --git a/gm4_guidebook/assets/translations.csv b/gm4_guidebook/assets/translations.csv new file mode 100644 index 0000000000..8fc63e841c --- /dev/null +++ b/gm4_guidebook/assets/translations.csv @@ -0,0 +1,12 @@ +key,en_us +text.gm4.guidebook.discovered_page,Check your guidebook! +text.gm4.guidebook.discovered,%1$s has discovered a guidebook page from %2$s +text.gm4.guidebook.jump_to_section,Jump to Section +text.gm4.guidebook.next,Go to the next module +text.gm4.guidebook.open_wiki,Open the wiki page for this module +text.gm4.guidebook.prev,Go to the previous module +text.gm4.guidebook.refresh,Refresh section +text.gm4.guidebook.return_to_toc,Return to the table of contents +text.gm4.guidebook.table_of_contents,Table of Contents +text.gm4.guidebook.title,Gamemode 4 Guidebook +text.gm4.guidebook.undiscovered,Undiscovered diff --git a/gm4_guidebook/beet.yaml b/gm4_guidebook/beet.yaml index f81ce393d5..0a048da7c9 100644 --- a/gm4_guidebook/beet.yaml +++ b/gm4_guidebook/beet.yaml @@ -5,11 +5,14 @@ version: 2.0.X data_pack: load: . +resource_pack: + load: . + require: - bolt pipeline: - - mecha + - legacy_item_sheet - gm4.plugins.extend.module - gm4.plugins.include.lib_forceload @@ -21,6 +24,20 @@ meta: schedule_loops: - main - tick + model_data: + - item: written_book + reference: item/guidebook + template: generated + translation_linter_ignores: + - text.gm4.guidebook.discovered_page + - text.gm4.guidebook.discovered + - text.gm4.guidebook.next + - text.gm4.guidebook.open_wiki + - text.gm4.guidebook.prev + - text.gm4.guidebook.refresh + - text.gm4.guidebook.return_to_toc + - text.gm4.guidebook.table_of_contents + - text.gm4.guidebook.undiscovered website: description: Adds a dynamic guidebook to discover the mechanics of Gamemode 4! This provides a wiki-like experience in-game! recommended: diff --git a/gm4_guidebook/data/gm4_guidebook/loot_tables/guidebook.json b/gm4_guidebook/data/gm4_guidebook/loot_tables/guidebook.json index 7bd78efa19..de83a1019a 100644 --- a/gm4_guidebook/data/gm4_guidebook/loot_tables/guidebook.json +++ b/gm4_guidebook/data/gm4_guidebook/loot_tables/guidebook.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_guidebook:{lectern:0b,trigger:1},pages:['[\"\",{\"translate\":\"gui.gm4.guidebook.page.intro\",\"fallback\": \"\",\"color\": \"white\",\"font\": \"gm4:guidebook\"},{\"translate\":\"text.gm4.guidebook.introduction\",\"fallback\":\"Introduction\",\"underlined\":true},{\"text\":\"\n\n\"},{\"translate\":\"text.gm4.guidebook.letter\",\"fallback\":\"This is a world unlike others. It appears that certain things work...differently to say the least.\n\nThis book will document discoveries regarding these new mechanics.\"},{\"text\":\"\n\n> \",\"color\":\"#4AA0C7\"},{\"translate\":\"text.gm4.guidebook.refresh_findings\",\"fallback\":\"Refresh Findings\",\"color\":\"#4AA0C7\",\"hoverEvent\":{\"action\":\"show_text\",\"contents\":[{\"translate\":\"text.gm4.guidebook.refresh_toc\",\"fallback\":\"Refresh Table of Contents\",\"color\":\"gold\"}]},\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger gm4_guide set 1\"}}]'],title:\"Gamemode 4 Guidebook\",author:Unknown,generation:3}" + "tag": "{CustomModelData:'gm4_guidebook:item/guidebook',gm4_guidebook:{lectern:0b,trigger:1},pages:['[\"\",{\"translate\":\"gui.gm4.guidebook.page.intro\",\"fallback\": \"\",\"color\": \"white\",\"font\": \"gm4:guidebook\"},{\"translate\":\"text.gm4.guidebook.introduction\",\"fallback\":\"Introduction\",\"underlined\":true},{\"text\":\"\n\n\"},{\"translate\":\"text.gm4.guidebook.letter\",\"fallback\":\"This is a world unlike others. It appears that certain things work...differently to say the least.\n\nThis book will document discoveries regarding these new mechanics.\"},{\"text\":\"\n\n> \",\"color\":\"#4AA0C7\"},{\"translate\":\"text.gm4.guidebook.refresh_findings\",\"fallback\":\"Refresh Findings\",\"color\":\"#4AA0C7\",\"hoverEvent\":{\"action\":\"show_text\",\"contents\":[{\"translate\":\"text.gm4.guidebook.refresh_toc\",\"fallback\":\"Refresh Table of Contents\",\"color\":\"gold\"}]},\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger gm4_guide set 1\"}}]'],title:\"Gamemode 4 Guidebook\",author:Unknown,generation:3}" }, { "function": "minecraft:set_name", diff --git a/gm4_guidebook/data/gm4_guidebook/loot_tables/lectern/guidebook.json b/gm4_guidebook/data/gm4_guidebook/loot_tables/lectern/guidebook.json index 8ac18960a6..a6e95cddc2 100644 --- a/gm4_guidebook/data/gm4_guidebook/loot_tables/lectern/guidebook.json +++ b/gm4_guidebook/data/gm4_guidebook/loot_tables/lectern/guidebook.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_guidebook:{lectern:1b,trigger:1},pages:['[\"\",{\"translate\":\"gui.gm4.guidebook.page.toc\",\"fallback\":\"\",\"color\":\"white\",\"font\":\"gm4:guidebook\"}]','[\"\",{\"translate\":\"gui.gm4.guidebook.page.intro\",\"fallback\": \"\",\"color\": \"white\",\"font\": \"gm4:guidebook\"},{\"translate\":\"text.gm4.guidebook.introduction\",\"fallback\":\"Introduction\",\"underlined\":true},{\"text\":\"\n\n\"},{\"translate\":\"text.gm4.guidebook.letter\",\"fallback\":\"This is a world unlike others. It appears that certain things work...differently to say the least.\n\nThis book will document discoveries regarding these new mechanics.\"},{\"text\":\"\n\n> \",\"color\":\"#4AA0C7\"},{\"translate\":\"text.gm4.guidebook.refresh_findings\",\"fallback\":\"Refresh Findings\",\"color\":\"#4AA0C7\",\"hoverEvent\":{\"action\":\"show_text\",\"contents\":[{\"translate\":\"text.gm4.guidebook.refresh_toc\",\"fallback\":\"Refresh Table of Contents\",\"color\":\"gold\"}]},\"clickEvent\":{\"action\":\"change_page\",\"value\":\"1\"}}]'],title:\"Gamemode 4 Guidebook\",author:Unknown,generation:3}" + "tag": "{CustomModelData:'gm4_guidebook:item/guidebook',gm4_guidebook:{lectern:1b,trigger:1},pages:['[\"\",{\"translate\":\"gui.gm4.guidebook.page.toc\",\"fallback\":\"\",\"color\":\"white\",\"font\":\"gm4:guidebook\"}]','[\"\",{\"translate\":\"gui.gm4.guidebook.page.intro\",\"fallback\": \"\",\"color\": \"white\",\"font\": \"gm4:guidebook\"},{\"translate\":\"text.gm4.guidebook.introduction\",\"fallback\":\"Introduction\",\"underlined\":true},{\"text\":\"\n\n\"},{\"translate\":\"text.gm4.guidebook.letter\",\"fallback\":\"This is a world unlike others. It appears that certain things work...differently to say the least.\n\nThis book will document discoveries regarding these new mechanics.\"},{\"text\":\"\n\n> \",\"color\":\"#4AA0C7\"},{\"translate\":\"text.gm4.guidebook.refresh_findings\",\"fallback\":\"Refresh Findings\",\"color\":\"#4AA0C7\",\"hoverEvent\":{\"action\":\"show_text\",\"contents\":[{\"translate\":\"text.gm4.guidebook.refresh_toc\",\"fallback\":\"Refresh Table of Contents\",\"color\":\"gold\"}]},\"clickEvent\":{\"action\":\"change_page\",\"value\":\"1\"}}]'],title:\"Gamemode 4 Guidebook\",author:Unknown,generation:3}" }, { "function": "minecraft:set_name", diff --git a/gm4_guidebook/generate_guidebooks.py b/gm4_guidebook/generate_guidebooks.py index 8e95e8baf3..3035a55492 100644 --- a/gm4_guidebook/generate_guidebooks.py +++ b/gm4_guidebook/generate_guidebooks.py @@ -1,9 +1,10 @@ -import sys -import os import colorsys import json import logging -from typing import Any, ClassVar, Literal, Optional +import os +import sys +from typing import Any, ClassVar, Literal, Optional, cast +from pathlib import Path import nbtlib # type: ignore ; missing stub file from beet import ( @@ -15,13 +16,14 @@ JsonFile, JsonFileBase, LootTable, - PngFile, + Model, NamespaceContainer, - Texture + PngFile, + Texture, ) from beet.contrib.vanilla import Vanilla from beet.core.utils import TextComponent -from PIL import Image +from PIL import Image, ImageDraw from pydantic.v1 import BaseModel from gm4.plugins.player_heads import Skin @@ -94,7 +96,6 @@ def beet_default(ctx: Context): generate_files(ctx, d) - """ parse guidebook file and generate all files """ @@ -149,9 +150,18 @@ def generate_files(ctx:Context, d: DataPack): for index, section in enumerate(book.sections): if (advancement := generate_advancement(book, index)) is not None: d[f"gm4_guidebook:{book.id}/unlock/{section.name}"] = advancement - d[f"gm4_guidebook:{book.id}/display/{section.name}"] = generate_display_advancement(book) + d[f"gm4_guidebook:{book.id}/display/{section.name}"] = generate_display_advancement(book, ctx.project_id) d[f"gm4_guidebook:{book.id}/rewards/{section.name}"] = generate_reward_function( section, book.id, book.name, book.description) + + # register and create advancement icons to resource pack + if d is ctx.data: # don't run for overlays - its not needed + ctx.meta['gm4'].setdefault('model_data',[]).append({ + "template": "custom", + "reference": f"{ctx.project_id}:guidebook_icon/{book.id}", + "item": book.icon.get('item','').removeprefix("minecraft:"), + }) + ctx.assets[f"{ctx.project_id}:guidebook_icon/{book.id}"] = generate_toast_model(book, ctx) d[GuidebookPages].clear() @@ -1292,7 +1302,7 @@ def generate_loottable(book: Book) -> tuple[LootTable, LootTable, list[Any], lis functions:list[dict[Any, Any]] = [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_guidebook:{lectern:0b, trigger:" + str(book.trigger_id) + "},title:\"Gamemode 4 Guidebook\",author:Unknown,generation:3,pages:[]}" + "tag": "{CustomModelData:'gm4_guidebook:item/guidebook',gm4_guidebook:{lectern:0b, trigger:" + str(book.trigger_id) + "},title:\"Gamemode 4 Guidebook\",author:Unknown,generation:3,pages:[]}" }, { "function": "minecraft:set_name", @@ -1319,7 +1329,7 @@ def generate_loottable(book: Book) -> tuple[LootTable, LootTable, list[Any], lis functions_lectern:list[dict[Any, Any]] = [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_guidebook:{lectern:1b, trigger:" + str(book.trigger_id) + "},title:\"Gamemode 4 Guidebook\",author:Unknown,generation:3,pages:[]}" + "tag": "{CustomModelData:'gm4_guidebook:item/guidebook',gm4_guidebook:{lectern:1b, trigger:" + str(book.trigger_id) + "},title:\"Gamemode 4 Guidebook\",author:Unknown,generation:3,pages:[]}" }, { "function": "minecraft:set_name", @@ -1716,9 +1726,12 @@ def generate_advancement(book: Book, section_index: int) -> Advancement | None: """ Creates the advancement to show the toast """ -def generate_display_advancement(book: Book) -> Advancement: +def generate_display_advancement(book: Book, project_id: str) -> Advancement: module_name = book.name icon = book.icon + icon_nbt: nbtlib.Compound = nbtlib.parse_nbt(icon.get('nbt',"{}")) # type: ignore ; nbtlib missing stub file + icon_nbt.merge({"CustomModelData": nbtlib.String(f"{project_id}:guidebook_icon/{book.id}")}) # type: ignore + icon["nbt"] = nbtlib.serialize_tag(icon_nbt) # type: ignore display = { "icon": icon, # taken from book dictionary "title": [ @@ -1795,7 +1808,7 @@ def generate_reward_function(section: Section, book_id: str, book_name: str, des "text": "\n" }, { - "translate": f"text.gm4.guidebook.module_desc.{book_name}", # module description + "translate": f"text.gm4.guidebook.module_desc.{book_id}", # module description "fallback": desc, "italic": True, "color": "gray" @@ -1920,6 +1933,45 @@ def generate_update_lectern_function(book: Book) -> Function: ], tags=["gm4_guidebook:update_lectern"]) +""" +Creates page unlock toast texture from module icons +""" +def generate_toast_model(book: Book, ctx: Context) -> Model: + # look for module icon + # first looks for gm4_apple_trees:gui/guidebook/apple_trees + # then for the pack.png + icon = ctx.assets.textures.get(f"{ctx.project_id}:gui/guidebook/{book.id}", None) + if not icon and ctx.data.icon and ctx.data.icon != PngFile(source_path=Path("base/pack.png")): # use pack.png of root pack if no guidebook texture given + icon = ctx.data.icon.copy() # copy image to new file + + if not icon: # still no icon, use the guidebook book texture + return Model({ + "parent":"gm4_guidebook:item/guidebook" + }) + + # round corners + img = cast(Image.Image, icon.image) # FIXME why needs cast? # type: ignore + mask = Image.new(mode='L', size=img.size) + mask_draw = ImageDraw.Draw(mask) + mask_draw.rounded_rectangle(((0,0),img.size), radius=img.size[0]//6, fill=255) + img.putalpha(mask) + ctx.assets[f"{ctx.project_id}:gui/guidebook/{book.id}"] = Texture(img) + + # create model for new texture + return Model({ + "parent": "builtin/generated", + "textures":{ + "layer0": f"{ctx.project_id}:gui/guidebook/{book.id}" + }, + "display":{ + "gui":{ + "scale": [1.4, 1.4, 1] + } + } + }) + + + """ Clamps a value between to valid RGB decimal numbers """ diff --git a/gm4_guidebook/legacy_item_sheet.py b/gm4_guidebook/legacy_item_sheet.py new file mode 100644 index 0000000000..0fc247ad25 --- /dev/null +++ b/gm4_guidebook/legacy_item_sheet.py @@ -0,0 +1,9 @@ +from beet import Context + +def beet_default(ctx: Context): + """Merges the `guidebook_items.json Font with the master `guidebook.json`. + This is the temporary-ish organization technique until our custom models/items can be rendered on demand and formed into a spritesheet""" + + # NOTE these font files will be auto-generated in the future + ctx.assets.fonts["gm4:guidebook"].merge( ctx.assets.fonts["gm4:gm4_items"] ) + ctx.assets.fonts["gm4:guidebook"].merge( ctx.assets.fonts["gm4:vanilla_items"] ) diff --git a/gm4_heart_canisters/assets/gm4_heart_canisters/textures/item/heart_canister_tier_1.png b/gm4_heart_canisters/assets/gm4_heart_canisters/textures/item/heart_canister_tier_1.png new file mode 100644 index 0000000000..7110e27c75 Binary files /dev/null and b/gm4_heart_canisters/assets/gm4_heart_canisters/textures/item/heart_canister_tier_1.png differ diff --git a/gm4_heart_canisters/assets/gm4_heart_canisters/textures/item/heart_canister_tier_2.png b/gm4_heart_canisters/assets/gm4_heart_canisters/textures/item/heart_canister_tier_2.png new file mode 100644 index 0000000000..aeb8cc7338 Binary files /dev/null and b/gm4_heart_canisters/assets/gm4_heart_canisters/textures/item/heart_canister_tier_2.png differ diff --git a/gm4_heart_canisters/assets/gm4_heart_canisters/textures/item/heart_canister_tier_2.png.mcmeta b/gm4_heart_canisters/assets/gm4_heart_canisters/textures/item/heart_canister_tier_2.png.mcmeta new file mode 100644 index 0000000000..23c177dd65 --- /dev/null +++ b/gm4_heart_canisters/assets/gm4_heart_canisters/textures/item/heart_canister_tier_2.png.mcmeta @@ -0,0 +1,7 @@ +{ + "animation": { + "frametime": 6, + "interpolate": true + + } +} diff --git a/gm4_heart_canisters/assets/translations.csv b/gm4_heart_canisters/assets/translations.csv new file mode 100644 index 0000000000..3c251c9d86 --- /dev/null +++ b/gm4_heart_canisters/assets/translations.csv @@ -0,0 +1,14 @@ +key,en_us +item.gm4.heart_canister,Heart Canister +item.gm4.heart_canister.lore.tier,Tier %s +advancement.gm4.heart_canisters.max.title,All My Loving +advancement.gm4.heart_canisters.max.description,Max out your Heart Canister health +advancement.gm4.heart_canisters.tier_1.title,Can't Buy Me Love +advancement.gm4.heart_canisters.tier_1.description,Craft a tier 1 Heart Canister +advancement.gm4.heart_canisters.tier_2.title,Love Is All You Need +advancement.gm4.heart_canisters.tier_2.description,Craft a tier 2 Heart Canister +text.gm4.guidebook.module_desc.heart_canisters,Introduces two tiers of pricey canisters that increase your health when carried. +text.gm4.guidebook.heart_canisters.description,Heart Canisters can be used to increase health. Up to 20 additional hearts can be obtained.\n\nThey can be crafted in a Custom Crafter using golden apples and a powerful core. +text.gm4.guidebook.heart_canisters.crafting_tier_1,The recipes for a heart canister is as follows: +text.gm4.guidebook.heart_canisters.usage_tier_1,Tier 2 heart canisters require five tier 1 canisters also in the inventory to function. +text.gm4.guidebook.heart_canisters.stacking,Heart canisters of the same type must be in the same inventory slot to provide the proper amount of health.\n\nOnly up to five of each heart canister tier will give extra health. diff --git a/gm4_heart_canisters/beet.yaml b/gm4_heart_canisters/beet.yaml index 935950638d..aa36bbf437 100644 --- a/gm4_heart_canisters/beet.yaml +++ b/gm4_heart_canisters/beet.yaml @@ -5,6 +5,9 @@ version: 1.5.X data_pack: load: . +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module - gm4.plugins.include.lib_player_heads @@ -17,6 +20,24 @@ meta: lib_custom_crafters: 3.0.0 lib_player_heads: 1.1.0 schedule_loops: [main] + model_data: + - item: player_head + template: generated + broadcast: + - reference: item/heart_canister_tier_1 + - reference: item/heart_canister_tier_2 + - item: player_head + reference: gui/advancement/heart_canisters_tier_1 + template: + name: advancement + forward: item/heart_canister_tier_1 + - item: player_head + template: + name: advancement + forward: item/heart_canister_tier_2 + broadcast: + - reference: gui/advancement/heart_canisters_tier_2 + - reference: gui/advancement/heart_canisters_max website: description: Introduces two tiers of pricey canisters that increase your health when carried. recommended: diff --git a/gm4_heart_canisters/data/gm4/advancements/heart_canisters_max.json b/gm4_heart_canisters/data/gm4/advancements/heart_canisters_max.json index 53d84e9064..dd93e69652 100644 --- a/gm4_heart_canisters/data/gm4/advancements/heart_canisters_max.json +++ b/gm4_heart_canisters/data/gm4/advancements/heart_canisters_max.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "player_head", - "nbt": "{CustomModelData:3420006,SkullOwner:'$heart_canister_tier_2'}" + "nbt": "{CustomModelData:'gui/advancement/heart_canisters_max',SkullOwner:'$heart_canister_tier_2'}" }, "frame": "goal", "title": { diff --git a/gm4_heart_canisters/data/gm4/advancements/heart_canisters_tier_1.json b/gm4_heart_canisters/data/gm4/advancements/heart_canisters_tier_1.json index 2fcbdb567f..5b7361663b 100644 --- a/gm4_heart_canisters/data/gm4/advancements/heart_canisters_tier_1.json +++ b/gm4_heart_canisters/data/gm4/advancements/heart_canisters_tier_1.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "player_head", - "nbt": "{CustomModelData:3420004,SkullOwner:'$heart_canister_tier_1'}" + "nbt": "{CustomModelData:'gui/advancement/heart_canisters_tier_1',SkullOwner:'$heart_canister_tier_1'}" }, "title": { "translate": "advancement.gm4.heart_canisters.tier_1.title", diff --git a/gm4_heart_canisters/data/gm4/advancements/heart_canisters_tier_2.json b/gm4_heart_canisters/data/gm4/advancements/heart_canisters_tier_2.json index 221ad07a82..7d865af4ce 100644 --- a/gm4_heart_canisters/data/gm4/advancements/heart_canisters_tier_2.json +++ b/gm4_heart_canisters/data/gm4/advancements/heart_canisters_tier_2.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "player_head", - "nbt": "{CustomModelData:3420005,SkullOwner:'$heart_canister_tier_2'}" + "nbt": "{CustomModelData:'gui/advancement/heart_canisters_tier_2',SkullOwner:'$heart_canister_tier_2'}" }, "title": { "translate": "advancement.gm4.heart_canisters.tier_2.title", diff --git a/gm4_heart_canisters/data/gm4_heart_canisters/functions/init.mcfunction b/gm4_heart_canisters/data/gm4_heart_canisters/functions/init.mcfunction index ac6bfcf212..7be3e06b00 100644 --- a/gm4_heart_canisters/data/gm4_heart_canisters/functions/init.mcfunction +++ b/gm4_heart_canisters/data/gm4_heart_canisters/functions/init.mcfunction @@ -2,11 +2,11 @@ scoreboard objectives add gm4_heart_can dummy # register skulls # old texture (to be removed in 2022) -execute unless data storage gm4_player_heads:register heads[{id:"gm4_heart_canisters:heart_canister/tier_1/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_heart_canisters:heart_canister/tier_1/v0",value:'eyJ0aW1lc3RhbXAiOjE0MjkzNDc5MDU4NzMsInByb2ZpbGVJZCI6IjYzY2JkZjhkNDg4OTQ3NWY5NDQxMjk3ZTRhM2Q1NjczIiwicHJvZmlsZU5hbWUiOiJWZWxlVCIsImlzUHVibGljIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTNjZjA2ZDViNDdiNzQ2ZDE2ZWU2MzExODdjYjg1N2Q4YzE2YmZjZDU3MGE0MGYyODZiMmMzODg2N2NmZGEifX19',item:{CustomModelData:3420007,gm4_heart_canister:1b,gm4_heart_canister_tier:1b,display:{Lore:['{"translate":"item.gm4.heart_canister.lore.tier","fallback":"Tier %s","with":["1"],"italic":false}'],Name:'{"translate":"item.gm4.heart_canister","fallback":"Heart Canister","italic":false}'}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_heart_canisters:heart_canister/tier_2/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_heart_canisters:heart_canister/tier_2/v0",value:'eyJ0aW1lc3RhbXAiOjE0MjkzNDc5OTc3ODcsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzQ1NWQ5YmY4NWFjNTY1YjM1ZTFmYTE5MjQ3Y2E2NTQxZGMyZTMzNGJlYzExNWNiNDQ5ZWZiZThlOWI4MTAyMiJ9fX0=',item:{CustomModelData:3420008,gm4_heart_canister:1b,gm4_heart_canister_tier:2b,display:{Lore:['{"translate":"item.gm4.heart_canister.lore.tier","fallback":"Tier %s","with":["2"],"italic":false}'],Name:'{"translate":"item.gm4.heart_canister","fallback":"Heart Canister","italic":false}'}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_heart_canisters:heart_canister/tier_1/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_heart_canisters:heart_canister/tier_1/v0",value:'eyJ0aW1lc3RhbXAiOjE0MjkzNDc5MDU4NzMsInByb2ZpbGVJZCI6IjYzY2JkZjhkNDg4OTQ3NWY5NDQxMjk3ZTRhM2Q1NjczIiwicHJvZmlsZU5hbWUiOiJWZWxlVCIsImlzUHVibGljIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTNjZjA2ZDViNDdiNzQ2ZDE2ZWU2MzExODdjYjg1N2Q4YzE2YmZjZDU3MGE0MGYyODZiMmMzODg2N2NmZGEifX19',item:{CustomModelData:"item/heart_canister_tier_1",gm4_heart_canister:1b,gm4_heart_canister_tier:1b,display:{Lore:['{"translate":"item.gm4.heart_canister.lore.tier","fallback":"Tier %s","with":["1"],"italic":false}'],Name:'{"translate":"item.gm4.heart_canister","fallback":"Heart Canister","italic":false}'}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_heart_canisters:heart_canister/tier_2/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_heart_canisters:heart_canister/tier_2/v0",value:'eyJ0aW1lc3RhbXAiOjE0MjkzNDc5OTc3ODcsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzQ1NWQ5YmY4NWFjNTY1YjM1ZTFmYTE5MjQ3Y2E2NTQxZGMyZTMzNGJlYzExNWNiNDQ5ZWZiZThlOWI4MTAyMiJ9fX0=',item:{CustomModelData:"item/heart_canister_tier_2",gm4_heart_canister:1b,gm4_heart_canister_tier:2b,display:{Lore:['{"translate":"item.gm4.heart_canister.lore.tier","fallback":"Tier %s","with":["2"],"italic":false}'],Name:'{"translate":"item.gm4.heart_canister","fallback":"Heart Canister","italic":false}'}}} # new texture -execute unless data storage gm4_player_heads:register heads[{id:"gm4_heart_canisters:heart_canister/tier_1/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_heart_canisters:heart_canister/tier_1/v1",value:'$heart_canister_tier_1',item:{CustomModelData:3420007,gm4_heart_canister:1b,gm4_heart_canister_tier:1b,display:{Lore:['{"translate":"item.gm4.heart_canister.lore.tier","fallback":"Tier %s","with":["1"],"italic":false,"color":"gray"}'],Name:'{"translate":"item.gm4.heart_canister","fallback":"Heart Canister","italic":false}'}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_heart_canisters:heart_canister/tier_2/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_heart_canisters:heart_canister/tier_2/v1",value:'$heart_canister_tier_2',item:{CustomModelData:3420008,gm4_heart_canister:1b,gm4_heart_canister_tier:2b,display:{Lore:['{"translate":"item.gm4.heart_canister.lore.tier","fallback":"Tier %s","with":["2"],"italic":false,"color":"gray"}'],Name:'{"translate":"item.gm4.heart_canister","fallback":"Heart Canister","italic":false}'}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_heart_canisters:heart_canister/tier_1/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_heart_canisters:heart_canister/tier_1/v1",value:'$heart_canister_tier_1',item:{CustomModelData:"item/heart_canister_tier_1",gm4_heart_canister:1b,gm4_heart_canister_tier:1b,display:{Lore:['{"translate":"item.gm4.heart_canister.lore.tier","fallback":"Tier %s","with":["1"],"italic":false,"color":"gray"}'],Name:'{"translate":"item.gm4.heart_canister","fallback":"Heart Canister","italic":false}'}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_heart_canisters:heart_canister/tier_2/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_heart_canisters:heart_canister/tier_2/v1",value:'$heart_canister_tier_2',item:{CustomModelData:"item/heart_canister_tier_2",gm4_heart_canister:1b,gm4_heart_canister_tier:2b,display:{Lore:['{"translate":"item.gm4.heart_canister.lore.tier","fallback":"Tier %s","with":["2"],"italic":false,"color":"gray"}'],Name:'{"translate":"item.gm4.heart_canister","fallback":"Heart Canister","italic":false}'}}} execute unless score heart_canisters gm4_modules matches 1 run data modify storage gm4:log queue append value {type:"install",module:"Heart Canisters"} execute unless score heart_canisters gm4_earliest_version < heart_canisters gm4_modules run scoreboard players operation heart_canisters gm4_earliest_version = heart_canisters gm4_modules diff --git a/gm4_heart_canisters/data/gm4_heart_canisters/guidebook/heart_canisters.json b/gm4_heart_canisters/data/gm4_heart_canisters/guidebook/heart_canisters.json index f1a49658e5..3f81350ebe 100644 --- a/gm4_heart_canisters/data/gm4_heart_canisters/guidebook/heart_canisters.json +++ b/gm4_heart_canisters/data/gm4_heart_canisters/guidebook/heart_canisters.json @@ -4,7 +4,7 @@ "module_type": "module", "icon": { "item": "minecraft:player_head", - "nbt": "{CustomModelData:3420060,SkullOwner:'$heart_canister_tier_1'}" + "nbt": "{SkullOwner:'$heart_canister_tier_1'}" }, "criteria": { "obtain_nether_star": { diff --git a/gm4_heart_canisters/data/gm4_heart_canisters/loot_tables/items/tier_1_heart_canister.json b/gm4_heart_canisters/data/gm4_heart_canisters/loot_tables/items/tier_1_heart_canister.json index c0a9a47794..7d04697c00 100644 --- a/gm4_heart_canisters/data/gm4_heart_canisters/loot_tables/items/tier_1_heart_canister.json +++ b/gm4_heart_canisters/data/gm4_heart_canisters/loot_tables/items/tier_1_heart_canister.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420007,gm4_heart_canister:1b,gm4_heart_canister_tier:1b,SkullOwner:'$heart_canister_tier_1'}" + "tag": "{CustomModelData:'item/heart_canister_tier_1',gm4_heart_canister:1b,gm4_heart_canister_tier:1b,SkullOwner:'$heart_canister_tier_1'}" }, { "function": "minecraft:set_name", diff --git a/gm4_heart_canisters/data/gm4_heart_canisters/loot_tables/items/tier_2_heart_canister.json b/gm4_heart_canisters/data/gm4_heart_canisters/loot_tables/items/tier_2_heart_canister.json index a73f1e7da4..a1564c6f5e 100644 --- a/gm4_heart_canisters/data/gm4_heart_canisters/loot_tables/items/tier_2_heart_canister.json +++ b/gm4_heart_canisters/data/gm4_heart_canisters/loot_tables/items/tier_2_heart_canister.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420008,gm4_heart_canister:1b,gm4_heart_canister_tier:2b,SkullOwner:'$heart_canister_tier_2'}" + "tag": "{CustomModelData:'item/heart_canister_tier_2',gm4_heart_canister:1b,gm4_heart_canister_tier:2b,SkullOwner:'$heart_canister_tier_2'}" }, { "function": "minecraft:set_name", diff --git a/gm4_holographic_tags/assets/translations.csv b/gm4_holographic_tags/assets/translations.csv new file mode 100644 index 0000000000..ddde3e876a --- /dev/null +++ b/gm4_holographic_tags/assets/translations.csv @@ -0,0 +1,6 @@ +key,en_us +advancement.gm4.holographic_tags.title,Holo-riffic! +advancement.gm4.holographic_tags.description,Create a Hologram +text.gm4.guidebook.module_desc.holographic_tags,Set up floating messages with a simple name tag! +text.gm4.guidebook.holographic_tags.description,"Putting a renamed name tag in an item frame will create floating textbox.\n\nTo remove the hologram, place an item frame in the original position." +text.gm4.guidebook.holographic_tags.colors,Placing the item frame on a wool block will color the hologram. diff --git a/gm4_holographic_tags/beet.yaml b/gm4_holographic_tags/beet.yaml index 47062d6711..492098cd0a 100644 --- a/gm4_holographic_tags/beet.yaml +++ b/gm4_holographic_tags/beet.yaml @@ -12,6 +12,10 @@ meta: gm4: versioning: schedule_loops: [main] + model_data: + - item: name_tag + reference: gui/advancement/holographic_tags + template: advancement website: description: Set up floating messages with a simple name tag! recommended: [] diff --git a/gm4_holographic_tags/data/gm4/advancements/holographic_tags.json b/gm4_holographic_tags/data/gm4/advancements/holographic_tags.json index 6bbacd82a5..40b48d2018 100644 --- a/gm4_holographic_tags/data/gm4/advancements/holographic_tags.json +++ b/gm4_holographic_tags/data/gm4/advancements/holographic_tags.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "name_tag", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/holographic_tags'}" }, "title": { "translate": "advancement.gm4.holographic_tags.title", diff --git a/gm4_holographic_tags/data/gm4_holographic_tags/guidebook/holographic_tags.json b/gm4_holographic_tags/data/gm4_holographic_tags/guidebook/holographic_tags.json index e4870edbde..3642aea847 100644 --- a/gm4_holographic_tags/data/gm4_holographic_tags/guidebook/holographic_tags.json +++ b/gm4_holographic_tags/data/gm4_holographic_tags/guidebook/holographic_tags.json @@ -3,8 +3,7 @@ "name": "Holographic Tags", "module_type": "module", "icon": { - "item": "minecraft:name_tag", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:name_tag" }, "criteria": { "obtain_name_tag": { diff --git a/gm4_iacio_shamir/beet.yaml b/gm4_iacio_shamir/beet.yaml index 2f4aa2b72a..e5f68c17d6 100644 --- a/gm4_iacio_shamir/beet.yaml +++ b/gm4_iacio_shamir/beet.yaml @@ -5,7 +5,11 @@ version: 1.2.X data_pack: load: . +resource_pack: + load: ../gm4_metallurgy + pipeline: + - gm4_metallurgy.shamir_model_template - gm4.plugins.extend.module meta: @@ -13,6 +17,13 @@ meta: versioning: required: gm4_metallurgy: 1.2.0 + model_data: + - item: chestplates + reference: shamir/iacio + template: + name: shamir + metal: barium + textures_path: gm4_metallurgy:item/shamir/barium website: description: Adds the 'Iacio' shamir to Metallurgy. It lets you throw things further! Launch an Ender Pearl into orbit or simply throw your Trident exceptionally far. recommended: [] diff --git a/gm4_iacio_shamir/data/gm4_iacio_shamir/functions/init.mcfunction b/gm4_iacio_shamir/data/gm4_iacio_shamir/functions/init.mcfunction index 429951f61f..3e1abdd272 100644 --- a/gm4_iacio_shamir/data/gm4_iacio_shamir/functions/init.mcfunction +++ b/gm4_iacio_shamir/data/gm4_iacio_shamir/functions/init.mcfunction @@ -14,7 +14,7 @@ scoreboard players set iacio_shamir gm4_modules 1 data remove storage gm4_player_heads:register heads[{id:"gm4_iacio_shamir:band/v0"}] # register shamir with lib_player_heads -execute unless data storage gm4_player_heads:register heads[{id:"gm4_iacio_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_iacio_shamir:band/v1",name:"[Drop to Fix Item] gm4_iacio_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"iacio",metal:{type:"barium",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/barium",CustomModelData:3420122,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#F0EAD6","translate":"item.gm4.metallurgy.band","fallback":"Barium Band","with":[{"translate":"item.gm4.metallurgy.barium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.iacio","fallback":"Iacio"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_iacio_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_iacio_shamir:band/v1",name:"[Drop to Fix Item] gm4_iacio_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"iacio",metal:{type:"barium",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/barium",CustomModelData:"shamir/iacio",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#F0EAD6","translate":"item.gm4.metallurgy.band","fallback":"Barium Band","with":[{"translate":"item.gm4.metallurgy.barium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.iacio","fallback":"Iacio"}']}}} diff --git a/gm4_iacio_shamir/data/gm4_iacio_shamir/guidebook/iacio_shamir.json b/gm4_iacio_shamir/data/gm4_iacio_shamir/guidebook/iacio_shamir.json index 547cc91001..35c6f37f10 100644 --- a/gm4_iacio_shamir/data/gm4_iacio_shamir/guidebook/iacio_shamir.json +++ b/gm4_iacio_shamir/data/gm4_iacio_shamir/guidebook/iacio_shamir.json @@ -4,8 +4,7 @@ "module_type": "expansion", "base_module": "metallurgy", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420122}" + "item": "minecraft:anvil" }, "criteria": { "obtain_iacio_shamir": { diff --git a/gm4_iacio_shamir/data/gm4_iacio_shamir/loot_tables/band.json b/gm4_iacio_shamir/data/gm4_iacio_shamir/loot_tables/band.json index 7244b24803..b9f7187b77 100644 --- a/gm4_iacio_shamir/data/gm4_iacio_shamir/loot_tables/band.json +++ b/gm4_iacio_shamir/data/gm4_iacio_shamir/loot_tables/band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420122,SkullOwner:{Name:\"[Drop to Fix Item] gm4_iacio_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"iacio\"}}" + "tag": "{CustomModelData:'shamir/iacio',SkullOwner:{Name:\"[Drop to Fix Item] gm4_iacio_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"iacio\"}}" }, { "function": "minecraft:set_lore", diff --git a/gm4_iacio_shamir/translations.csv b/gm4_iacio_shamir/translations.csv new file mode 100644 index 0000000000..44ca455eb0 --- /dev/null +++ b/gm4_iacio_shamir/translations.csv @@ -0,0 +1,5 @@ +key,en_us +item.gm4.shamir.iacio,Iacio +text.gm4.guidebook.module_desc.iacio_shamir,Adds the 'Iacio' shamir to Metallurgy. It lets you throw things further! Launch an Ender Pearl into orbit or simply throw your Trident exceptionally far. +text.gm4.guidebook.iacio_shamir.description,Iacio strengthens the throw of projectiles and items. +text.gm4.guidebook.iacio_shamir.usage,"The Iacio Shamir is found on Barium Bands. It can be placed onto chestplates.\n\nItems, Tridents, Ender Pearls, Splash and Lingering Potions, Snowballs, and Eggs will fly farther when thrown." diff --git a/gm4_ink_spitting_squid/beet.yaml b/gm4_ink_spitting_squid/beet.yaml index 3bda3720a6..b103318731 100644 --- a/gm4_ink_spitting_squid/beet.yaml +++ b/gm4_ink_spitting_squid/beet.yaml @@ -12,6 +12,13 @@ meta: gm4: versioning: schedule_loops: [main] + model_data: + - item: ink_sac + reference: gui/advancement/ink_spitting_squid + template: advancement + - item: glow_ink_sac + reference: gui/advancement/glow_ink_spitting_squid + template: advancement website: description: Improves the vanilla ink effect by adding Blindness. Glow Squid will give Night Vision when disturbed, which might come in handy if you're out of torches! recommended: [] diff --git a/gm4_ink_spitting_squid/data/gm4/advancements/glow_ink_spitting_squid.json b/gm4_ink_spitting_squid/data/gm4/advancements/glow_ink_spitting_squid.json index 5d74bb315a..6d724e6c04 100644 --- a/gm4_ink_spitting_squid/data/gm4/advancements/glow_ink_spitting_squid.json +++ b/gm4_ink_spitting_squid/data/gm4/advancements/glow_ink_spitting_squid.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:glow_ink_sac", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/glow_ink_spitting_squid'}" }, "title": { "translate": "advancement.gm4.glow_ink_spitting_squid.title", diff --git a/gm4_ink_spitting_squid/data/gm4/advancements/ink_spitting_squid.json b/gm4_ink_spitting_squid/data/gm4/advancements/ink_spitting_squid.json index 9ffffd846c..0058f04ebe 100644 --- a/gm4_ink_spitting_squid/data/gm4/advancements/ink_spitting_squid.json +++ b/gm4_ink_spitting_squid/data/gm4/advancements/ink_spitting_squid.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:ink_sac", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/ink_spitting_squid'}" }, "title": { "translate": "advancement.gm4.ink_spitting_squid.title", diff --git a/gm4_ink_spitting_squid/data/gm4_ink_spitting_squid/guidebook/ink_spitting_squid.json b/gm4_ink_spitting_squid/data/gm4_ink_spitting_squid/guidebook/ink_spitting_squid.json index 1040f2a92c..e6a7ee8511 100644 --- a/gm4_ink_spitting_squid/data/gm4_ink_spitting_squid/guidebook/ink_spitting_squid.json +++ b/gm4_ink_spitting_squid/data/gm4_ink_spitting_squid/guidebook/ink_spitting_squid.json @@ -3,8 +3,7 @@ "name": "Ink Spitting Squid", "module_type": "module", "icon": { - "item": "minecraft:ink_sac", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:ink_sac" }, "criteria": { "inked": { diff --git a/gm4_ink_spitting_squid/translations.csv b/gm4_ink_spitting_squid/translations.csv new file mode 100644 index 0000000000..746db0725b --- /dev/null +++ b/gm4_ink_spitting_squid/translations.csv @@ -0,0 +1,8 @@ +key,en_us +advancement.gm4.ink_spitting_squid.title,Natural Defenses +advancement.gm4.ink_spitting_squid.description,Get blinded by an underwater squid +advancement.gm4.glow_ink_spitting_squid.title,"The Light, It Burns!" +advancement.gm4.glow_ink_spitting_squid.description,Glow due to an underwater glow squid +text.gm4.guidebook.module_desc.ink_spitting_squid,"Improves the vanilla ink effect by adding Blindness. Glow Squid will give Night Vision when disturbed, which might come in handy if you're out of torches!" +text.gm4.guidebook.ink_spitting_squid.normal_squid,"Swimming underwater near a squid will cause it to ink the diver.\n\nWhen affected by squid ink, blindness and nausea effects occur." +text.gm4.guidebook.ink_spitting_squid.glow_squid,"When glow squids ink, they have the opposite effect from squids.\n\nThose inked with glow ink are affected by night vision and glowing." diff --git a/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/lightning_in_a_bottle.png b/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/lightning_in_a_bottle.png new file mode 100644 index 0000000000..8ceb7c901f Binary files /dev/null and b/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/lightning_in_a_bottle.png differ diff --git a/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/lightning_in_a_bottle_overlay.png b/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/lightning_in_a_bottle_overlay.png new file mode 100644 index 0000000000..5d5be66397 Binary files /dev/null and b/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/lightning_in_a_bottle_overlay.png differ diff --git a/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/lightning_in_a_bottle_overlay.png.mcmeta b/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/lightning_in_a_bottle_overlay.png.mcmeta new file mode 100644 index 0000000000..c783175afd --- /dev/null +++ b/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/lightning_in_a_bottle_overlay.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "frametime": 2, + "interpolate": false + } +} diff --git a/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/lingering_lightning_in_a_bottle.png b/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/lingering_lightning_in_a_bottle.png new file mode 100644 index 0000000000..8ceb7c901f Binary files /dev/null and b/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/lingering_lightning_in_a_bottle.png differ diff --git a/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/lingering_lightning_in_a_bottle_overlay.png b/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/lingering_lightning_in_a_bottle_overlay.png new file mode 100644 index 0000000000..fabda302db Binary files /dev/null and b/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/lingering_lightning_in_a_bottle_overlay.png differ diff --git a/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/lingering_lightning_in_a_bottle_overlay.png.mcmeta b/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/lingering_lightning_in_a_bottle_overlay.png.mcmeta new file mode 100644 index 0000000000..c783175afd --- /dev/null +++ b/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/lingering_lightning_in_a_bottle_overlay.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "frametime": 2, + "interpolate": false + } +} diff --git a/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/splash_lightning_in_a_bottle.png b/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/splash_lightning_in_a_bottle.png new file mode 100644 index 0000000000..8ceb7c901f Binary files /dev/null and b/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/splash_lightning_in_a_bottle.png differ diff --git a/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/splash_lightning_in_a_bottle_overlay.png b/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/splash_lightning_in_a_bottle_overlay.png new file mode 100644 index 0000000000..08d7d869ec Binary files /dev/null and b/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/splash_lightning_in_a_bottle_overlay.png differ diff --git a/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/splash_lightning_in_a_bottle_overlay.png.mcmeta b/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/splash_lightning_in_a_bottle_overlay.png.mcmeta new file mode 100644 index 0000000000..c783175afd --- /dev/null +++ b/gm4_lightning_in_a_bottle/assets/gm4_lightning_in_a_bottle/textures/item/splash_lightning_in_a_bottle_overlay.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "frametime": 2, + "interpolate": false + } +} diff --git a/gm4_lightning_in_a_bottle/assets/translations.csv b/gm4_lightning_in_a_bottle/assets/translations.csv new file mode 100644 index 0000000000..82e721b98d --- /dev/null +++ b/gm4_lightning_in_a_bottle/assets/translations.csv @@ -0,0 +1,15 @@ +key,en_us +advancement.gm4.lightning_in_a_bottle.lightning_drink.description,Drink a Bottle of Lightning +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 +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 +item.gm4.splash_bottle.effect.lightning,Splash Bottle of Lightning +text.gm4.guidebook.module_desc.lightning_in_a_bottle,"Bottle and harness the power of lightning using Brewing Stands! Lightning in a Bottle comes in splash and lingering variants, too." +text.gm4.guidebook.lightning_in_a_bottle.description,"Lightning can be absorbed into a thick potion when struck by lightning.\n\nPillagers, evokers, purpur, and prismarine can amplify or animate into new mobs when struck by lightning." +text.gm4.guidebook.lightning_in_a_bottle.conversions,Pillagers can be amplified into Evokers.\nEvokers can be amplified into Illusioners.\n\nPurpur Blocks can be animated into Shulkers.\nPrismarine Bricks can be animated into Guardians. +text.gm4.guidebook.lightning_in_a_bottle.obtaining,"To harness lightning, place a lightning rod attached to the top or bottom of a brewing stand.\n\nWhen the rod is struck, any thick potions inside the brewing stand will be converted into bottles of lightning." +text.gm4.guidebook.lightning_in_a_bottle.usage,"Splash and Lingering variants can be brewed as normal.\n\nWhen a bottle of lightning is drank or thrown, it will release a bolt of lightning!" diff --git a/gm4_lightning_in_a_bottle/beet.yaml b/gm4_lightning_in_a_bottle/beet.yaml index d7a0453d8d..9d7b686a49 100644 --- a/gm4_lightning_in_a_bottle/beet.yaml +++ b/gm4_lightning_in_a_bottle/beet.yaml @@ -5,6 +5,9 @@ version: 1.5.X data_pack: load: . +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module - gm4.plugins.include.lib_brewing @@ -19,6 +22,23 @@ meta: schedule_loops: - main - brewing_stand/texture_connector/process + model_data: + - template: generated_overlay + broadcast: + - item: potion + reference: item/lightning_in_a_bottle + - item: lingering_potion + reference: item/lingering_lightning_in_a_bottle + - item: splash_potion + reference: item/splash_lightning_in_a_bottle + - item: potion + reference: gui/advancement/lightning_in_a_bottle_drink + template: + name: advancement + forward: item/lightning_in_a_bottle + - item: purpur_block + reference: gui/advancement/lightning_in_a_bottle_shulker + template: advancement website: description: Bottle and harness the power of lightning using Brewing Stands! Lightning in a Bottle comes in splash and lingering variants, too. recommended: diff --git a/gm4_lightning_in_a_bottle/data/gm4/advancements/lightning_in_a_bottle_drink.json b/gm4_lightning_in_a_bottle/data/gm4/advancements/lightning_in_a_bottle_drink.json index dc25037ebe..34cf25da3e 100644 --- a/gm4_lightning_in_a_bottle/data/gm4/advancements/lightning_in_a_bottle_drink.json +++ b/gm4_lightning_in_a_bottle/data/gm4/advancements/lightning_in_a_bottle_drink.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:potion", - "nbt": "{CustomModelData:3420003,CustomPotionColor:11985402,Enchantments:[{id:\"protection\",lvl:0}]}" + "nbt": "{CustomModelData:'gui/advancement/lightning_in_a_bottle_drink',CustomPotionColor:11985402,Enchantments:[{id:\"protection\",lvl:0}]}" }, "title": { "translate": "advancement.gm4.lightning_in_a_bottle.lightning_drink.title", diff --git a/gm4_lightning_in_a_bottle/data/gm4/advancements/lightning_in_a_bottle_shulker.json b/gm4_lightning_in_a_bottle/data/gm4/advancements/lightning_in_a_bottle_shulker.json index f8a9cb5e7b..7d1e760329 100644 --- a/gm4_lightning_in_a_bottle/data/gm4/advancements/lightning_in_a_bottle_shulker.json +++ b/gm4_lightning_in_a_bottle/data/gm4/advancements/lightning_in_a_bottle_shulker.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:purpur_block", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/lightning_in_a_bottle_shulker'}" }, "title": { "translate": "advancement.gm4.lightning_in_a_bottle.lightning_shulker.title", diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/guidebook/lightning_in_a_bottle.json b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/guidebook/lightning_in_a_bottle.json index b17f691552..531f34f53c 100644 --- a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/guidebook/lightning_in_a_bottle.json +++ b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/guidebook/lightning_in_a_bottle.json @@ -3,8 +3,7 @@ "name": "Lightning in a Bottle", "module_type": "module", "icon": { - "item": "minecraft:lightning_rod", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:lightning_rod" }, "criteria": { "lightning_strike": { diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/loot_tables/items/bottle_of_lightning.json b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/loot_tables/items/bottle_of_lightning.json index 582c7e4065..4d60a4f70f 100644 --- a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/loot_tables/items/bottle_of_lightning.json +++ b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/loot_tables/items/bottle_of_lightning.json @@ -37,7 +37,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{Potion:\"gm4:lightning\",gm4_lightning_in_a_bottle:1b,CustomModelData:3420004,HideFlags:33,Enchantments:[{id:\"minecraft:protection\",lvl:0s}],CustomPotionColor:11985402}" + "tag": "{Potion:\"gm4:lightning\",gm4_lightning_in_a_bottle:1b,CustomModelData:'item/lightning_in_a_bottle',HideFlags:33,Enchantments:[{id:\"minecraft:protection\",lvl:0s}],CustomPotionColor:11985402}" } ] } diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/loot_tables/items/lingering_bottle_of_lightning.json b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/loot_tables/items/lingering_bottle_of_lightning.json index df4c520a1a..5d7fdd188d 100644 --- a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/loot_tables/items/lingering_bottle_of_lightning.json +++ b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/loot_tables/items/lingering_bottle_of_lightning.json @@ -37,7 +37,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{Potion:\"gm4:lightning\",gm4_lightning_in_a_bottle:1b,CustomModelData:3420004,HideFlags:33,Enchantments:[{id:\"minecraft:protection\",lvl:0s}],CustomPotionEffects:[{Id:16,Amplifier:12b,Duration:1}],CustomPotionColor:11985402,Particle:\"electric_spark\",RadiusOnUse:0f}" + "tag": "{Potion:\"gm4:lightning\",gm4_lightning_in_a_bottle:1b,CustomModelData:'item/lingering_lightning_in_a_bottle',HideFlags:33,Enchantments:[{id:\"minecraft:protection\",lvl:0s}],CustomPotionEffects:[{Id:16,Amplifier:12b,Duration:1}],CustomPotionColor:11985402,Particle:\"electric_spark\",RadiusOnUse:0f}" } ] } diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/loot_tables/items/splash_bottle_of_lightning.json b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/loot_tables/items/splash_bottle_of_lightning.json index e7b2c7dec2..33ecace936 100644 --- a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/loot_tables/items/splash_bottle_of_lightning.json +++ b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/loot_tables/items/splash_bottle_of_lightning.json @@ -37,7 +37,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{Potion:\"gm4:lightning\",gm4_lightning_in_a_bottle:1b,CustomModelData:3420004,HideFlags:33,Enchantments:[{id:\"minecraft:protection\",lvl:0s}],CustomPotionColor:11985402}" + "tag": "{Potion:\"gm4:lightning\",gm4_lightning_in_a_bottle:1b,CustomModelData:'item/splash_lightning_in_a_bottle',HideFlags:33,Enchantments:[{id:\"minecraft:protection\",lvl:0s}],CustomPotionColor:11985402}" } ] } diff --git a/gm4_lightning_in_a_bottle/overlay_18/data/gm4_lightning_in_a_bottle/loot_tables/items/lingering_bottle_of_lightning.json b/gm4_lightning_in_a_bottle/overlay_18/data/gm4_lightning_in_a_bottle/loot_tables/items/lingering_bottle_of_lightning.json index 8f1a9e368e..516fc1ef9e 100644 --- a/gm4_lightning_in_a_bottle/overlay_18/data/gm4_lightning_in_a_bottle/loot_tables/items/lingering_bottle_of_lightning.json +++ b/gm4_lightning_in_a_bottle/overlay_18/data/gm4_lightning_in_a_bottle/loot_tables/items/lingering_bottle_of_lightning.json @@ -37,7 +37,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{Potion:\"gm4:lightning\",gm4_lightning_in_a_bottle:1b,CustomModelData:3420004,HideFlags:33,Enchantments:[{id:\"minecraft:protection\",lvl:0s}],custom_potion_effects:[{id:'minecraft:night_vision',amplifier:12b,duration:1}],CustomPotionColor:11985402,Particle:\"electric_spark\",RadiusOnUse:0f}" + "tag": "{Potion:\"gm4:lightning\",gm4_lightning_in_a_bottle:1b,CustomModelData:'item/lingering_lightning_in_a_bottle',HideFlags:33,Enchantments:[{id:\"minecraft:protection\",lvl:0s}],custom_potion_effects:[{id:'minecraft:night_vision',amplifier:12b,duration:1}],CustomPotionColor:11985402,Particle:\"electric_spark\",RadiusOnUse:0f}" } ] } diff --git a/gm4_liquid_minecarts/assets/gm4_liquid_minecarts/textures/item/liquid_minecart.png b/gm4_liquid_minecarts/assets/gm4_liquid_minecarts/textures/item/liquid_minecart.png new file mode 100644 index 0000000000..deaacfde2c Binary files /dev/null and b/gm4_liquid_minecarts/assets/gm4_liquid_minecarts/textures/item/liquid_minecart.png differ diff --git a/gm4_liquid_minecarts/assets/translations.csv b/gm4_liquid_minecarts/assets/translations.csv new file mode 100644 index 0000000000..a47dfc9247 --- /dev/null +++ b/gm4_liquid_minecarts/assets/translations.csv @@ -0,0 +1,9 @@ +key,en_us +item.gm4.liquid_minecart,Minecart with Liquid Tank +text.gm4.liquid_minecarts.level_report,% Full +advancement.gm4.liquid_minecarts.title,Liquid Locomotive +advancement.gm4.liquid_minecarts.description,Put a liquid tank on wheels +text.gm4.guidebook.module_desc.liquid_minecarts,Adds Liquid Tank Minecarts that allow you to move your liquids from one Liquid Tank to another. +text.gm4.guidebook.liquid_minecarts.crafting,Combining a liquid tank and a minecart in a Custom Crafter will craft a liquid minecart.\n\nLiquid minecarts can be used to move liquids from one tank to another. +text.gm4.guidebook.liquid_minecarts.usage,"Unlike liquid tanks, liquid minecarts cannot interact with any entities or blocks in the world.\n\nLiquid minecarts can be filled by a tank pointing into the minecart and can be drained by driving one over a tank." +text.gm4.guidebook.liquid_minecarts.usage_1,"Similar to a tank, if a liquid minecart already has liquid in it, it will only accept the contents of tanks with the same liquid.\n\nDriving a liquid minecart over an activator rail will discard any liquid inside." diff --git a/gm4_liquid_minecarts/beet.yaml b/gm4_liquid_minecarts/beet.yaml index 8d7f0fdf3f..1c1bbbcca5 100644 --- a/gm4_liquid_minecarts/beet.yaml +++ b/gm4_liquid_minecarts/beet.yaml @@ -10,6 +10,9 @@ data_pack: max_inclusive: 26 directory: overlay_26 +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module - gm4.plugins.include.lib_machines @@ -21,6 +24,15 @@ meta: gm4_liquid_tanks: 2.1.0 lib_machines: 1.1.0 schedule_loops: [main] + model_data: + - item: hopper_minecart + reference: item/liquid_minecart + template: generated + - item: hopper_minecart + reference: gui/advancement/liquid_minecarts_create + template: + name: advancement + forward: item/liquid_minecart website: description: Adds Liquid Tank Minecarts that allow you to move your liquids from one Liquid Tank to another. recommended: diff --git a/gm4_liquid_minecarts/data/gm4/advancements/liquid_minecarts_create.json b/gm4_liquid_minecarts/data/gm4/advancements/liquid_minecarts_create.json index 289225ccdf..d346992035 100644 --- a/gm4_liquid_minecarts/data/gm4/advancements/liquid_minecarts_create.json +++ b/gm4_liquid_minecarts/data/gm4/advancements/liquid_minecarts_create.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "hopper_minecart", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/liquid_minecarts_create'}" }, "title": { "translate": "advancement.gm4.liquid_minecarts.title", diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/guidebook/liquid_minecarts.json b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/guidebook/liquid_minecarts.json index 52f3a7cac1..2d9cbc82eb 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/guidebook/liquid_minecarts.json +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/guidebook/liquid_minecarts.json @@ -4,8 +4,7 @@ "module_type": "expansion", "base_module": "liquid_tanks", "icon": { - "item": "minecraft:hopper_minecart", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:hopper_minecart" }, "criteria": { "obtain_liquid_tank": { diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/loot_tables/items/liquid_minecart.json b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/loot_tables/items/liquid_minecart.json index de17f11420..f1e0c12d84 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/loot_tables/items/liquid_minecart.json +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/loot_tables/items/liquid_minecart.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420003,gm4_machines:{id:\"liquid_minecart\"}}" + "tag": "{CustomModelData:'item/liquid_minecart',gm4_machines:{id:\"liquid_minecart\"}}" }, { "function": "set_name", diff --git a/gm4_liquid_tanks/assets/gm4_liquid_tanks/models/block/liquid_tank.json b/gm4_liquid_tanks/assets/gm4_liquid_tanks/models/block/liquid_tank.json new file mode 100644 index 0000000000..e75b88000f --- /dev/null +++ b/gm4_liquid_tanks/assets/gm4_liquid_tanks/models/block/liquid_tank.json @@ -0,0 +1,21 @@ +{ + "textures": { + "top": "gm4_liquid_tanks:block/liquid_tank_top", + "bottom": "gm4_liquid_tanks:block/liquid_tank_top", + "side": "gm4_liquid_tanks:block/liquid_tank_side" + }, + "elements": [ + { + "from": [4, 11, 4], + "to": [12, 18, 12], + "faces": { + "north": {"uv": [0, 0, 16, 14], "texture": "#side", "cullface": "north"}, + "east": {"uv": [0, 0, 16, 14], "texture": "#side", "cullface": "east"}, + "south": {"uv": [0, 0, 16, 14], "texture": "#side", "cullface": "south"}, + "west": {"uv": [0, 0, 16, 14], "texture": "#side", "cullface": "west"}, + "up": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#top", "cullface": "up"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#bottom", "cullface": "down"} + } + } + ] +} diff --git a/gm4_liquid_tanks/assets/gm4_liquid_tanks/models/item/liquid_tank_full.json b/gm4_liquid_tanks/assets/gm4_liquid_tanks/models/item/liquid_tank_full.json new file mode 100644 index 0000000000..e1742c7e9a --- /dev/null +++ b/gm4_liquid_tanks/assets/gm4_liquid_tanks/models/item/liquid_tank_full.json @@ -0,0 +1,299 @@ +{ + "parent": "minecraft:block/block", + "ambientocclusion": false, + "textures": { + "particle": "minecraft:block/hopper_outside", + "top": "minecraft:block/hopper_top", + "side": "minecraft:block/hopper_outside", + "inside": "minecraft:block/hopper_inside", + "5": "gm4_liquid_tanks:block/liquid_tank_side", + "6": "gm4_liquid_tanks:block/liquid_tank_top" + }, + "elements": [ + { + "from": [ + 0, + 10, + 0 + ], + "to": [ + 16, + 11, + 16 + ], + "faces": { + "down": { + "texture": "#side" + }, + "up": { + "texture": "#inside", + "cullface": "up" + }, + "north": { + "texture": "#side", + "cullface": "north" + }, + "south": { + "texture": "#side", + "cullface": "south" + }, + "west": { + "texture": "#side", + "cullface": "west" + }, + "east": { + "texture": "#side", + "cullface": "east" + } + } + }, + { + "from": [ + 0, + 11, + 0 + ], + "to": [ + 2, + 16, + 16 + ], + "faces": { + "up": { + "texture": "#top", + "cullface": "up" + }, + "north": { + "texture": "#side", + "cullface": "north" + }, + "south": { + "texture": "#side", + "cullface": "south" + }, + "west": { + "texture": "#side", + "cullface": "west" + }, + "east": { + "texture": "#side", + "cullface": "up" + } + } + }, + { + "from": [ + 14, + 11, + 0 + ], + "to": [ + 16, + 16, + 16 + ], + "faces": { + "up": { + "texture": "#top", + "cullface": "up" + }, + "north": { + "texture": "#side", + "cullface": "north" + }, + "south": { + "texture": "#side", + "cullface": "south" + }, + "west": { + "texture": "#side", + "cullface": "up" + }, + "east": { + "texture": "#side", + "cullface": "east" + } + } + }, + { + "from": [ + 2, + 11, + 0 + ], + "to": [ + 14, + 16, + 2 + ], + "faces": { + "up": { + "texture": "#top", + "cullface": "up" + }, + "north": { + "texture": "#side", + "cullface": "north" + }, + "south": { + "texture": "#side", + "cullface": "up" + } + } + }, + { + "from": [ + 2, + 11, + 14 + ], + "to": [ + 14, + 16, + 16 + ], + "faces": { + "up": { + "texture": "#top", + "cullface": "up" + }, + "north": { + "texture": "#side", + "cullface": "up" + }, + "south": { + "texture": "#side", + "cullface": "south" + } + } + }, + { + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 10, + 12 + ], + "faces": { + "down": { + "texture": "#side" + }, + "north": { + "texture": "#side" + }, + "south": { + "texture": "#side" + }, + "west": { + "texture": "#side" + }, + "east": { + "texture": "#side" + } + } + }, + { + "from": [ + 6, + 0, + 6 + ], + "to": [ + 10, + 4, + 10 + ], + "faces": { + "down": { + "texture": "#side", + "cullface": "down" + }, + "north": { + "texture": "#side" + }, + "south": { + "texture": "#side" + }, + "west": { + "texture": "#side" + }, + "east": { + "texture": "#side" + } + } + }, + { + "from": [ + 4, + 11, + 4 + ], + "to": [ + 12, + 18, + 12 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 4.5, + 10.5, + 4.5 + ] + }, + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 14 + ], + "texture": "#5" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 14 + ], + "texture": "#5" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 14 + ], + "texture": "#5" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 14 + ], + "texture": "#5" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#6" + } + } + } + ] + +} diff --git a/gm4_liquid_tanks/assets/gm4_liquid_tanks/textures/block/liquid_tank_side.png b/gm4_liquid_tanks/assets/gm4_liquid_tanks/textures/block/liquid_tank_side.png new file mode 100644 index 0000000000..44a4d637d8 Binary files /dev/null and b/gm4_liquid_tanks/assets/gm4_liquid_tanks/textures/block/liquid_tank_side.png differ diff --git a/gm4_liquid_tanks/assets/gm4_liquid_tanks/textures/block/liquid_tank_top.png b/gm4_liquid_tanks/assets/gm4_liquid_tanks/textures/block/liquid_tank_top.png new file mode 100644 index 0000000000..55612521e3 Binary files /dev/null and b/gm4_liquid_tanks/assets/gm4_liquid_tanks/textures/block/liquid_tank_top.png differ diff --git a/gm4_liquid_tanks/assets/gm4_liquid_tanks/textures/gui/container/liquid_tank.png b/gm4_liquid_tanks/assets/gm4_liquid_tanks/textures/gui/container/liquid_tank.png new file mode 100644 index 0000000000..8ee8b2c610 Binary files /dev/null and b/gm4_liquid_tanks/assets/gm4_liquid_tanks/textures/gui/container/liquid_tank.png differ diff --git a/gm4_liquid_tanks/assets/translations.csv b/gm4_liquid_tanks/assets/translations.csv new file mode 100644 index 0000000000..ef0eec7990 --- /dev/null +++ b/gm4_liquid_tanks/assets/translations.csv @@ -0,0 +1,32 @@ +key,en_us +advancement.gm4.liquid_tanks.description,Find out that a liquid tank is not an epic submarine +advancement.gm4.liquid_tanks.title,"Oh, That Kind of Tank" +advancement.gm4.standard_liquids.description,Bottle your own experience from a liquid tank +advancement.gm4.standard_liquids.title,Experience Quicksave +block.gm4.liquid_tank,Liquid Tank +container.gm4.liquid_tank.beetroot_soup,Beetroot Soup Tank +container.gm4.liquid_tank.empty,Empty Tank +container.gm4.liquid_tank.experience,Experience Tank +container.gm4.liquid_tank.glow_ink,Glow Ink Tank +container.gm4.liquid_tank.honey,Honey Tank +container.gm4.liquid_tank.ink,Ink Tank +container.gm4.liquid_tank.lava,Lava Tank +container.gm4.liquid_tank.milk,Milk Tank +container.gm4.liquid_tank.mushroom_stew,Mushroom Stew Tank +container.gm4.liquid_tank.powder_snow,Powder Snow Tank +container.gm4.liquid_tank.rabbit_stew,Rabbit Stew Tank +container.gm4.liquid_tank.water,Water Tank +text.gm4.liquid_tanks.level_report.buckets,Buckets +text.gm4.liquid_tanks.level_report.levels,Levels +item.gm4.glow_ink_bottle,Glow Ink Bottle +item.gm4.ink_bottle,Ink Bottle +text.gm4.guidebook.module_desc.liquid_tanks,"Store liquids like Water, Lava, Milk, or Soup compactly in special tanks and interact with them!" +text.gm4.guidebook.liquid_tanks.description,Liquid Tanks can store various liquids in bulk.\n\nThe first slot of the liquid tank acts as both the input and output of the liquid tank. +text.gm4.guidebook.liqud_tanks.crafting,Liquid Tanks can be crafted in a Custom Crafter: +text.gm4.guidebook.module_desc.standard_liquids,"Store liquids like Water, Lava, Milk, or Soup compactly in special tanks and interact with them!" +text.gm4.guidebook.standard_liquids.water,"Standard liquids can be stored by liquid tanks.\n\nWater Tank\n- Drains water buckets, water bottles\n- Fills buckets, bottles\n- Fills adjacent cauldrons" +text.gm4.guidebook.standard_liquids.lava,Lava Tank\n- Drains lava buckets\n- Fills buckets\n- Fuels adjacent furnaces\n- Drains lava cauldrons\n- Fills adjacent cauldrons +text.gm4.guidebook.standard_liquids.rabbit_stew_and_beetroot_soup,"Rabbit Stew Tank\n- Drains rabbit stew\n- Fills bowls\n- Feeds drinkers\n\nBeetroot Soup Tank\n- Drains beetroot soup, beetroot\n- Fills bowls\n- Feeds drinkers" +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" diff --git a/gm4_liquid_tanks/beet.yaml b/gm4_liquid_tanks/beet.yaml index 8668231e8f..cfacc3e4ea 100644 --- a/gm4_liquid_tanks/beet.yaml +++ b/gm4_liquid_tanks/beet.yaml @@ -5,6 +5,9 @@ version: 2.4.X data_pack: load: . +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module - gm4.plugins.include.lib_machines @@ -17,6 +20,42 @@ meta: lib_custom_crafters: 3.0.0 lib_machines: 1.1.0 schedule_loops: [main] + model_data: + - item: player_head + reference: item/liquid_tank + model: item/liquid_tank_full + - item: glass + template: custom + broadcast: + - reference: block/liquid_tank + - reference: block/liquid_tank_side + model: block/liquid_tank + transforms: + - name: item_display + origin: [0.5,0.9,0.5] + scale: [0.438,0.438,0.438] + translation: [0,0,0] + display: head + - item: honey_block + reference: block/cast_honey_block + template: vanilla + - item: potion + template: vanilla + broadcast: + - reference: gm4_standard_liquids:item/ink_bottle + - reference: gm4_standard_liquids:item/glow_ink_bottle + - item: hopper + reference: gui/advancement/liquid_tanks_create + template: + name: advancement + forward: item/liquid_tank_full + - item: experience_bottle + reference: standard_liquids:gui/advancement/standard_liquids + template: advancement + gui_fonts: + - translation: gui.gm4.liquid_tank + container: hopper + texture: gui/container/liquid_tank website: description: Store liquids like Water, Lava, Milk, or Soup compactly in special tanks and interact with them! recommended: @@ -37,6 +76,6 @@ meta: - BluePsychoRanger Textures by: - Vilder50 - - kyrkis + - Kyrius Icon Design: - DuckJr diff --git a/gm4_liquid_tanks/data/gm4/advancements/liquid_tanks_create.json b/gm4_liquid_tanks/data/gm4/advancements/liquid_tanks_create.json index 1e872f0e3f..69c038beea 100644 --- a/gm4_liquid_tanks/data/gm4/advancements/liquid_tanks_create.json +++ b/gm4_liquid_tanks/data/gm4/advancements/liquid_tanks_create.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "hopper", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/liquid_tanks_create'}" }, "title": { "translate": "advancement.gm4.liquid_tanks.title", diff --git a/gm4_liquid_tanks/data/gm4/advancements/standard_liquids.json b/gm4_liquid_tanks/data/gm4/advancements/standard_liquids.json index 36f148a04a..c0ccf18545 100644 --- a/gm4_liquid_tanks/data/gm4/advancements/standard_liquids.json +++ b/gm4_liquid_tanks/data/gm4/advancements/standard_liquids.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "experience_bottle", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'standard_liquids:gui/advancement/standard_liquids'}" }, "title": { "translate": "advancement.gm4.standard_liquids.title", diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/down.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/down.mcfunction index 4c11478cc7..282d998a17 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/down.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/down.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ hopper[facing=down]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_liquid_tank_stand"',ArmorItems:[{},{},{},{id:"glass",Count:1,tag:{CustomModelData:3420001}}],Rotation:[0.0f,0.0f]} +summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_liquid_tank_stand"',ArmorItems:[{},{},{},{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank"}}],Rotation:[0.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_liquid_tank","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank"',Rotation:[0.0f,0.0f]} diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/east.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/east.mcfunction index 4705e46140..d40490dbf2 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/east.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/east.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ hopper[facing=east]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_liquid_tank_stand"',ArmorItems:[{},{},{},{id:"glass",Count:1,tag:{CustomModelData:3420003}}],Rotation:[-90.0f,0.0f]} +summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_liquid_tank_stand"',ArmorItems:[{},{},{},{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank_side"}}],Rotation:[-90.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_liquid_tank","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank"',Rotation:[-90.0f,0.0f]} diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/north.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/north.mcfunction index c5a38557d5..ed47b6258e 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/north.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/north.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ hopper[facing=north]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_liquid_tank_stand"',ArmorItems:[{},{},{},{id:"glass",Count:1,tag:{CustomModelData:3420003}}],Rotation:[180.0f,0.0f]} +summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_liquid_tank_stand"',ArmorItems:[{},{},{},{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank_side"}}],Rotation:[180.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_liquid_tank","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank"',Rotation:[180.0f,0.0f]} diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/south.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/south.mcfunction index e189a14d52..fef4f2f962 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/south.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/south.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ hopper[facing=south]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_liquid_tank_stand"',ArmorItems:[{},{},{},{id:"glass",Count:1,tag:{CustomModelData:3420003}}],Rotation:[0.0f,0.0f]} +summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_liquid_tank_stand"',ArmorItems:[{},{},{},{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank_side"}}],Rotation:[0.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_liquid_tank","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank"',Rotation:[0.0f,0.0f]} diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/west.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/west.mcfunction index 4a72b4be68..adeb55f6da 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/west.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/west.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ hopper[facing=west]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_liquid_tank_stand"',ArmorItems:[{},{},{},{id:"glass",Count:1,tag:{CustomModelData:3420003}}],Rotation:[90.0f,0.0f]} +summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_liquid_tank_stand"',ArmorItems:[{},{},{},{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank_side"}}],Rotation:[90.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_liquid_tank","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank"',Rotation:[90.0f,0.0f]} diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/relocate/place_down.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/relocate/place_down.mcfunction index 0d584ca93d..b82a1dbd9a 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/relocate/place_down.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/relocate/place_down.mcfunction @@ -8,6 +8,6 @@ execute if block ~ ~ ~ command_block[facing=north] run setblock ~ ~ ~ hopper[fac execute if block ~ ~ ~ command_block[facing=down] run setblock ~ ~ ~ hopper[facing=down] data merge block ~ ~ ~ {CustomName:'{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"}'} -summon armor_stand ~ ~-.5 ~ {CustomName:'"gm4_liquid_tank"',Tags:["gm4_no_edit","gm4_liquid_tank"],NoGravity:1,Marker:1,Silent:1,Invisible:1,Invulnerable:1,Small:1,DisabledSlots:2039552,ArmorItems:[{},{},{},{id:"minecraft:glass",Count:1,tag:{CustomModelData:3420001}}]} +summon armor_stand ~ ~-.5 ~ {CustomName:'"gm4_liquid_tank"',Tags:["gm4_no_edit","gm4_liquid_tank"],NoGravity:1,Marker:1,Silent:1,Invisible:1,Invulnerable:1,Small:1,DisabledSlots:2039552,ArmorItems:[{},{},{},{id:"minecraft:glass",Count:1,tag:{CustomModelData:"block/liquid_tank"}}]} 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/functions/relocate/summon_block_markers.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/relocate/summon_block_markers.mcfunction index a67cd30beb..138a08b77e 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/relocate/summon_block_markers.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/relocate/summon_block_markers.mcfunction @@ -5,7 +5,7 @@ scoreboard players set $placed_block gm4_rl_data 1 -summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_liquid_tank_stand"',ArmorItems:[{},{},{},{id:"glass",Count:1,tag:{CustomModelData:3420001}}],Rotation:[0.0f,0.0f]} +summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_liquid_tank_stand"',ArmorItems:[{},{},{},{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank"}}],Rotation:[0.0f,0.0f]} summon 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 diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/guidebook/liquid_tanks.json b/gm4_liquid_tanks/data/gm4_liquid_tanks/guidebook/liquid_tanks.json index f736653d92..1648ad75c9 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/guidebook/liquid_tanks.json +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/guidebook/liquid_tanks.json @@ -3,8 +3,7 @@ "name": "Liquid Tanks", "module_type": "base", "icon": { - "item": "minecraft:glass", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:glass" }, "criteria": { "open_custom_crafter": { diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/loot_tables/items/liquid_tank.json b/gm4_liquid_tanks/data/gm4_liquid_tanks/loot_tables/items/liquid_tank.json index 39fe29d3e5..95a018ba5d 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/loot_tables/items/liquid_tank.json +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/loot_tables/items/liquid_tank.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420132,gm4_machines:{id:\"liquid_tank\"},SkullOwner:{Name:\"gm4_liquid_tank\",Id:[I;506554253,2099987480,-1876292803,1704690390],Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$liquid_tank\"}]}}}" + "tag": "{CustomModelData:'item/liquid_tank',gm4_machines:{id:\"liquid_tank\"},SkullOwner:{Name:\"gm4_liquid_tank\",Id:[I;506554253,2099987480,-1876292803,1704690390],Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$liquid_tank\"}]}}}" }, { "function": "set_name", diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/util/honey_casting/honey_cauldron.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/util/honey_casting/honey_cauldron.mcfunction index 0514e86df4..e6d06e8b65 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/util/honey_casting/honey_cauldron.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/util/honey_casting/honey_cauldron.mcfunction @@ -2,7 +2,7 @@ #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:1,Invisible:1,Invulnerable:1,NoGravity:1,Silent:1,Fire:4000s,Tags:["gm4_lt_honey_display","gm4_no_edit"],CustomName:'"gm4_lt_honey_display"',Pose:{Head:[180.0f,0.0f,0.0f]},ArmorItems:[{},{},{},{id:"minecraft:honey_block",Count:1,tag:{CustomModelData:3420001}}],DisabledSlots:4144959} +execute if score @s gm4_lt_util matches 4.. run summon armor_stand ~0.5 ~ ~0.5 {Marker:1,Invisible:1,Invulnerable:1,NoGravity:1,Silent:1,Fire:4000s,Tags:["gm4_lt_honey_display","gm4_no_edit"],CustomName:'"gm4_lt_honey_display"',Pose:{Head:[180.0f,0.0f,0.0f]},ArmorItems:[{},{},{},{id:"minecraft:honey_block",Count:1,tag:{CustomModelData:"block/cast_honey_block"}}],DisabledSlots:4144959} 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/guidebook/standard_liquids.json b/gm4_liquid_tanks/data/gm4_standard_liquids/guidebook/standard_liquids.json index e50169e45b..2d8179b59d 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/guidebook/standard_liquids.json +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/guidebook/standard_liquids.json @@ -5,8 +5,7 @@ "load_check": "liquid_tanks", "base_module": "liquid_tanks", "icon": { - "item": "minecraft:lava_bucket", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:lava_bucket" }, "criteria": { "obtain_liquid_tank": { diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/loot_tables/glow_ink_bottle.json b/gm4_liquid_tanks/data/gm4_standard_liquids/loot_tables/glow_ink_bottle.json index dc99d929a3..4e6b4312a0 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/loot_tables/glow_ink_bottle.json +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/loot_tables/glow_ink_bottle.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{gm4_standard_liquids:{potion:\"glowing\"},CustomPotionEffects:[{Id:24,Amplifier:0b,Duration:1200},{Id:16,Amplifier:0b,Duration:1800}],CustomPotionColor:9828808,CustomModelData:3420008}" + "tag": "{gm4_standard_liquids:{potion:\"glowing\"},CustomPotionEffects:[{Id:24,Amplifier:0b,Duration:1200},{Id:16,Amplifier:0b,Duration:1800}],CustomPotionColor:9828808,CustomModelData:'gm4_standard_liquids:item/glow_ink_bottle'}" }, { "function": "set_name", diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/loot_tables/ink_bottle.json b/gm4_liquid_tanks/data/gm4_standard_liquids/loot_tables/ink_bottle.json index 95434ad04f..c76a11b211 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/loot_tables/ink_bottle.json +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/loot_tables/ink_bottle.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{gm4_standard_liquids:{potion:\"blindness\"},CustomPotionEffects:[{Id:15,Amplifier:0b,Duration:2400}],CustomPotionColor:68378,CustomModelData:3420007}" + "tag": "{gm4_standard_liquids:{potion:\"blindness\"},CustomPotionEffects:[{Id:15,Amplifier:0b,Duration:2400}],CustomPotionColor:68378,CustomModelData:'gm4_standard_liquids:item/ink_bottle'}" }, { "function": "set_name", diff --git a/gm4_liquid_tanks/overlay_18/data/gm4_standard_liquids/loot_tables/glow_ink_bottle.json b/gm4_liquid_tanks/overlay_18/data/gm4_standard_liquids/loot_tables/glow_ink_bottle.json index 1d21a105c7..ce9b78ea6a 100644 --- a/gm4_liquid_tanks/overlay_18/data/gm4_standard_liquids/loot_tables/glow_ink_bottle.json +++ b/gm4_liquid_tanks/overlay_18/data/gm4_standard_liquids/loot_tables/glow_ink_bottle.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{gm4_standard_liquids:{potion:\"glowing\"},custom_potion_effects:[{id:'minecraft:glowing',amplifier:0b,duration:1200},{id:'minecraft:night_vision',amplifier:0b,duration:1800}],CustomPotionColor:9828808,CustomModelData:3420008}" + "tag": "{gm4_standard_liquids:{potion:\"glowing\"},custom_potion_effects:[{id:'minecraft:glowing',amplifier:0b,duration:1200},{id:'minecraft:night_vision',amplifier:0b,duration:1800}],CustomPotionColor:9828808,CustomModelData:'gm4_standard_liquids:item/glow_ink_bottle'}" }, { "function": "set_name", diff --git a/gm4_liquid_tanks/overlay_18/data/gm4_standard_liquids/loot_tables/ink_bottle.json b/gm4_liquid_tanks/overlay_18/data/gm4_standard_liquids/loot_tables/ink_bottle.json index 7d29544fd8..755f11e1e1 100644 --- a/gm4_liquid_tanks/overlay_18/data/gm4_standard_liquids/loot_tables/ink_bottle.json +++ b/gm4_liquid_tanks/overlay_18/data/gm4_standard_liquids/loot_tables/ink_bottle.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{gm4_standard_liquids:{potion:\"blindness\"},custom_potion_effects:[{id:'minecraft:blindness',amplifier:0b,duration:2400}],CustomPotionColor:68378,CustomModelData:3420007}" + "tag": "{gm4_standard_liquids:{potion:\"blindness\"},custom_potion_effects:[{id:'minecraft:blindness',amplifier:0b,duration:2400}],CustomPotionColor:68378,CustomModelData:'gm4_standard_liquids:item/ink_bottle'}" }, { "function": "set_name", diff --git a/gm4_liquid_tanks/overlay_26/data/gm4_liquid_tanks/guidebook/liquid_tanks.json b/gm4_liquid_tanks/overlay_26/data/gm4_liquid_tanks/guidebook/liquid_tanks.json index 3494226836..19f8f962dd 100644 --- a/gm4_liquid_tanks/overlay_26/data/gm4_liquid_tanks/guidebook/liquid_tanks.json +++ b/gm4_liquid_tanks/overlay_26/data/gm4_liquid_tanks/guidebook/liquid_tanks.json @@ -3,8 +3,7 @@ "name": "Liquid Tanks", "module_type": "base", "icon": { - "item": "minecraft:glass", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:glass" }, "criteria": { "open_custom_crafter": { diff --git a/gm4_live_catch/beet.yaml b/gm4_live_catch/beet.yaml index 272dd46174..aefdfc7553 100644 --- a/gm4_live_catch/beet.yaml +++ b/gm4_live_catch/beet.yaml @@ -10,6 +10,10 @@ pipeline: meta: gm4: + model_data: + - item: pufferfish + reference: gui/advancement/live_catch + template: advancement website: description: Catch live fish when fishing! But watch out for Pufferfish, those might make for a nasty surprise! recommended: [] diff --git a/gm4_live_catch/data/gm4/advancements/live_catch.json b/gm4_live_catch/data/gm4/advancements/live_catch.json index 50ce351f73..eb18e07cd9 100644 --- a/gm4_live_catch/data/gm4/advancements/live_catch.json +++ b/gm4_live_catch/data/gm4/advancements/live_catch.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "pufferfish", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/live_catch'}" }, "title": { "translate": "advancement.gm4.live_catch.title", diff --git a/gm4_live_catch/data/gm4_live_catch/guidebook/live_catch.json b/gm4_live_catch/data/gm4_live_catch/guidebook/live_catch.json index 865d667d92..1951cd6900 100644 --- a/gm4_live_catch/data/gm4_live_catch/guidebook/live_catch.json +++ b/gm4_live_catch/data/gm4_live_catch/guidebook/live_catch.json @@ -3,8 +3,7 @@ "name": "Live Catch", "module_type": "module", "icon": { - "item": "minecraft:cod", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:cod" }, "criteria": { "use_fishing_rod": { diff --git a/gm4_live_catch/translations.csv b/gm4_live_catch/translations.csv new file mode 100644 index 0000000000..01f42bb3aa --- /dev/null +++ b/gm4_live_catch/translations.csv @@ -0,0 +1,5 @@ +key,en_us +advancement.gm4.live_catch.title,Watch Out! +advancement.gm4.live_catch.description,Catch a pufferfish to the face. +text.gm4.guidebook.module_desc.live_catch,"Catch live fish when fishing! But watch out for Pufferfish, those might make for a nasty surprise!" +text.gm4.guidebook.live_catch.description,"When fishing, if a fisher reels in a fish, instead of an item, an actual fish will be launched towards the fisher.\n\nThe fish that spawn have half a heart of health, so they will easily die." diff --git a/gm4_lumos_shamir/assets/translations.csv b/gm4_lumos_shamir/assets/translations.csv new file mode 100644 index 0000000000..82e7f52a0c --- /dev/null +++ b/gm4_lumos_shamir/assets/translations.csv @@ -0,0 +1,5 @@ +key,en_us +item.gm4.shamir.lumos,Lumos +text.gm4.guidebook.module_desc.lumos_shamir,Adds the shamir 'Lumos' to Metallurgy. It places torches when it is dark. +text.gm4.guidebook.lumos_shamir.description,Lumos takes torches from the inventory and places them if the light level is too low. +text.gm4.guidebook.lumos_shamir.usage,The Lumos Shamir is found on Curie's Bismium Bands. It can be placed onto pickaxes and shovels.\n\nHolding the tool will cause torches to be placed when standing in low light levels. diff --git a/gm4_lumos_shamir/beet.yaml b/gm4_lumos_shamir/beet.yaml index d5d60aabca..e48711c0d0 100644 --- a/gm4_lumos_shamir/beet.yaml +++ b/gm4_lumos_shamir/beet.yaml @@ -5,7 +5,11 @@ version: 1.2.X data_pack: load: . +resource_pack: + load: ../gm4_metallurgy + pipeline: + - gm4_metallurgy.shamir_model_template - gm4.plugins.extend.module meta: @@ -14,6 +18,13 @@ meta: required: gm4_metallurgy: 1.2.0 schedule_loops: [main] + model_data: + - item: [pickaxes, shovels] + reference: shamir/lumos + template: + name: shamir + metal: curies_bismium + textures_path: gm4_metallurgy:item/shamir/curies_bismium website: description: Adds the shamir 'Lumos' to Metallurgy. It places torches when it is dark. recommended: [] diff --git a/gm4_lumos_shamir/data/gm4_lumos_shamir/functions/init.mcfunction b/gm4_lumos_shamir/data/gm4_lumos_shamir/functions/init.mcfunction index bf3fdac407..cbde9a8062 100644 --- a/gm4_lumos_shamir/data/gm4_lumos_shamir/functions/init.mcfunction +++ b/gm4_lumos_shamir/data/gm4_lumos_shamir/functions/init.mcfunction @@ -6,7 +6,7 @@ scoreboard players set lumos_shamir gm4_modules 1 data remove storage gm4_player_heads:register heads[{id:"gm4_lumos_shamir:band/v0"}] # register shamir with lib_player_heads -execute unless data storage gm4_player_heads:register heads[{id:"gm4_lumos_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_lumos_shamir:band/v1",name:"[Drop to Fix Item] gm4_lumos_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"lumos",metal:{type:"curies_bismium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/curies_bismium",CustomModelData:3420114,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#467A1B","translate":"item.gm4.metallurgy.band","fallback":"Curie\'s Bismium Band","with":[{"translate":"item.gm4.metallurgy.curies_bismium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.lumos","fallback":"Lumos"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_lumos_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_lumos_shamir:band/v1",name:"[Drop to Fix Item] gm4_lumos_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"lumos",metal:{type:"curies_bismium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/curies_bismium",CustomModelData:"shamir/lumos",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#467A1B","translate":"item.gm4.metallurgy.band","fallback":"Curie\'s Bismium Band","with":[{"translate":"item.gm4.metallurgy.curies_bismium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.lumos","fallback":"Lumos"}']}}} schedule function gm4_lumos_shamir:main 4t diff --git a/gm4_lumos_shamir/data/gm4_lumos_shamir/guidebook/lumos_shamir.json b/gm4_lumos_shamir/data/gm4_lumos_shamir/guidebook/lumos_shamir.json index dcc2bb887c..96a3195975 100644 --- a/gm4_lumos_shamir/data/gm4_lumos_shamir/guidebook/lumos_shamir.json +++ b/gm4_lumos_shamir/data/gm4_lumos_shamir/guidebook/lumos_shamir.json @@ -4,8 +4,7 @@ "module_type": "expansion", "base_module": "metallurgy", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420114}" + "item": "minecraft:anvil" }, "criteria": { "obtain_lumos_shamir": { diff --git a/gm4_lumos_shamir/data/gm4_lumos_shamir/loot_tables/band.json b/gm4_lumos_shamir/data/gm4_lumos_shamir/loot_tables/band.json index b356d32f16..6acdbf471f 100644 --- a/gm4_lumos_shamir/data/gm4_lumos_shamir/loot_tables/band.json +++ b/gm4_lumos_shamir/data/gm4_lumos_shamir/loot_tables/band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420114,SkullOwner:{Name:\"[Drop to Fix Item] gm4_lumos_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"lumos\"}}" + "tag": "{CustomModelData:'shamir/lumos',SkullOwner:{Name:\"[Drop to Fix Item] gm4_lumos_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"lumos\"}}" }, { "function": "minecraft:set_lore", diff --git a/gm4_mending_tanks/data/gm4_mending_tanks/guidebook/mending_tanks.json b/gm4_mending_tanks/data/gm4_mending_tanks/guidebook/mending_tanks.json index 3b9be6d42d..22d766d7c4 100644 --- a/gm4_mending_tanks/data/gm4_mending_tanks/guidebook/mending_tanks.json +++ b/gm4_mending_tanks/data/gm4_mending_tanks/guidebook/mending_tanks.json @@ -5,7 +5,7 @@ "base_module": "liquid_tanks", "icon": { "item": "minecraft:diamond_axe", - "nbt": "{Enchantments:[{id:\"minecraft:mending\",lvl:1s}],CustomModelData:3420002}" + "nbt": "{Enchantments:[{id:\"minecraft:mending\",lvl:1s}]}" }, "criteria": { "obtain_liquid_tank": { diff --git a/gm4_mending_tanks/translations.csv b/gm4_mending_tanks/translations.csv new file mode 100644 index 0000000000..fa4785639a --- /dev/null +++ b/gm4_mending_tanks/translations.csv @@ -0,0 +1,3 @@ +key,en_us +text.gm4.guidebook.module_desc.mending_tanks,Enables Liquid Tanks filled with Experience to repair tools with the mending enchant on them. +text.gm4.guidebook.mending_tanks.usage,Items with the Mending enchantment will be reapaired when placed inside an Experience Tank. diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/chainmail_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/chainmail_layer_1.properties new file mode 100644 index 0000000000..c6d13e83f1 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/chainmail_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/aluminium/chainmail_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/aluminium/chainmail_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/chainmail_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/chainmail_layer_2.properties new file mode 100644 index 0000000000..6a7b6124a7 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/chainmail_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/aluminium/chainmail_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/aluminium/chainmail_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/diamond_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/diamond_layer_1.properties new file mode 100644 index 0000000000..3cb2948858 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/diamond_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/aluminium/diamond_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/aluminium/diamond_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/diamond_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/diamond_layer_2.properties new file mode 100644 index 0000000000..2f3d6b1614 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/diamond_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/aluminium/diamond_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/aluminium/diamond_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/elytra.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/elytra.properties new file mode 100644 index 0000000000..017d96e85f --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/elytra.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/aluminium/elytra_anim.png +to=gm4_metallurgy:optifine/cit/aluminium/elytra.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/gold_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/gold_layer_1.properties new file mode 100644 index 0000000000..32ea2a945b --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/gold_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/aluminium/gold_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/aluminium/gold_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/gold_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/gold_layer_2.properties new file mode 100644 index 0000000000..166b984295 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/gold_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/aluminium/gold_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/aluminium/gold_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/iron_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/iron_layer_1.properties new file mode 100644 index 0000000000..d683ef6e09 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/iron_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/aluminium/iron_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/aluminium/iron_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/iron_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/iron_layer_2.properties new file mode 100644 index 0000000000..16a595d571 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/iron_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/aluminium/iron_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/aluminium/iron_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/leather_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/leather_layer_1.properties new file mode 100644 index 0000000000..6d96a75ab2 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/leather_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/aluminium/leather_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/aluminium/leather_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/leather_layer_1_overlay.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/leather_layer_1_overlay.properties new file mode 100644 index 0000000000..cc0d595db6 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/leather_layer_1_overlay.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/aluminium/leather_layer_1_overlay_anim.png +to=gm4_metallurgy:optifine/cit/aluminium/leather_layer_1_overlay.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/leather_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/leather_layer_2.properties new file mode 100644 index 0000000000..18ecb4c97f --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/leather_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/aluminium/leather_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/aluminium/leather_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/leather_layer_2_overlay.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/leather_layer_2_overlay.properties new file mode 100644 index 0000000000..22cba36d47 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/leather_layer_2_overlay.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/aluminium/leather_layer_2_overlay_anim.png +to=gm4_metallurgy:optifine/cit/aluminium/leather_layer_2_overlay.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/netherite_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/netherite_layer_1.properties new file mode 100644 index 0000000000..d6435fa300 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/netherite_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/aluminium/netherite_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/aluminium/netherite_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/netherite_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/netherite_layer_2.properties new file mode 100644 index 0000000000..c66dcaffc7 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/netherite_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/aluminium/netherite_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/aluminium/netherite_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/turtle_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/turtle_layer_1.properties new file mode 100644 index 0000000000..4782ff8c2f --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/aluminium/turtle_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/aluminium/turtle_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/aluminium/turtle_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/chainmail_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/chainmail_layer_1.properties new file mode 100644 index 0000000000..3b65074f74 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/chainmail_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barimium/chainmail_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/barimium/chainmail_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/chainmail_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/chainmail_layer_2.properties new file mode 100644 index 0000000000..7a5eab1378 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/chainmail_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barimium/chainmail_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/barimium/chainmail_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/diamond_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/diamond_layer_1.properties new file mode 100644 index 0000000000..197a435b21 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/diamond_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barimium/diamond_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/barimium/diamond_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/diamond_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/diamond_layer_2.properties new file mode 100644 index 0000000000..190e664232 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/diamond_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barimium/diamond_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/barimium/diamond_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/elytra.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/elytra.properties new file mode 100644 index 0000000000..128f19a8d0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/elytra.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barimium/elytra_anim.png +to=gm4_metallurgy:optifine/cit/barimium/elytra.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/gold_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/gold_layer_1.properties new file mode 100644 index 0000000000..e76df91da5 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/gold_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barimium/gold_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/barimium/gold_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/gold_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/gold_layer_2.properties new file mode 100644 index 0000000000..71787e0122 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/gold_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barimium/gold_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/barimium/gold_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/iron_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/iron_layer_1.properties new file mode 100644 index 0000000000..da9ef45df6 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/iron_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barimium/iron_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/barimium/iron_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/iron_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/iron_layer_2.properties new file mode 100644 index 0000000000..839484849b --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/iron_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barimium/iron_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/barimium/iron_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/leather_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/leather_layer_1.properties new file mode 100644 index 0000000000..7e2fb186d6 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/leather_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barimium/leather_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/barimium/leather_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/leather_layer_1_overlay.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/leather_layer_1_overlay.properties new file mode 100644 index 0000000000..c37f5441aa --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/leather_layer_1_overlay.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barimium/leather_layer_1_overlay_anim.png +to=gm4_metallurgy:optifine/cit/barimium/leather_layer_1_overlay.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/leather_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/leather_layer_2.properties new file mode 100644 index 0000000000..984ad1937d --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/leather_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barimium/leather_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/barimium/leather_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/leather_layer_2_overlay.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/leather_layer_2_overlay.properties new file mode 100644 index 0000000000..0c2bedd6e7 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/leather_layer_2_overlay.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barimium/leather_layer_2_overlay_anim.png +to=gm4_metallurgy:optifine/cit/barimium/leather_layer_2_overlay.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/netherite_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/netherite_layer_1.properties new file mode 100644 index 0000000000..c0180ad1a2 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/netherite_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barimium/netherite_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/barimium/netherite_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/netherite_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/netherite_layer_2.properties new file mode 100644 index 0000000000..ecf13d7e2d --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/netherite_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barimium/netherite_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/barimium/netherite_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/turtle_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/turtle_layer_1.properties new file mode 100644 index 0000000000..78ec23c486 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barimium/turtle_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barimium/turtle_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/barimium/turtle_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/chainmail_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/chainmail_layer_1.properties new file mode 100644 index 0000000000..85e95b7322 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/chainmail_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barium/chainmail_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/barium/chainmail_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/chainmail_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/chainmail_layer_2.properties new file mode 100644 index 0000000000..88c2c5bb6b --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/chainmail_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barium/chainmail_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/barium/chainmail_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/diamond_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/diamond_layer_1.properties new file mode 100644 index 0000000000..c890574e7f --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/diamond_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barium/diamond_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/barium/diamond_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/diamond_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/diamond_layer_2.properties new file mode 100644 index 0000000000..ae3a1b52e3 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/diamond_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barium/diamond_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/barium/diamond_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/elytra.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/elytra.properties new file mode 100644 index 0000000000..f74cbafc01 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/elytra.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barium/elytra_anim.png +to=gm4_metallurgy:optifine/cit/barium/elytra.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/gold_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/gold_layer_1.properties new file mode 100644 index 0000000000..fe2fd267bb --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/gold_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barium/gold_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/barium/gold_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/gold_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/gold_layer_2.properties new file mode 100644 index 0000000000..a1d9626c0c --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/gold_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barium/gold_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/barium/gold_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/iron_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/iron_layer_1.properties new file mode 100644 index 0000000000..c7d4b42ec3 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/iron_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barium/iron_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/barium/iron_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/iron_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/iron_layer_2.properties new file mode 100644 index 0000000000..f7bc22546e --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/iron_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barium/iron_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/barium/iron_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/leather_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/leather_layer_1.properties new file mode 100644 index 0000000000..938207c47d --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/leather_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barium/leather_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/barium/leather_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/leather_layer_1_overlay.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/leather_layer_1_overlay.properties new file mode 100644 index 0000000000..2f9b55aeb9 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/leather_layer_1_overlay.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barium/leather_layer_1_overlay_anim.png +to=gm4_metallurgy:optifine/cit/barium/leather_layer_1_overlay.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/leather_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/leather_layer_2.properties new file mode 100644 index 0000000000..8d064facee --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/leather_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barium/leather_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/barium/leather_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/leather_layer_2_overlay.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/leather_layer_2_overlay.properties new file mode 100644 index 0000000000..e566c0414a --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/leather_layer_2_overlay.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barium/leather_layer_2_overlay_anim.png +to=gm4_metallurgy:optifine/cit/barium/leather_layer_2_overlay.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/netherite_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/netherite_layer_1.properties new file mode 100644 index 0000000000..132bce6455 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/netherite_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barium/netherite_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/barium/netherite_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/netherite_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/netherite_layer_2.properties new file mode 100644 index 0000000000..c5cc22a145 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/netherite_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barium/netherite_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/barium/netherite_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/turtle_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/turtle_layer_1.properties new file mode 100644 index 0000000000..21ae1ad772 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/barium/turtle_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/barium/turtle_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/barium/turtle_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/chainmail_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/chainmail_layer_1.properties new file mode 100644 index 0000000000..7aa5e45f2c --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/chainmail_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/bismuth/chainmail_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/bismuth/chainmail_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/chainmail_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/chainmail_layer_2.properties new file mode 100644 index 0000000000..60041ccaef --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/chainmail_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/bismuth/chainmail_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/bismuth/chainmail_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/diamond_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/diamond_layer_1.properties new file mode 100644 index 0000000000..1cec9b7b1d --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/diamond_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/bismuth/diamond_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/bismuth/diamond_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/diamond_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/diamond_layer_2.properties new file mode 100644 index 0000000000..32fafcd6ee --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/diamond_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/bismuth/diamond_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/bismuth/diamond_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/elytra.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/elytra.properties new file mode 100644 index 0000000000..3b30326f2d --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/elytra.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/bismuth/elytra_anim.png +to=gm4_metallurgy:optifine/cit/bismuth/elytra.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/gold_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/gold_layer_1.properties new file mode 100644 index 0000000000..f983baa30e --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/gold_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/bismuth/gold_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/bismuth/gold_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/gold_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/gold_layer_2.properties new file mode 100644 index 0000000000..1db4312491 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/gold_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/bismuth/gold_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/bismuth/gold_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/iron_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/iron_layer_1.properties new file mode 100644 index 0000000000..559a7f414c --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/iron_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/bismuth/iron_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/bismuth/iron_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/iron_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/iron_layer_2.properties new file mode 100644 index 0000000000..0c5b2d8c46 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/iron_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/bismuth/iron_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/bismuth/iron_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/leather_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/leather_layer_1.properties new file mode 100644 index 0000000000..c6bee59ec9 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/leather_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/bismuth/leather_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/bismuth/leather_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/leather_layer_1_overlay.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/leather_layer_1_overlay.properties new file mode 100644 index 0000000000..ca1773ec71 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/leather_layer_1_overlay.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/bismuth/leather_layer_1_overlay_anim.png +to=gm4_metallurgy:optifine/cit/bismuth/leather_layer_1_overlay.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/leather_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/leather_layer_2.properties new file mode 100644 index 0000000000..a0d45794f9 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/leather_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/bismuth/leather_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/bismuth/leather_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/leather_layer_2_overlay.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/leather_layer_2_overlay.properties new file mode 100644 index 0000000000..d0728fc3b1 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/leather_layer_2_overlay.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/bismuth/leather_layer_2_overlay_anim.png +to=gm4_metallurgy:optifine/cit/bismuth/leather_layer_2_overlay.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/netherite_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/netherite_layer_1.properties new file mode 100644 index 0000000000..d6995145cd --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/netherite_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/bismuth/netherite_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/bismuth/netherite_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/netherite_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/netherite_layer_2.properties new file mode 100644 index 0000000000..e17988f2be --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/netherite_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/bismuth/netherite_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/bismuth/netherite_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/turtle_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/turtle_layer_1.properties new file mode 100644 index 0000000000..061af4eb63 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/bismuth/turtle_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/bismuth/turtle_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/bismuth/turtle_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/chainmail_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/chainmail_layer_1.properties new file mode 100644 index 0000000000..73f56fb1f3 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/chainmail_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/curies_bismium/chainmail_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/curies_bismium/chainmail_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/chainmail_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/chainmail_layer_2.properties new file mode 100644 index 0000000000..6a4b04df13 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/chainmail_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/curies_bismium/chainmail_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/curies_bismium/chainmail_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/diamond_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/diamond_layer_1.properties new file mode 100644 index 0000000000..c8289724d5 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/diamond_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/curies_bismium/diamond_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/curies_bismium/diamond_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/diamond_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/diamond_layer_2.properties new file mode 100644 index 0000000000..c7b9efc2cf --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/diamond_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/curies_bismium/diamond_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/curies_bismium/diamond_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/elytra.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/elytra.properties new file mode 100644 index 0000000000..4c758daac0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/elytra.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/curies_bismium/elytra_anim.png +to=gm4_metallurgy:optifine/cit/curies_bismium/elytra.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/gold_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/gold_layer_1.properties new file mode 100644 index 0000000000..9251f0be84 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/gold_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/curies_bismium/gold_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/curies_bismium/gold_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/gold_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/gold_layer_2.properties new file mode 100644 index 0000000000..6ae39e52cd --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/gold_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/curies_bismium/gold_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/curies_bismium/gold_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/iron_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/iron_layer_1.properties new file mode 100644 index 0000000000..95f659a36e --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/iron_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/curies_bismium/iron_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/curies_bismium/iron_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/iron_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/iron_layer_2.properties new file mode 100644 index 0000000000..8cb14670a5 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/iron_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/curies_bismium/iron_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/curies_bismium/iron_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/leather_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/leather_layer_1.properties new file mode 100644 index 0000000000..e79a5712c2 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/leather_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/curies_bismium/leather_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/curies_bismium/leather_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/leather_layer_1_overlay.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/leather_layer_1_overlay.properties new file mode 100644 index 0000000000..aec1fd9bbd --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/leather_layer_1_overlay.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/curies_bismium/leather_layer_1_overlay_anim.png +to=gm4_metallurgy:optifine/cit/curies_bismium/leather_layer_1_overlay.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/leather_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/leather_layer_2.properties new file mode 100644 index 0000000000..d04de752dc --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/leather_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/curies_bismium/leather_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/curies_bismium/leather_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/leather_layer_2_overlay.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/leather_layer_2_overlay.properties new file mode 100644 index 0000000000..0d9a4b70f0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/leather_layer_2_overlay.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/curies_bismium/leather_layer_2_overlay_anim.png +to=gm4_metallurgy:optifine/cit/curies_bismium/leather_layer_2_overlay.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/netherite_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/netherite_layer_1.properties new file mode 100644 index 0000000000..1091571148 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/netherite_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/curies_bismium/netherite_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/curies_bismium/netherite_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/netherite_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/netherite_layer_2.properties new file mode 100644 index 0000000000..d6f96d641c --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/netherite_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/curies_bismium/netherite_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/curies_bismium/netherite_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/spyglass.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/spyglass.properties new file mode 100644 index 0000000000..47be13f82f --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/spyglass.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/curies_bismium/spyglass_anim.png +to=gm4_metallurgy:optifine/cit/curies_bismium/spyglass.png +x=0 +y=0 +w=16 +h=16 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/turtle_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/turtle_layer_1.properties new file mode 100644 index 0000000000..a79a4dab80 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/curies_bismium/turtle_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/curies_bismium/turtle_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/curies_bismium/turtle_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/chainmail_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/chainmail_layer_1.properties new file mode 100644 index 0000000000..907821e6d1 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/chainmail_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/thorium/chainmail_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/thorium/chainmail_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/chainmail_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/chainmail_layer_2.properties new file mode 100644 index 0000000000..14b340aa0d --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/chainmail_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/thorium/chainmail_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/thorium/chainmail_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/diamond_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/diamond_layer_1.properties new file mode 100644 index 0000000000..e6b2d4cbd9 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/diamond_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/thorium/diamond_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/thorium/diamond_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/diamond_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/diamond_layer_2.properties new file mode 100644 index 0000000000..e6605adf02 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/diamond_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/thorium/diamond_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/thorium/diamond_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/elytra.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/elytra.properties new file mode 100644 index 0000000000..5e9c9c85ea --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/elytra.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/thorium/elytra_anim.png +to=gm4_metallurgy:optifine/cit/thorium/elytra.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/gold_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/gold_layer_1.properties new file mode 100644 index 0000000000..6f11af514b --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/gold_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/thorium/gold_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/thorium/gold_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/gold_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/gold_layer_2.properties new file mode 100644 index 0000000000..57f3891673 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/gold_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/thorium/gold_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/thorium/gold_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/iron_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/iron_layer_1.properties new file mode 100644 index 0000000000..accd1a802d --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/iron_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/thorium/iron_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/thorium/iron_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/iron_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/iron_layer_2.properties new file mode 100644 index 0000000000..0d25033df6 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/iron_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/thorium/iron_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/thorium/iron_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/leather_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/leather_layer_1.properties new file mode 100644 index 0000000000..8c507ded43 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/leather_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/thorium/leather_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/thorium/leather_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/leather_layer_1_overlay.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/leather_layer_1_overlay.properties new file mode 100644 index 0000000000..6f64f65d1b --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/leather_layer_1_overlay.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/thorium/leather_layer_1_overlay_anim.png +to=gm4_metallurgy:optifine/cit/thorium/leather_layer_1_overlay.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/leather_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/leather_layer_2.properties new file mode 100644 index 0000000000..01882ab88d --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/leather_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/thorium/leather_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/thorium/leather_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/leather_layer_2_overlay.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/leather_layer_2_overlay.properties new file mode 100644 index 0000000000..e46d96c79f --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/leather_layer_2_overlay.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/thorium/leather_layer_2_overlay_anim.png +to=gm4_metallurgy:optifine/cit/thorium/leather_layer_2_overlay.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/netherite_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/netherite_layer_1.properties new file mode 100644 index 0000000000..d28adb907a --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/netherite_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/thorium/netherite_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/thorium/netherite_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/netherite_layer_2.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/netherite_layer_2.properties new file mode 100644 index 0000000000..b96c3d46ce --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/netherite_layer_2.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/thorium/netherite_layer_2_anim.png +to=gm4_metallurgy:optifine/cit/thorium/netherite_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/turtle_layer_1.properties b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/turtle_layer_1.properties new file mode 100644 index 0000000000..e3e24204df --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/anim/thorium/turtle_layer_1.properties @@ -0,0 +1,17 @@ +from=gm4_metallurgy:optifine/cit/thorium/turtle_layer_1_anim.png +to=gm4_metallurgy:optifine/cit/thorium/turtle_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=54 +tile.1=0 +duration.1=1 +tile.2=1 +duration.2=1 +tile.3=2 +duration.3=1 +tile.4=3 +duration.4=1 diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/chainmail_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/chainmail_layer_1.png new file mode 100644 index 0000000000..1bb9d0f69a Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/chainmail_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/chainmail_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/chainmail_layer_1_anim.png new file mode 100644 index 0000000000..11bff2674d Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/chainmail_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/chainmail_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/chainmail_layer_2.png new file mode 100644 index 0000000000..5ffcc3bb6b Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/chainmail_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/chainmail_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/chainmail_layer_2_anim.png new file mode 100644 index 0000000000..a79f91743c Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/chainmail_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/diamond_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/diamond_layer_1.png new file mode 100644 index 0000000000..79a4ef5c8e Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/diamond_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/diamond_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/diamond_layer_1_anim.png new file mode 100644 index 0000000000..e3dfdf879a Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/diamond_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/diamond_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/diamond_layer_2.png new file mode 100644 index 0000000000..f0df486132 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/diamond_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/diamond_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/diamond_layer_2_anim.png new file mode 100644 index 0000000000..df2c81bc95 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/diamond_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/elytra.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/elytra.png new file mode 100644 index 0000000000..85d0f06475 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/elytra.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/elytra_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/elytra_anim.png new file mode 100644 index 0000000000..6f81be7a55 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/elytra_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/gold_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/gold_layer_1.png new file mode 100644 index 0000000000..c4f2c4870a Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/gold_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/gold_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/gold_layer_1_anim.png new file mode 100644 index 0000000000..e7fe806cd9 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/gold_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/gold_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/gold_layer_2.png new file mode 100644 index 0000000000..86ec7962ed Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/gold_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/gold_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/gold_layer_2_anim.png new file mode 100644 index 0000000000..42963ddbac Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/gold_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/iron_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/iron_layer_1.png new file mode 100644 index 0000000000..42d0a0ffd8 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/iron_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/iron_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/iron_layer_1_anim.png new file mode 100644 index 0000000000..b78bf97f81 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/iron_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/iron_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/iron_layer_2.png new file mode 100644 index 0000000000..570258a1e2 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/iron_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/iron_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/iron_layer_2_anim.png new file mode 100644 index 0000000000..33bbe5c061 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/iron_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_1.png new file mode 100644 index 0000000000..3e4559426e Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_1_anim.png new file mode 100644 index 0000000000..f6d709b32f Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_1_overlay.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_1_overlay.png new file mode 100644 index 0000000000..efcdc9eb93 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_1_overlay.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_1_overlay_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_1_overlay_anim.png new file mode 100644 index 0000000000..b78cd17380 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_1_overlay_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_2.png new file mode 100644 index 0000000000..7ea49c878d Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_2_anim.png new file mode 100644 index 0000000000..a7792cef34 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_2_overlay.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_2_overlay.png new file mode 100644 index 0000000000..29320da5f7 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_2_overlay.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_2_overlay_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_2_overlay_anim.png new file mode 100644 index 0000000000..23d5cc0462 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/leather_layer_2_overlay_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/netherite_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/netherite_layer_1.png new file mode 100644 index 0000000000..df45712c62 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/netherite_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/netherite_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/netherite_layer_1_anim.png new file mode 100644 index 0000000000..a018d9ce17 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/netherite_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/netherite_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/netherite_layer_2.png new file mode 100644 index 0000000000..fe21250a90 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/netherite_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/netherite_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/netherite_layer_2_anim.png new file mode 100644 index 0000000000..3510bbc012 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/netherite_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/turtle_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/turtle_layer_1.png new file mode 100644 index 0000000000..810bcc03ee Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/turtle_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/turtle_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/turtle_layer_1_anim.png new file mode 100644 index 0000000000..37b693f1e7 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/aluminium/turtle_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/chainmail_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/chainmail_layer_1.png new file mode 100644 index 0000000000..b07b32b081 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/chainmail_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/chainmail_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/chainmail_layer_1_anim.png new file mode 100644 index 0000000000..806a9ee62d Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/chainmail_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/chainmail_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/chainmail_layer_2.png new file mode 100644 index 0000000000..77a746b8fe Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/chainmail_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/chainmail_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/chainmail_layer_2_anim.png new file mode 100644 index 0000000000..14122f7842 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/chainmail_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/diamond_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/diamond_layer_1.png new file mode 100644 index 0000000000..08f2267323 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/diamond_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/diamond_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/diamond_layer_1_anim.png new file mode 100644 index 0000000000..ac0b0550d8 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/diamond_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/diamond_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/diamond_layer_2.png new file mode 100644 index 0000000000..12c732a227 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/diamond_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/diamond_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/diamond_layer_2_anim.png new file mode 100644 index 0000000000..de170e1d10 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/diamond_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/elytra.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/elytra.png new file mode 100644 index 0000000000..a5c64e3026 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/elytra.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/elytra_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/elytra_anim.png new file mode 100644 index 0000000000..418e1fad1f Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/elytra_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/gold_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/gold_layer_1.png new file mode 100644 index 0000000000..2800b31b5d Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/gold_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/gold_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/gold_layer_1_anim.png new file mode 100644 index 0000000000..ebc338c52e Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/gold_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/gold_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/gold_layer_2.png new file mode 100644 index 0000000000..eabf55b48d Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/gold_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/gold_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/gold_layer_2_anim.png new file mode 100644 index 0000000000..0714713681 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/gold_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/iron_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/iron_layer_1.png new file mode 100644 index 0000000000..cd33678470 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/iron_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/iron_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/iron_layer_1_anim.png new file mode 100644 index 0000000000..5d58ecb18e Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/iron_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/iron_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/iron_layer_2.png new file mode 100644 index 0000000000..6659cb0f7a Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/iron_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/iron_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/iron_layer_2_anim.png new file mode 100644 index 0000000000..907e756138 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/iron_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_1.png new file mode 100644 index 0000000000..63c74d70fd Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_1_anim.png new file mode 100644 index 0000000000..5dc76e7017 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_1_overlay.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_1_overlay.png new file mode 100644 index 0000000000..bc4de48d89 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_1_overlay.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_1_overlay_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_1_overlay_anim.png new file mode 100644 index 0000000000..a7ed35421f Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_1_overlay_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_2.png new file mode 100644 index 0000000000..31ea3316f9 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_2_anim.png new file mode 100644 index 0000000000..04bd78c1af Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_2_overlay.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_2_overlay.png new file mode 100644 index 0000000000..066978bc8b Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_2_overlay.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_2_overlay_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_2_overlay_anim.png new file mode 100644 index 0000000000..77194e6e15 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/leather_layer_2_overlay_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/netherite_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/netherite_layer_1.png new file mode 100644 index 0000000000..965be629e6 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/netherite_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/netherite_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/netherite_layer_1_anim.png new file mode 100644 index 0000000000..286c406ef1 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/netherite_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/netherite_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/netherite_layer_2.png new file mode 100644 index 0000000000..f45397a1ae Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/netherite_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/netherite_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/netherite_layer_2_anim.png new file mode 100644 index 0000000000..5c2248334a Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/netherite_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/trident.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/trident.png new file mode 100644 index 0000000000..ccac8a31ec Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/trident.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/trident.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/trident.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/trident.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/trident_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/trident_anim.png new file mode 100644 index 0000000000..df39a7858b Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/trident_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/turtle_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/turtle_layer_1.png new file mode 100644 index 0000000000..326d4a4b47 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/turtle_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/turtle_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/turtle_layer_1_anim.png new file mode 100644 index 0000000000..401b494082 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barimium/turtle_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/chainmail_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/chainmail_layer_1.png new file mode 100644 index 0000000000..1f8ec1b4fd Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/chainmail_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/chainmail_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/chainmail_layer_1_anim.png new file mode 100644 index 0000000000..fdfc8851a6 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/chainmail_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/chainmail_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/chainmail_layer_2.png new file mode 100644 index 0000000000..35a3921250 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/chainmail_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/chainmail_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/chainmail_layer_2_anim.png new file mode 100644 index 0000000000..0d01bb1667 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/chainmail_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/diamond_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/diamond_layer_1.png new file mode 100644 index 0000000000..52213b38e3 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/diamond_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/diamond_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/diamond_layer_1_anim.png new file mode 100644 index 0000000000..a0392367b7 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/diamond_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/diamond_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/diamond_layer_2.png new file mode 100644 index 0000000000..68aa5b61c5 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/diamond_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/diamond_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/diamond_layer_2_anim.png new file mode 100644 index 0000000000..c0122e4dac Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/diamond_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/elytra.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/elytra.png new file mode 100644 index 0000000000..9e4a4d310a Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/elytra.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/elytra_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/elytra_anim.png new file mode 100644 index 0000000000..e4f08a54c7 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/elytra_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/gold_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/gold_layer_1.png new file mode 100644 index 0000000000..d36acb4f6a Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/gold_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/gold_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/gold_layer_1_anim.png new file mode 100644 index 0000000000..a1090d3241 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/gold_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/gold_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/gold_layer_2.png new file mode 100644 index 0000000000..f9bcce4be5 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/gold_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/gold_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/gold_layer_2_anim.png new file mode 100644 index 0000000000..9c1780d513 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/gold_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/iron_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/iron_layer_1.png new file mode 100644 index 0000000000..e332dd1468 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/iron_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/iron_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/iron_layer_1_anim.png new file mode 100644 index 0000000000..cb96785275 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/iron_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/iron_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/iron_layer_2.png new file mode 100644 index 0000000000..7b90ee4818 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/iron_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/iron_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/iron_layer_2_anim.png new file mode 100644 index 0000000000..55c460ab36 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/iron_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_1.png new file mode 100644 index 0000000000..15ef2567bb Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_1_anim.png new file mode 100644 index 0000000000..cfe2e41791 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_1_overlay.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_1_overlay.png new file mode 100644 index 0000000000..3ffe3cfb20 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_1_overlay.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_1_overlay_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_1_overlay_anim.png new file mode 100644 index 0000000000..0d7da512d6 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_1_overlay_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_2.png new file mode 100644 index 0000000000..c9e3b7e765 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_2_anim.png new file mode 100644 index 0000000000..3c2bee6632 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_2_overlay.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_2_overlay.png new file mode 100644 index 0000000000..587c1dc8a0 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_2_overlay.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_2_overlay_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_2_overlay_anim.png new file mode 100644 index 0000000000..67fa127f1a Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/leather_layer_2_overlay_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/netherite_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/netherite_layer_1.png new file mode 100644 index 0000000000..8e713dc203 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/netherite_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/netherite_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/netherite_layer_1_anim.png new file mode 100644 index 0000000000..e2ec21391b Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/netherite_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/netherite_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/netherite_layer_2.png new file mode 100644 index 0000000000..0ae52e6dca Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/netherite_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/netherite_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/netherite_layer_2_anim.png new file mode 100644 index 0000000000..81eedf4b2e Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/netherite_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/turtle_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/turtle_layer_1.png new file mode 100644 index 0000000000..820e9f5069 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/turtle_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/turtle_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/turtle_layer_1_anim.png new file mode 100644 index 0000000000..a96c113690 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/barium/turtle_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/chainmail_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/chainmail_layer_1.png new file mode 100644 index 0000000000..934b027d61 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/chainmail_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/chainmail_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/chainmail_layer_1_anim.png new file mode 100644 index 0000000000..d99b834ccb Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/chainmail_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/chainmail_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/chainmail_layer_2.png new file mode 100644 index 0000000000..39e79f6940 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/chainmail_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/chainmail_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/chainmail_layer_2_anim.png new file mode 100644 index 0000000000..703f7c340b Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/chainmail_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/diamond_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/diamond_layer_1.png new file mode 100644 index 0000000000..af15595917 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/diamond_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/diamond_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/diamond_layer_1_anim.png new file mode 100644 index 0000000000..f91f963298 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/diamond_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/diamond_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/diamond_layer_2.png new file mode 100644 index 0000000000..9ecbcb65ad Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/diamond_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/diamond_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/diamond_layer_2_anim.png new file mode 100644 index 0000000000..dc14fc625c Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/diamond_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/elytra.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/elytra.png new file mode 100644 index 0000000000..0b84161105 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/elytra.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/elytra_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/elytra_anim.png new file mode 100644 index 0000000000..3362683081 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/elytra_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/gold_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/gold_layer_1.png new file mode 100644 index 0000000000..108912ea00 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/gold_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/gold_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/gold_layer_1_anim.png new file mode 100644 index 0000000000..7ffa6aa4be Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/gold_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/gold_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/gold_layer_2.png new file mode 100644 index 0000000000..2324cf471d Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/gold_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/gold_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/gold_layer_2_anim.png new file mode 100644 index 0000000000..33ba067746 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/gold_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/iron_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/iron_layer_1.png new file mode 100644 index 0000000000..3eaaa5147c Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/iron_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/iron_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/iron_layer_1_anim.png new file mode 100644 index 0000000000..0571d388b9 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/iron_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/iron_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/iron_layer_2.png new file mode 100644 index 0000000000..3de433baf4 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/iron_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/iron_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/iron_layer_2_anim.png new file mode 100644 index 0000000000..4af563b24d Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/iron_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_1.png new file mode 100644 index 0000000000..7c461473e6 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_1_anim.png new file mode 100644 index 0000000000..6fbbc7ecf9 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_1_overlay.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_1_overlay.png new file mode 100644 index 0000000000..e33a4af48e Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_1_overlay.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_1_overlay_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_1_overlay_anim.png new file mode 100644 index 0000000000..595ae48ab9 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_1_overlay_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_2.png new file mode 100644 index 0000000000..b8af9bd796 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_2_anim.png new file mode 100644 index 0000000000..fa4c185c51 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_2_overlay.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_2_overlay.png new file mode 100644 index 0000000000..c9c5b07b76 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_2_overlay.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_2_overlay_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_2_overlay_anim.png new file mode 100644 index 0000000000..7bd02fe38b Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/leather_layer_2_overlay_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/netherite_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/netherite_layer_1.png new file mode 100644 index 0000000000..9bb198d97b Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/netherite_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/netherite_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/netherite_layer_1_anim.png new file mode 100644 index 0000000000..5d97deb417 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/netherite_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/netherite_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/netherite_layer_2.png new file mode 100644 index 0000000000..48312dfd98 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/netherite_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/netherite_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/netherite_layer_2_anim.png new file mode 100644 index 0000000000..08a2cdb2ee Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/netherite_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/turtle_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/turtle_layer_1.png new file mode 100644 index 0000000000..e416310083 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/turtle_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/turtle_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/turtle_layer_1_anim.png new file mode 100644 index 0000000000..f65496542b Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/bismuth/turtle_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/chainmail_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/chainmail_layer_1.png new file mode 100644 index 0000000000..6b71ed139f Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/chainmail_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/chainmail_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/chainmail_layer_1_anim.png new file mode 100644 index 0000000000..22bc585844 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/chainmail_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/chainmail_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/chainmail_layer_2.png new file mode 100644 index 0000000000..2e1f60a210 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/chainmail_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/chainmail_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/chainmail_layer_2_anim.png new file mode 100644 index 0000000000..8653fe0396 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/chainmail_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/diamond_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/diamond_layer_1.png new file mode 100644 index 0000000000..659dcb961c Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/diamond_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/diamond_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/diamond_layer_1_anim.png new file mode 100644 index 0000000000..499ff23909 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/diamond_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/diamond_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/diamond_layer_2.png new file mode 100644 index 0000000000..fbd0fe7624 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/diamond_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/diamond_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/diamond_layer_2_anim.png new file mode 100644 index 0000000000..3de20e61d8 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/diamond_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/elytra.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/elytra.png new file mode 100644 index 0000000000..4f527bb032 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/elytra.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/elytra_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/elytra_anim.png new file mode 100644 index 0000000000..eba09138fe Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/elytra_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/gold_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/gold_layer_1.png new file mode 100644 index 0000000000..75a9e67f48 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/gold_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/gold_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/gold_layer_1_anim.png new file mode 100644 index 0000000000..ea5e5137ce Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/gold_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/gold_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/gold_layer_2.png new file mode 100644 index 0000000000..7bf4692096 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/gold_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/gold_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/gold_layer_2_anim.png new file mode 100644 index 0000000000..a651edfd64 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/gold_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/iron_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/iron_layer_1.png new file mode 100644 index 0000000000..cc8b6a0379 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/iron_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/iron_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/iron_layer_1_anim.png new file mode 100644 index 0000000000..540027524e Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/iron_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/iron_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/iron_layer_2.png new file mode 100644 index 0000000000..e4f8bcb43d Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/iron_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/iron_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/iron_layer_2_anim.png new file mode 100644 index 0000000000..d5331283f7 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/iron_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_1.png new file mode 100644 index 0000000000..8aca4e0004 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_1_anim.png new file mode 100644 index 0000000000..056067ae65 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_1_overlay.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_1_overlay.png new file mode 100644 index 0000000000..181ee0015b Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_1_overlay.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_1_overlay_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_1_overlay_anim.png new file mode 100644 index 0000000000..820c70e74a Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_1_overlay_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_2.png new file mode 100644 index 0000000000..5121951b3a Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_2_anim.png new file mode 100644 index 0000000000..6fc2af41be Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_2_overlay.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_2_overlay.png new file mode 100644 index 0000000000..c42b1ed87a Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_2_overlay.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_2_overlay_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_2_overlay_anim.png new file mode 100644 index 0000000000..6415cfab4b Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/leather_layer_2_overlay_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/netherite_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/netherite_layer_1.png new file mode 100644 index 0000000000..4be97df09c Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/netherite_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/netherite_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/netherite_layer_1_anim.png new file mode 100644 index 0000000000..ce9836b953 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/netherite_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/netherite_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/netherite_layer_2.png new file mode 100644 index 0000000000..a0137fa19f Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/netherite_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/netherite_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/netherite_layer_2_anim.png new file mode 100644 index 0000000000..d1ec136620 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/netherite_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/spyglass.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/spyglass.png new file mode 100644 index 0000000000..b8ec5a450f Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/spyglass.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/spyglass.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/spyglass.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/spyglass.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/spyglass_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/spyglass_anim.png new file mode 100644 index 0000000000..df67093004 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/spyglass_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/trident.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/trident.png new file mode 100644 index 0000000000..f6400ca93e Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/trident.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/trident.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/trident.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/trident.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/trident_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/trident_anim.png new file mode 100644 index 0000000000..c6ad383193 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/trident_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/turtle_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/turtle_layer_1.png new file mode 100644 index 0000000000..614bb6bcfe Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/turtle_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/turtle_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/turtle_layer_1_anim.png new file mode 100644 index 0000000000..18b6ec9c1b Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/curies_bismium/turtle_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/chainmail_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/chainmail_layer_1.png new file mode 100644 index 0000000000..5cbae030f6 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/chainmail_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/chainmail_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/chainmail_layer_1_anim.png new file mode 100644 index 0000000000..d3b7168058 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/chainmail_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/chainmail_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/chainmail_layer_2.png new file mode 100644 index 0000000000..8bc9c3762d Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/chainmail_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/chainmail_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/chainmail_layer_2_anim.png new file mode 100644 index 0000000000..623bca4b83 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/chainmail_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/diamond_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/diamond_layer_1.png new file mode 100644 index 0000000000..d3f0e0b21e Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/diamond_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/diamond_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/diamond_layer_1_anim.png new file mode 100644 index 0000000000..04d1946f2b Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/diamond_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/diamond_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/diamond_layer_2.png new file mode 100644 index 0000000000..6a9f0f76d2 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/diamond_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/diamond_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/diamond_layer_2_anim.png new file mode 100644 index 0000000000..e3d4e3f064 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/diamond_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/elytra.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/elytra.png new file mode 100644 index 0000000000..fe62fcd927 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/elytra.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/elytra_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/elytra_anim.png new file mode 100644 index 0000000000..ebb936910e Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/elytra_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/gold_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/gold_layer_1.png new file mode 100644 index 0000000000..af03432c5f Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/gold_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/gold_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/gold_layer_1_anim.png new file mode 100644 index 0000000000..e7278073ac Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/gold_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/gold_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/gold_layer_2.png new file mode 100644 index 0000000000..60db75505a Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/gold_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/gold_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/gold_layer_2_anim.png new file mode 100644 index 0000000000..b3f55b8a83 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/gold_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/iron_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/iron_layer_1.png new file mode 100644 index 0000000000..b737248758 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/iron_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/iron_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/iron_layer_1_anim.png new file mode 100644 index 0000000000..8561175641 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/iron_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/iron_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/iron_layer_2.png new file mode 100644 index 0000000000..9d80e3675b Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/iron_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/iron_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/iron_layer_2_anim.png new file mode 100644 index 0000000000..c3f4f0d9d8 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/iron_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_1.png new file mode 100644 index 0000000000..7af5034eab Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_1_anim.png new file mode 100644 index 0000000000..1c92971d58 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_1_overlay.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_1_overlay.png new file mode 100644 index 0000000000..8c664e72e4 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_1_overlay.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_1_overlay_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_1_overlay_anim.png new file mode 100644 index 0000000000..74de700cfb Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_1_overlay_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_2.png new file mode 100644 index 0000000000..03e4cfc4b0 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_2_anim.png new file mode 100644 index 0000000000..2b7a450ace Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_2_overlay.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_2_overlay.png new file mode 100644 index 0000000000..b390b1f334 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_2_overlay.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_2_overlay_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_2_overlay_anim.png new file mode 100644 index 0000000000..576ea7a807 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/leather_layer_2_overlay_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/netherite_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/netherite_layer_1.png new file mode 100644 index 0000000000..e9d668a0dc Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/netherite_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/netherite_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/netherite_layer_1_anim.png new file mode 100644 index 0000000000..93b5025dc8 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/netherite_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/netherite_layer_2.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/netherite_layer_2.png new file mode 100644 index 0000000000..77404d33d5 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/netherite_layer_2.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/netherite_layer_2_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/netherite_layer_2_anim.png new file mode 100644 index 0000000000..4df663879c Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/netherite_layer_2_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/trident.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/trident.png new file mode 100644 index 0000000000..40d341d446 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/trident.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/trident.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/trident.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/trident.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/trident_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/trident_anim.png new file mode 100644 index 0000000000..c6d6a1c497 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/trident_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/turtle_layer_1.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/turtle_layer_1.png new file mode 100644 index 0000000000..2bda255969 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/turtle_layer_1.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/turtle_layer_1_anim.png b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/turtle_layer_1_anim.png new file mode 100644 index 0000000000..ff6b11c98f Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/optifine/cit/thorium/turtle_layer_1_anim.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/band/aluminium_band.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/band/aluminium_band.png new file mode 100644 index 0000000000..753515c40b Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/band/aluminium_band.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/band/barimium_band.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/band/barimium_band.png new file mode 100644 index 0000000000..864b3f841f Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/band/barimium_band.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/band/barium_band.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/band/barium_band.png new file mode 100644 index 0000000000..040cf967d1 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/band/barium_band.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/band/bismuth_band.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/band/bismuth_band.png new file mode 100644 index 0000000000..89849ed3b6 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/band/bismuth_band.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/band/curies_bismium_band.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/band/curies_bismium_band.png new file mode 100644 index 0000000000..baf859f68e Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/band/curies_bismium_band.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/band/mundane_band.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/band/mundane_band.png new file mode 100644 index 0000000000..62f600894d Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/band/mundane_band.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/band/thorium_band.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/band/thorium_band.png new file mode 100644 index 0000000000..d5383476d4 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/band/thorium_band.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/lump/baryte.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/lump/baryte.png new file mode 100644 index 0000000000..0a0c7cbd81 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/lump/baryte.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/lump/bauxite.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/lump/bauxite.png new file mode 100644 index 0000000000..0b902e2b2c Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/lump/bauxite.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/lump/bismutite.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/lump/bismutite.png new file mode 100644 index 0000000000..6c770745bf Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/lump/bismutite.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/lump/thorianite.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/lump/thorianite.png new file mode 100644 index 0000000000..21233ff5ad Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/lump/thorianite.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/axe.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/axe.png new file mode 100644 index 0000000000..18e907081b Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/axe.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/axe.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/axe.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/axe.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/boots.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/boots.png new file mode 100644 index 0000000000..a505b95bce Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/boots.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/boots.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/boots.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/boots.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/broken_elytra.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/broken_elytra.png new file mode 100644 index 0000000000..25890c5914 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/broken_elytra.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/broken_elytra.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/broken_elytra.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/broken_elytra.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/chestplate.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/chestplate.png new file mode 100644 index 0000000000..ebc1cb2ece Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/chestplate.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/chestplate.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/chestplate.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/chestplate.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/elytra.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/elytra.png new file mode 100644 index 0000000000..f973f4d2bb Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/elytra.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/elytra.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/elytra.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/elytra.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/helmet.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/helmet.png new file mode 100644 index 0000000000..e37f088587 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/helmet.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/helmet.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/helmet.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/helmet.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/hoe.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/hoe.png new file mode 100644 index 0000000000..27efb63ef3 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/hoe.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/hoe.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/hoe.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/hoe.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/leather_leggings.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/leather_leggings.png new file mode 100644 index 0000000000..e77dc67deb Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/leather_leggings.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/leather_leggings.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/leather_leggings.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/leather_leggings.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/leggings.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/leggings.png new file mode 100644 index 0000000000..c5e4457a13 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/leggings.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/leggings.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/leggings.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/leggings.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/netherite_helmet.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/netherite_helmet.png new file mode 100644 index 0000000000..10521ffa15 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/netherite_helmet.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/netherite_helmet.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/netherite_helmet.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/netherite_helmet.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/pickaxe.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/pickaxe.png new file mode 100644 index 0000000000..88a57aab29 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/pickaxe.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/pickaxe.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/pickaxe.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/pickaxe.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/shears.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/shears.png new file mode 100644 index 0000000000..9cb20901de Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/shears.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/shears.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/shears.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/shears.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/shovel.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/shovel.png new file mode 100644 index 0000000000..8585f18a8b Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/shovel.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/shovel.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/shovel.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/shovel.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/turtle_helmet.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/turtle_helmet.png new file mode 100644 index 0000000000..12b0d1d0fe Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/turtle_helmet.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/turtle_helmet.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/turtle_helmet.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/aluminium/turtle_helmet.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/compass.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/compass.png new file mode 100644 index 0000000000..ac5c33a7c5 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/compass.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/compass.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/compass.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/compass.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/hoe.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/hoe.png new file mode 100644 index 0000000000..7352b3f6d2 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/hoe.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/hoe.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/hoe.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/hoe.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/sword.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/sword.png new file mode 100644 index 0000000000..d6b09e880b Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/sword.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/sword.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/sword.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/sword.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/trident.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/trident.png new file mode 100644 index 0000000000..ac49f69c7e Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/trident.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/trident.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/trident.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barimium/trident.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/axe.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/axe.png new file mode 100644 index 0000000000..784fc9d521 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/axe.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/axe.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/axe.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/axe.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/chestplate.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/chestplate.png new file mode 100644 index 0000000000..92d476377d Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/chestplate.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/chestplate.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/chestplate.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/chestplate.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/compass.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/compass.png new file mode 100644 index 0000000000..778e99d452 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/compass.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/compass.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/compass.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/compass.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/hoe.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/hoe.png new file mode 100644 index 0000000000..813b9f9920 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/hoe.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/hoe.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/hoe.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/hoe.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/pickaxe.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/pickaxe.png new file mode 100644 index 0000000000..8b71b243ce Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/pickaxe.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/pickaxe.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/pickaxe.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/pickaxe.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/shovel.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/shovel.png new file mode 100644 index 0000000000..4b187fdcc9 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/shovel.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/shovel.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/shovel.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/barium/shovel.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/axe.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/axe.png new file mode 100644 index 0000000000..bf8a7962aa Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/axe.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/axe.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/axe.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/axe.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/boots.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/boots.png new file mode 100644 index 0000000000..2d3175ddef Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/boots.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/boots.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/boots.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/boots.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/fishing_rod.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/fishing_rod.png new file mode 100644 index 0000000000..6c8fee80df Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/fishing_rod.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/fishing_rod.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/fishing_rod.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/fishing_rod.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/pickaxe.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/pickaxe.png new file mode 100644 index 0000000000..067fa0cc36 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/pickaxe.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/pickaxe.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/pickaxe.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/pickaxe.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/shovel.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/shovel.png new file mode 100644 index 0000000000..63255a42e5 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/shovel.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/shovel.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/shovel.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/shovel.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/sword.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/sword.png new file mode 100644 index 0000000000..215220e1e4 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/sword.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/sword.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/sword.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/bismuth/sword.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/axe.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/axe.png new file mode 100644 index 0000000000..1907ed4aed Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/axe.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/axe.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/axe.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/axe.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/boots.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/boots.png new file mode 100644 index 0000000000..5d95cf59c9 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/boots.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/boots.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/boots.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/boots.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/bow.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/bow.png new file mode 100644 index 0000000000..5baf5cf408 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/bow.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/bow.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/bow.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/bow.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/broken_elytra.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/broken_elytra.png new file mode 100644 index 0000000000..dd1b524897 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/broken_elytra.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/broken_elytra.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/broken_elytra.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/broken_elytra.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/bucket.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/bucket.png new file mode 100644 index 0000000000..866056e946 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/bucket.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/bucket.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/bucket.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/bucket.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/chestplate.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/chestplate.png new file mode 100644 index 0000000000..fc35015c55 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/chestplate.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/chestplate.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/chestplate.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/chestplate.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/clock.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/clock.png new file mode 100644 index 0000000000..ca1d3503cc Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/clock.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/clock.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/clock.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/clock.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/compass.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/compass.png new file mode 100644 index 0000000000..f5fee79b3b Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/compass.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/compass.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/compass.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/compass.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/crossbow.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/crossbow.png new file mode 100644 index 0000000000..89fe1ca38f Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/crossbow.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/crossbow.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/crossbow.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/crossbow.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/elytra.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/elytra.png new file mode 100644 index 0000000000..bd82c77068 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/elytra.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/elytra.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/elytra.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/elytra.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/fishing_rod.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/fishing_rod.png new file mode 100644 index 0000000000..afe03ec7f5 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/fishing_rod.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/fishing_rod.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/fishing_rod.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/fishing_rod.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/flint_and_steel.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/flint_and_steel.png new file mode 100644 index 0000000000..15ffdc709c Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/flint_and_steel.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/flint_and_steel.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/flint_and_steel.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/flint_and_steel.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/helmet.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/helmet.png new file mode 100644 index 0000000000..ce307c9d18 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/helmet.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/helmet.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/helmet.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/helmet.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/hoe.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/hoe.png new file mode 100644 index 0000000000..dae6fa4adb Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/hoe.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/hoe.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/hoe.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/hoe.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/leather_leggings.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/leather_leggings.png new file mode 100644 index 0000000000..9bec9f6ed5 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/leather_leggings.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/leather_leggings.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/leather_leggings.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/leather_leggings.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/leggings.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/leggings.png new file mode 100644 index 0000000000..64bb86c0b6 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/leggings.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/leggings.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/leggings.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/leggings.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/netherite_helmet.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/netherite_helmet.png new file mode 100644 index 0000000000..f9862ad4e2 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/netherite_helmet.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/netherite_helmet.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/netherite_helmet.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/netherite_helmet.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/pickaxe.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/pickaxe.png new file mode 100644 index 0000000000..0837662ee3 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/pickaxe.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/pickaxe.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/pickaxe.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/pickaxe.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/shears.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/shears.png new file mode 100644 index 0000000000..b780c99e04 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/shears.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/shears.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/shears.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/shears.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/shovel.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/shovel.png new file mode 100644 index 0000000000..5063054579 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/shovel.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/shovel.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/shovel.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/shovel.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/spyglass.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/spyglass.png new file mode 100644 index 0000000000..ff14975804 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/spyglass.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/spyglass.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/spyglass.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/spyglass.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/sword.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/sword.png new file mode 100644 index 0000000000..e362967bd8 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/sword.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/sword.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/sword.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/sword.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/trident.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/trident.png new file mode 100644 index 0000000000..a160444608 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/trident.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/trident.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/trident.png.mcmeta new file mode 100644 index 0000000000..95234768e0 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/trident.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 55 + }, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/turtle_helmet.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/turtle_helmet.png new file mode 100644 index 0000000000..749cf15878 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/turtle_helmet.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/turtle_helmet.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/turtle_helmet.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/curies_bismium/turtle_helmet.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/thorium/boots.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/thorium/boots.png new file mode 100644 index 0000000000..c1d7fda9db Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/thorium/boots.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/thorium/boots.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/thorium/boots.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/thorium/boots.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/thorium/sword.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/thorium/sword.png new file mode 100644 index 0000000000..815090735e Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/thorium/sword.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/thorium/sword.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/thorium/sword.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/thorium/sword.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/thorium/trident.png b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/thorium/trident.png new file mode 100644 index 0000000000..3bbeef52d4 Binary files /dev/null and b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/thorium/trident.png differ diff --git a/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/thorium/trident.png.mcmeta b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/thorium/trident.png.mcmeta new file mode 100644 index 0000000000..41f2e6a154 --- /dev/null +++ b/gm4_metallurgy/assets/gm4_metallurgy/textures/item/shamir/thorium/trident.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3] + } +} \ No newline at end of file diff --git a/gm4_metallurgy/assets/model_data.yaml b/gm4_metallurgy/assets/model_data.yaml new file mode 100644 index 0000000000..958127a55c --- /dev/null +++ b/gm4_metallurgy/assets/model_data.yaml @@ -0,0 +1,105 @@ +model_data: + - item: player_head + template: generated + broadcast: + - textures: item/band/mundane_band + reference: item/mundane_band + - reference: item/lump/baryte + - reference: item/lump/bauxite + - reference: item/lump/bismutite + - reference: item/lump/thorianite + - item: player_head + template: vanilla + broadcast: + - reference: block/mould/cool_empty + - reference: block/mould/hot_empty + - reference: block/mould/cool_metal + - reference: block/mould/hot_metal + - item: obsidian + reference: item/slightly_damaged_obsidian + template: vanilla + - reference: shamir/defuse + item: armor + template: + name: shamir + metal: aluminium + textures_path: item/shamir/aluminium + - reference: shamir/moneo + item: [tools, elytra, shears] + template: + name: shamir + metal: aluminium + textures_path: item/shamir/aluminium + - reference: shamir/arborenda + item: axes + template: + name: shamir + metal: barium + textures_path: item/shamir/barium + - reference: shamir/sensus + item: compass + template: + name: shamir + metal: barium + textures_path: item/shamir/barium + - reference: shamir/gemini + item: hoes + template: + name: shamir + metal: barimium + textures_path: item/shamir/barimium + - reference: shamir/musical + item: [swords, trident] + template: + name: shamir + metal: barimium + textures_path: item/shamir/barimium + - reference: shamir/forterra + item: pickaxes + template: + name: shamir + metal: bismuth + textures_path: item/shamir/bismuth + - reference: shamir/hypexperia + item: [swords, pickaxes, axes, shovels, fishing_rod] + template: + name: shamir + metal: bismuth + textures_path: item/shamir/bismuth + - reference: shamir/vibro + item: boots + template: + name: shamir + metal: thorium + textures_path: item/shamir/thorium + - reference: shamir/ender_bolt + item: [swords, trident] + template: + name: shamir + metal: thorium + textures_path: item/shamir/thorium + - reference: shamir/infinitas + item: buckets + template: + name: shamir + metal: curies_bismium + textures_path: item/shamir/curies_bismium + - reference: shamir/tinker + item: [pickaxes, shovels, hoes, swords] + template: + name: shamir + metal: curies_bismium + textures_path: item/shamir/curies_bismium + - item: lava_bucket + reference: gui/advancement/metallurgy_overheat_cast + template: advancement + - item: player_head + reference: gui/advancement/metallurgy_blast_ore + template: + name: advancement + forward: item/lump/bauxite + - item: player_head + reference: gui/advancement/metallurgy_cast + template: + name: advancement + forward: shamir/defuse/band diff --git a/gm4_metallurgy/assets/translations.csv b/gm4_metallurgy/assets/translations.csv new file mode 100644 index 0000000000..df7a279f50 --- /dev/null +++ b/gm4_metallurgy/assets/translations.csv @@ -0,0 +1,112 @@ +key,en_us +advancement.gm4.metallurgy.blast_ore.description,Blast open some rock and find the metal within. +advancement.gm4.metallurgy.blast_ore.title,How Ad-ore-able +advancement.gm4.metallurgy.cast.description,Create a mould and add some metal. +advancement.gm4.metallurgy.cast.title,Firebender +advancement.gm4.metallurgy.overheat_cast.description,Destroy a mould containing molten metal. +advancement.gm4.metallurgy.overheat_cast.title,Blame Me for the Mess +item.gm4.metallurgy.aluminium,Aluminium +item.gm4.metallurgy.band,%s Band +item.gm4.metallurgy.barimium,Barimium +item.gm4.metallurgy.barium,Barium +item.gm4.metallurgy.baryte_lump,Baryte Lump +item.gm4.metallurgy.bauxite_lump,Bauxite Lump +item.gm4.metallurgy.mundane_band,Mundane Band +item.gm4.metallurgy.obsidian_cast,Obsidian Cast +item.gm4.metallurgy.shamir,Shamir +item.gm4.metallurgy.thorianite_lump,Thorianite Lump +item.gm4.metallurgy.thorium,Thorium +item.gm4.shamir.arborenda,Arborenda +item.gm4.shamir.defuse,Defuse +item.gm4.shamir.ender_bolt,Ender Bolt +item.gm4.shamir.forterra,Forterra +item.gm4.shamir.gemini,Gemini +item.gm4.shamir.hypexperia,Hypexperia +item.gm4.shamir.moneo,Moneo +item.gm4.shamir.musical,Musical +item.gm4.shamir.sensus,Sensus +item.gm4.shamir.tinker,Tinker +item.gm4.slightly_damaged_obsidian,Slightly Damaged Obsidian +item.gm4.slightly_overheated_obsidian,Slightly Overheated Obsidian +text.gm4.metallurgy.aluminium,Aluminium +text.gm4.metallurgy.barium,Barium +text.gm4.metallurgy.contains,Contains +text.gm4.metallurgy.thorium,Thorium +item.gm4.shamir.vibro,Vibro +text.gm4.metallurgy.copper,Copper +item.gm4.metallurgy.malachite_lump,Malachite Lump +item.gm4.shamir.infinitas,Infinitas +item.gm4.metallurgy.curies_bismium,Curie's Bismium +item.gm4.metallurgy.bismuth.red,B +item.gm4.metallurgy.bismuth.orange,i +item.gm4.metallurgy.bismuth.yellow,s +item.gm4.metallurgy.bismuth.green,m +item.gm4.metallurgy.bismuth.blue,u +item.gm4.metallurgy.bismuth.purple,t +item.gm4.metallurgy.bismuth.magenta,h +item.gm4.metallurgy.bismuth_band.red,Bi +item.gm4.metallurgy.bismuth_band.orange,sm +item.gm4.metallurgy.bismuth_band.yellow,ut +item.gm4.metallurgy.bismuth_band.green,"h " +item.gm4.metallurgy.bismuth_band.blue,Ba +item.gm4.metallurgy.bismuth_band.purple,nd +item.gm4.metallurgy.bismuth_band.magenta,\u200c +item.gm4.metallurgy.thorium_brass,Thorium Brass +item.gm4.metallurgy.bismutite_lump,Bismutite Lump +item.gm4.metallurgy.copper,Copper +text.gm4.guidebook.module_desc.arborenda_shamir,"Introduces 4 custom ores, 6 custom metals and a whole bunch of custom enchants to the game. Cast metal bands that hold magical properties called 'Shamirs' and upgrade your armour and tools with them!" +text.gm4.guidebook.arborenda_shamir.description,Arborenda boosts a single swing to be able to knock down an entire tree. +text.gm4.guidebook.arborenda_shamir.usage,"The Arborenda Shamir is found on Barium Bands. It can be placed onto axes.\n\nWhen mining a log, the entire tree will also break, taking up durability of the axe for each log broken." +text.gm4.guidebook.module_desc.defuse_shamir,"Introduces 4 custom ores, 6 custom metals and a whole bunch of custom enchants to the game. Cast metal bands that hold magical properties called 'Shamirs' and upgrade your armour and tools with them!" +text.gm4.guidebook.defuse_shamir.description,Defuse prevents nearby Creepers from exploding. +text.gm4.guidebook.defuse_shamir.usage,"The Defuse Shamir is found on Aluminium Bands. It can be placed onto armour.\n\nNearby creepers will become defused, and will never be able to explode." +text.gm4.guidebook.module_desc.ender_bolt_shamir,"Introduces 4 custom ores, 6 custom metals and a whole bunch of custom enchants to the game. Cast metal bands that hold magical properties called 'Shamirs' and upgrade your armour and tools with them!" +text.gm4.guidebook.ender_bolt_shamir.description,Ender Bolt creates a damaging wither chain when attacking a mob. +text.gm4.guidebook.ender_bolt_shamir.usage,"The Ender Bolt Shamir is found on Thorium Bands. It can be placed onto swords and tridents.\n\nA mob hit will Ender Bolt will wither away, passing the effect to other nearby mobs." +text.gm4.guidebook.module_desc.forterra_shamir,"Introduces 4 custom ores, 6 custom metals and a whole bunch of custom enchants to the game. Cast metal bands that hold magical properties called 'Shamirs' and upgrade your armour and tools with them!" +text.gm4.guidebook.forterra_shamir.description,"Forterra causes extra raw metals, redstone, and amethyst to be found when mining stone." +text.gm4.guidebook.forterra_shamir.usage,"The Forterra Shamir is found on Bismuth Bands. It can be placed onto pickaxes.\n\nWhen mining stone, raw copper, raw iron, raw gold, redstone, and amethyst shards will drop. Drop rates are height dependent." +text.gm4.guidebook.module_desc.gemini_shamir,"Introduces 4 custom ores, 6 custom metals and a whole bunch of custom enchants to the game. Cast metal bands that hold magical properties called 'Shamirs' and upgrade your armour and tools with them!" +text.gm4.guidebook.gemini_shamir.description,Gemini modifies breeding to always produce twins. +text.gm4.guidebook.gemini_shamir.usage,The Gemini Shamir is found on Barimium Bands. It can be placed onto hoes.\n\nHolding the hoe in the offhand will cause any bred animals to produce identical twins. +text.gm4.guidebook.module_desc.hypexperia_shamir,"Introduces 4 custom ores, 6 custom metals and a whole bunch of custom enchants to the game. Cast metal bands that hold magical properties called 'Shamirs' and upgrade your armour and tools with them!" +text.gm4.guidebook.hypexperia_shamir.description,Hypexperia causes extra experience to drop from all sources of experience orbs. +text.gm4.guidebook.hypexperia_shamir.usage,"The Hypexperia Shamir is found on Bismuth Bands. It can be placed onto tools, swords, and fishing rods.\n\nNearby experience orbs will double in value when the item is held." +text.gm4.guidebook.module_desc.infinitas_shamir,"Introduces 4 custom ores, 6 custom metals and a whole bunch of custom enchants to the game. Cast metal bands that hold magical properties called 'Shamirs' and upgrade your armour and tools with them!" +text.gm4.guidebook.infinitas_shamir.description,Infinitas items are infinite liquid sources. It also pulls mobs and items towards the user. +text.gm4.guidebook.infinitas_shamir.usage,The Infinitas Shamir is found on Curie's Bismium Bands. It can be placed onto empty or filled buckets.\n\nInfinitas buckets can be used infinitely and will never get filled (if empty) or drained (if full). +text.gm4.guidebook.infinitas_shamir.vacuum,Holding an empty infinitas bucket will attract mobs and items in an 11x11 area.\n\nMobs affected by infinitas will be on cooldown until the user moves away or deselects the bucket. +text.gm4.guidebook.module_desc.metallurgy,"Introduces 4 custom ores, 6 custom metals and a whole bunch of custom enchants to the game. Cast metal bands that hold magical properties called 'Shamirs' and upgrade your armour and tools with them!" +text.gm4.guidebook.metallurgy.description,"Custom abilities, called shamirs, can be added to tools and armour, like enchantments.\n\nShamirs are exclusive, meaning only one can be applied to an item at a time." +text.gm4.guidebook.metallurgy.section.lump_obtaining,Obtaining Ore +text.gm4.guidebook.metallurgy.lump_obtaining,"Blowing up stone-type blocks with tnt will drop metal ore lumps.\n\nEach of the four stone types (stone, granite, andesite, and diorite) drop a different metal lump." +text.gm4.guidebook.metallurgy.section.casting,Casting +text.gm4.guidebook.metallurgy.mould,A mould can be created by dropping 1 obsidian and 1 clay ball on a sand block.\n\nMoulds must be heated by placing lava on top of them. Overheating a mould causes it to smoke and break. +text.gm4.guidebook.metallurgy.mould_1,"Without lava, the mould will cool over time and must be reheated to added metal.\n\nIf no metal is added to the cast before it completely cools down, the obsidian will drop, losing the clay ball." +text.gm4.guidebook.metallurgy.adding_metal,Ore lumps can be dropped in one by one into a heated mould. 23 ore lumps must be added for a proper cast.\n\nAlloys can be made using a 17-6 ratio: Aluminium + Barium or Thorium + Bismuth. +text.gm4.guidebook.metallurgy.recycling,"If a cast is dropped into the mould, it will return the obsidian and about half of its metal will recycled.\n\nPure metal bands supply 12 ore of their metal, while alloy metal bands supply 9 primary ore and 3 secondary ore." +text.gm4.guidebook.metallurgy.cooling,"Once a mould completely cools down, a Shamir Band will form.\n\nIf the casting process was done incorrectly, a useless Mundane Band will be on the cast." +text.gm4.guidebook.metallurgy.section.shamirs,Shamirs +text.gm4.guidebook.metallurgy.metal_properties,"Each band type has a specific attribute.\n\nBismuth is creation, Thorium is destruction, and Curie's Bismium is equivalence." +text.gm4.guidebook.metallurgy.metal_properties_1,"Alluminium is supression, Barium is amplification, and Barimium is modification." +text.gm4.guidebook.metallurgy.smooshing,"To attach a shamir to an item, drop the cast and item on an anvil.\n\n'Smoosh' them together by powering a downwards facing piston placed two blocks above the anvil." +text.gm4.guidebook.metallurgy.smooshing_1,"To detach a shamir, do the same 'smooshing' process after dropping the shamir-bearing item and one obsidian." +text.gm4.guidebook.module_desc.moneo_shamir,"Introduces 4 custom ores, 6 custom metals and a whole bunch of custom enchants to the game. Cast metal bands that hold magical properties called 'Shamirs' and upgrade your armour and tools with them!" +text.gm4.guidebook.moneo_shamir.description,Moneo slows mining and flying when durability is low. +text.gm4.guidebook.moneo_shamir.usage,"The Moneo Shamir is found on Aluminium Bands. It can be placed onto tools, shears, and elytra.\n\nLow durability tools will cause mining fatigue, and low durability elytra will cause slowness and blindness." +text.gm4.guidebook.module_desc.musical_shamir,"Introduces 4 custom ores, 6 custom metals and a whole bunch of custom enchants to the game. Cast metal bands that hold magical properties called 'Shamirs' and upgrade your armour and tools with them!" +text.gm4.guidebook.musical_shamir.description,Musical modifies strength and speed based on consecutive mob kills. +text.gm4.guidebook.musical_shamir.usage,"The Musical Shamir is found on Barimium Bands. It can be placed onto swords.\n\nWhen killing mobs, music is played and Slowness and Strength I are granted." +text.gm4.guidebook.musical_shamir.usage_1,"After many kills, the music will become darker, and Speed and Strength III are granted instead." +text.gm4.guidebook.module_desc.sensus_shamir,"Introduces 4 custom ores, 6 custom metals and a whole bunch of custom enchants to the game. Cast metal bands that hold magical properties called 'Shamirs' and upgrade your armour and tools with them!" +text.gm4.guidebook.sensus_shamir.description,"Sensus enhances mining, by playing sounds from neaby ores." +text.gm4.guidebook.sensus_shamir.usage,The Sensus Shamir is found on Barium Bands. It can be placed onto compasses.\n\nHolding the compass will play sounds from nearby ores in a 7x7x5 area centered at the user. +text.gm4.guidebook.module_desc.tinker_shamir,"Introduces 4 custom ores, 6 custom metals and a whole bunch of custom enchants to the game. Cast metal bands that hold magical properties called 'Shamirs' and upgrade your armour and tools with them!" +text.gm4.guidebook.tinker_shamir.description,Tinker causes items to be converted to their equivalent storage block form. +text.gm4.guidebook.tinker_shamir.usage,"The Tinker Shamir is found on Curie's Bismium Bands. It can be placed onto pickaxes, shovels, hoes, and swords.\n\nHolding the tool will convert items into their block form, such as iron ingots to iron blocks." +text.gm4.guidebook.tinker_shamir.usage_pickaxes,"Each tool tinkers a set of items, matching the tool.\n\nPickaxes will tinker emeralds, diamonds, redstone, coal, lapis, gold ingots, iron ingots, gold nuggets, and iron nuggets." +text.gm4.guidebook.tinker_shamir.usage_other_tools,Shovels will tinker snow balls and clay balls.\n\nHoes will tinker melon slices and wheat.\n\nSwords will tinker slime balls. +text.gm4.guidebook.module_desc.vibro_shamir,"Introduces 4 custom ores, 6 custom metals and a whole bunch of custom enchants to the game. Cast metal bands that hold magical properties called 'Shamirs' and upgrade your armour and tools with them!" +text.gm4.guidebook.vibro_shamir.description,Vibro grants high jumps and creates deadly shockwaves. +text.gm4.guidebook.vibro_shamir.usage,"The Vibro Shamir is found on Thorium Bands. It can be placed onto boots.\n\nWhen sneaking, users who take fall damage will hurt mobs within a 6 block radius. Damage is based on distance from the user and the blocks between." +text.gm4.guidebook.vibro_shamir.jump_boost,"Sneaking on the ground will allow the user to gain temporary jump boost. The level of jump boost is dependent on the sneak time.\n\nWhen using the Vibro Jump, the user will take damage when landing." diff --git a/gm4_metallurgy/beet.yaml b/gm4_metallurgy/beet.yaml index e1e825d04d..07ae5e6c51 100644 --- a/gm4_metallurgy/beet.yaml +++ b/gm4_metallurgy/beet.yaml @@ -5,7 +5,11 @@ version: 1.4.X data_pack: load: . +resource_pack: + load: . + pipeline: + - shamir_model_template - gm4.plugins.extend.module - gm4.plugins.include.lib_lore - gm4.plugins.include.lib_player_heads @@ -63,3 +67,4 @@ meta: - Memo Icon Design: - DuckJr + diff --git a/gm4_metallurgy/data/gm4/advancements/metallurgy_blast_ore.json b/gm4_metallurgy/data/gm4/advancements/metallurgy_blast_ore.json index 6608acce15..d2c2722306 100644 --- a/gm4_metallurgy/data/gm4/advancements/metallurgy_blast_ore.json +++ b/gm4_metallurgy/data/gm4/advancements/metallurgy_blast_ore.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:player_head", - "nbt": "{CustomModelData:3420049,SkullOwner:\"$gm4_metallurgy:ore/aluminium\"}" + "nbt": "{CustomModelData:'gui/advancement/metallurgy_blast_ore',SkullOwner:\"$gm4_metallurgy:ore/aluminium\"}" }, "title": { "translate": "advancement.gm4.metallurgy.blast_ore.title", diff --git a/gm4_metallurgy/data/gm4/advancements/metallurgy_cast.json b/gm4_metallurgy/data/gm4/advancements/metallurgy_cast.json index 18b01144ce..218937e925 100644 --- a/gm4_metallurgy/data/gm4/advancements/metallurgy_cast.json +++ b/gm4_metallurgy/data/gm4/advancements/metallurgy_cast.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:player_head", - "nbt": "{CustomModelData:3420050,SkullOwner:\"$gm4_metallurgy:band/aluminium\"}" + "nbt": "{CustomModelData:'gui/advancement/metallurgy_cast',SkullOwner:\"$gm4_metallurgy:band/aluminium\"}" }, "title": { "translate": "advancement.gm4.metallurgy.cast.title", diff --git a/gm4_metallurgy/data/gm4/advancements/metallurgy_overheat_cast.json b/gm4_metallurgy/data/gm4/advancements/metallurgy_overheat_cast.json index 5466870ba2..049e6646dc 100644 --- a/gm4_metallurgy/data/gm4/advancements/metallurgy_overheat_cast.json +++ b/gm4_metallurgy/data/gm4/advancements/metallurgy_overheat_cast.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:lava_bucket", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/metallurgy_overheat_cast'}" }, "title": { "translate": "advancement.gm4.metallurgy.overheat_cast.title", diff --git a/gm4_metallurgy/data/gm4_arborenda_shamir/guidebook/arborenda_shamir.json b/gm4_metallurgy/data/gm4_arborenda_shamir/guidebook/arborenda_shamir.json index d09f7db81f..f51d9c2f86 100644 --- a/gm4_metallurgy/data/gm4_arborenda_shamir/guidebook/arborenda_shamir.json +++ b/gm4_metallurgy/data/gm4_arborenda_shamir/guidebook/arborenda_shamir.json @@ -5,8 +5,7 @@ "load_check": "metallurgy", "base_module": "metallurgy", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420112}" + "item": "minecraft:anvil" }, "criteria": { "obtain_arborenda_shamir": { diff --git a/gm4_metallurgy/data/gm4_arborenda_shamir/loot_tables/band.json b/gm4_metallurgy/data/gm4_arborenda_shamir/loot_tables/band.json index b3a1db886d..4b7cdf97a9 100644 --- a/gm4_metallurgy/data/gm4_arborenda_shamir/loot_tables/band.json +++ b/gm4_metallurgy/data/gm4_arborenda_shamir/loot_tables/band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420112,SkullOwner:{Name:\"[Drop to Fix Item] gm4_arborenda_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"arborenda\"}}" + "tag": "{CustomModelData:'shamir/arborenda',SkullOwner:{Name:\"[Drop to Fix Item] gm4_arborenda_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"arborenda\"}}" }, { "function": "minecraft:set_lore", diff --git a/gm4_metallurgy/data/gm4_defuse_shamir/guidebook/defuse_shamir.json b/gm4_metallurgy/data/gm4_defuse_shamir/guidebook/defuse_shamir.json index b273ab11fa..39bb8150eb 100644 --- a/gm4_metallurgy/data/gm4_defuse_shamir/guidebook/defuse_shamir.json +++ b/gm4_metallurgy/data/gm4_defuse_shamir/guidebook/defuse_shamir.json @@ -5,8 +5,7 @@ "load_check": "metallurgy", "base_module": "metallurgy", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420106}" + "item": "minecraft:anvil" }, "criteria": { "obtain_defuse_shamir": { diff --git a/gm4_metallurgy/data/gm4_defuse_shamir/loot_tables/band.json b/gm4_metallurgy/data/gm4_defuse_shamir/loot_tables/band.json index b8a4696466..d1861ba421 100644 --- a/gm4_metallurgy/data/gm4_defuse_shamir/loot_tables/band.json +++ b/gm4_metallurgy/data/gm4_defuse_shamir/loot_tables/band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420106,SkullOwner:{Name:\"[Drop to Fix Item] gm4_defuse_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"defuse\"}}" + "tag": "{CustomModelData:'shamir/defuse',SkullOwner:{Name:\"[Drop to Fix Item] gm4_defuse_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"defuse\"}}" }, { "function": "minecraft:set_lore", diff --git a/gm4_metallurgy/data/gm4_ender_bolt_shamir/guidebook/ender_bolt_shamir.json b/gm4_metallurgy/data/gm4_ender_bolt_shamir/guidebook/ender_bolt_shamir.json index 98aad4b19b..0d712831a4 100644 --- a/gm4_metallurgy/data/gm4_ender_bolt_shamir/guidebook/ender_bolt_shamir.json +++ b/gm4_metallurgy/data/gm4_ender_bolt_shamir/guidebook/ender_bolt_shamir.json @@ -5,8 +5,7 @@ "load_check": "metallurgy", "base_module": "metallurgy", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420105}" + "item": "minecraft:anvil" }, "criteria": { "obtain_ender_bolt_shamir": { diff --git a/gm4_metallurgy/data/gm4_ender_bolt_shamir/loot_tables/band.json b/gm4_metallurgy/data/gm4_ender_bolt_shamir/loot_tables/band.json index 48da427233..1e3b518d7d 100644 --- a/gm4_metallurgy/data/gm4_ender_bolt_shamir/loot_tables/band.json +++ b/gm4_metallurgy/data/gm4_ender_bolt_shamir/loot_tables/band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420105,SkullOwner:{Name:\"[Drop to Fix Item] gm4_ender_bolt_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"ender_bolt\"}}" + "tag": "{CustomModelData:'shamir/ender_bolt',SkullOwner:{Name:\"[Drop to Fix Item] gm4_ender_bolt_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"ender_bolt\"}}" }, { "function": "minecraft:set_lore", diff --git a/gm4_metallurgy/data/gm4_forterra_shamir/guidebook/forterra_shamir.json b/gm4_metallurgy/data/gm4_forterra_shamir/guidebook/forterra_shamir.json index 5e635a6d53..57a9a522be 100644 --- a/gm4_metallurgy/data/gm4_forterra_shamir/guidebook/forterra_shamir.json +++ b/gm4_metallurgy/data/gm4_forterra_shamir/guidebook/forterra_shamir.json @@ -5,8 +5,7 @@ "load_check": "metallurgy", "base_module": "metallurgy", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420107}" + "item": "minecraft:anvil" }, "criteria": { "obtain_forterra_shamir": { diff --git a/gm4_metallurgy/data/gm4_forterra_shamir/loot_tables/band.json b/gm4_metallurgy/data/gm4_forterra_shamir/loot_tables/band.json index e61bf2be66..32e360eedd 100644 --- a/gm4_metallurgy/data/gm4_forterra_shamir/loot_tables/band.json +++ b/gm4_metallurgy/data/gm4_forterra_shamir/loot_tables/band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420107,SkullOwner:{Name:\"[Drop to Fix Item] gm4_forterra_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"forterra\"}}" + "tag": "{CustomModelData:'shamir/forterra',SkullOwner:{Name:\"[Drop to Fix Item] gm4_forterra_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"forterra\"}}" }, { "function": "minecraft:set_lore", diff --git a/gm4_metallurgy/data/gm4_gemini_shamir/guidebook/gemini_shamir.json b/gm4_metallurgy/data/gm4_gemini_shamir/guidebook/gemini_shamir.json index d0baa9202c..74c1aa8b83 100644 --- a/gm4_metallurgy/data/gm4_gemini_shamir/guidebook/gemini_shamir.json +++ b/gm4_metallurgy/data/gm4_gemini_shamir/guidebook/gemini_shamir.json @@ -5,8 +5,7 @@ "load_check": "metallurgy", "base_module": "metallurgy", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420109}" + "item": "minecraft:anvil" }, "criteria": { "obtain_gemini_shamir": { diff --git a/gm4_metallurgy/data/gm4_gemini_shamir/loot_tables/band.json b/gm4_metallurgy/data/gm4_gemini_shamir/loot_tables/band.json index d5f88a7aed..35cb23818d 100644 --- a/gm4_metallurgy/data/gm4_gemini_shamir/loot_tables/band.json +++ b/gm4_metallurgy/data/gm4_gemini_shamir/loot_tables/band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420109,SkullOwner:{Name:\"[Drop to Fix Item] gm4_gemini_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"gemini\"}}" + "tag": "{CustomModelData:'shamir/gemini',SkullOwner:{Name:\"[Drop to Fix Item] gm4_gemini_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"gemini\"}}" }, { "function": "minecraft:set_lore", diff --git a/gm4_metallurgy/data/gm4_hypexperia_shamir/guidebook/hypexperia_shamir.json b/gm4_metallurgy/data/gm4_hypexperia_shamir/guidebook/hypexperia_shamir.json index 7a3e8ec69b..ec9223c484 100644 --- a/gm4_metallurgy/data/gm4_hypexperia_shamir/guidebook/hypexperia_shamir.json +++ b/gm4_metallurgy/data/gm4_hypexperia_shamir/guidebook/hypexperia_shamir.json @@ -5,8 +5,7 @@ "load_check": "metallurgy", "base_module": "metallurgy", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420110}" + "item": "minecraft:anvil" }, "criteria": { "obtain_hypexperia_shamir": { diff --git a/gm4_metallurgy/data/gm4_hypexperia_shamir/loot_tables/band.json b/gm4_metallurgy/data/gm4_hypexperia_shamir/loot_tables/band.json index 3845237931..f15bafa6ac 100644 --- a/gm4_metallurgy/data/gm4_hypexperia_shamir/loot_tables/band.json +++ b/gm4_metallurgy/data/gm4_hypexperia_shamir/loot_tables/band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420110,SkullOwner:{Name:\"[Drop to Fix Item] gm4_hypexperia_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"hypexperia\"}}" + "tag": "{CustomModelData:'shamir/hypexperia',SkullOwner:{Name:\"[Drop to Fix Item] gm4_hypexperia_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"hypexperia\"}}" }, { "function": "minecraft:set_lore", diff --git a/gm4_metallurgy/data/gm4_infinitas_shamir/functions/update_shamir_id.mcfunction b/gm4_metallurgy/data/gm4_infinitas_shamir/functions/update_shamir_id.mcfunction index 4c95417e10..4e3cf948f0 100644 --- a/gm4_metallurgy/data/gm4_infinitas_shamir/functions/update_shamir_id.mcfunction +++ b/gm4_metallurgy/data/gm4_infinitas_shamir/functions/update_shamir_id.mcfunction @@ -3,5 +3,5 @@ # run by metallurgy once the shamir was applied # updates Spiraculum shamirs to Infinitas -execute if entity @s[nbt={Item:{tag:{gm4_metallurgy:{active_shamir:"spiraculum"}}}}] run data modify entity @s Item.tag.display.Lore[-1] set value '{"italic":false,"color":"gray","translate":"%1$s%3427655$s","with":["Infinitas",{"translate":"item.gm4.shamir.infinitas"}]}' +execute if entity @s[nbt={Item:{tag:{gm4_metallurgy:{active_shamir:"spiraculum"}}}}] run data modify entity @s Item.tag.display.Lore[-1] set value '{"italic":false,"color":"gray","translate":"item.gm4.shamir.infinitas","fallback":"Infinitas"}' execute if entity @s[nbt={Item:{tag:{gm4_metallurgy:{active_shamir:"spiraculum"}}}}] run data modify entity @s Item.tag.gm4_metallurgy.active_shamir set value "infinitas" diff --git a/gm4_metallurgy/data/gm4_infinitas_shamir/guidebook/infinitas_shamir.json b/gm4_metallurgy/data/gm4_infinitas_shamir/guidebook/infinitas_shamir.json index e45b792235..ef6ede138a 100644 --- a/gm4_metallurgy/data/gm4_infinitas_shamir/guidebook/infinitas_shamir.json +++ b/gm4_metallurgy/data/gm4_infinitas_shamir/guidebook/infinitas_shamir.json @@ -5,8 +5,7 @@ "load_check": "metallurgy", "base_module": "metallurgy", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420100}" + "item": "minecraft:anvil" }, "criteria": { "obtain_infinitas_shamir": { diff --git a/gm4_metallurgy/data/gm4_infinitas_shamir/loot_tables/band.json b/gm4_metallurgy/data/gm4_infinitas_shamir/loot_tables/band.json index 50806d3c9e..2c59c03340 100644 --- a/gm4_metallurgy/data/gm4_infinitas_shamir/loot_tables/band.json +++ b/gm4_metallurgy/data/gm4_infinitas_shamir/loot_tables/band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420100,SkullOwner:{Name:\"[Drop to Fix Item] gm4_infinitas_shamir:band\"},gm4_metallurgy:{stored_shamir:\"infinitas\"}}" + "tag": "{CustomModelData:'shamir/infinitas',SkullOwner:{Name:\"[Drop to Fix Item] gm4_infinitas_shamir:band\"},gm4_metallurgy:{stored_shamir:\"infinitas\"}}" }, { "function": "minecraft:set_lore", diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_aluminium.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_aluminium.mcfunction index 0ae82cb047..3756a5799c 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_aluminium.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_aluminium.mcfunction @@ -3,9 +3,9 @@ # add score to sand ring tag @s add gm4_contains_metal -data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:"$mould/hot_metal"} +data modify entity @s ArmorItems[3].tag set value {CustomModelData:"block/mould/hot_metal",SkullOwner:"$mould/hot_metal"} scoreboard players operation @s gm4_ml_ore_al += $metal_amount gm4_ml_data -execute if score $is_obsidian_cast gm4_ml_data matches 1.. run summon item ~.45 ~0.1 ~.65 {Item:{id:"minecraft:obsidian",Count:1b,tag:{CustomModelData:3420001,display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}}} +execute if score $is_obsidian_cast gm4_ml_data matches 1.. run summon item ~.45 ~0.1 ~.65 {Item:{id:"minecraft:obsidian",Count:1b,tag:{CustomModelData:"item/slightly_damaged_obsidian",display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}}} execute unless score $is_obsidian_cast gm4_ml_data matches 1.. run particle block andesite ~.45 ~0.1 ~.65 .1 .1 .1 0 9 particle block pink_terracotta ~.45 ~0.1 ~.65 .1 .1 .1 0 2 playsound item.bucket.empty_lava block @a[distance=..8] ~ ~ ~ .25 1.5 diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_barimium.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_barimium.mcfunction index 8529dac2d8..b899d7674b 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_barimium.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_barimium.mcfunction @@ -3,7 +3,7 @@ # add score to sand ring tag @s add gm4_contains_metal -data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:"$mould/hot_metal"} +data modify entity @s ArmorItems[3].tag set value {CustomModelData:"block/mould/hot_metal",SkullOwner:"$mould/hot_metal"} # add primary metal scoreboard players operation @s gm4_ml_ore_al += $metal_amount gm4_ml_data @@ -11,7 +11,7 @@ scoreboard players operation @s gm4_ml_ore_al += $metal_amount gm4_ml_data # add secondary metal execute store result score $metal_amount gm4_ml_data run data get storage gm4_metallurgy:temp/item/ore gm4_metallurgy.metal.amount[1] scoreboard players operation @s gm4_ml_ore_ba += $metal_amount gm4_ml_data -execute if score $is_obsidian_cast gm4_ml_data matches 1.. run summon item ~.45 ~0.1 ~.65 {Item:{id:"minecraft:obsidian",Count:1b,tag:{CustomModelData:3420001,display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}}} +execute if score $is_obsidian_cast gm4_ml_data matches 1.. run summon item ~.45 ~0.1 ~.65 {Item:{id:"minecraft:obsidian",Count:1b,tag:{CustomModelData:"item/slightly_damaged_obsidian",display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}}} # visuals particle block dead_fire_coral_block ~.45 ~0.1 ~.65 .1 .1 .1 0 2 diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_barium.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_barium.mcfunction index e7ee28808f..d5a86f9c9f 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_barium.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_barium.mcfunction @@ -3,9 +3,9 @@ #add score to sand ring tag @s add gm4_contains_metal -data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:"$mould/hot_metal"} +data modify entity @s ArmorItems[3].tag set value {CustomModelData:"block/mould/hot_metal",SkullOwner:"$mould/hot_metal"} scoreboard players operation @s gm4_ml_ore_ba += $metal_amount gm4_ml_data -execute if score $is_obsidian_cast gm4_ml_data matches 1.. run summon item ~.45 ~0.1 ~.65 {Item:{id:"minecraft:obsidian",Count:1b,tag:{CustomModelData:3420001,display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}}} +execute if score $is_obsidian_cast gm4_ml_data matches 1.. run summon item ~.45 ~0.1 ~.65 {Item:{id:"minecraft:obsidian",Count:1b,tag:{CustomModelData:"item/slightly_damaged_obsidian",display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}}} execute unless score $is_obsidian_cast gm4_ml_data matches 1.. run particle block granite ~.45 ~0.1 ~.65 .1 .1 .1 0 9 particle block white_concrete_powder ~.45 ~0.1 ~.65 .1 .1 .1 0 2 playsound item.bucket.empty_lava block @a[distance=..8] ~ ~ ~ .25 1.5 diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_bismuth.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_bismuth.mcfunction index a75b015f1e..e1cee7e849 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_bismuth.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_bismuth.mcfunction @@ -3,9 +3,9 @@ # add score to sand ring tag @s add gm4_contains_metal -data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:"$mould/hot_metal"} +data modify entity @s ArmorItems[3].tag set value {CustomModelData:"block/mould/hot_metal",SkullOwner:"$mould/hot_metal"} scoreboard players operation @s gm4_ml_ore_bi += $metal_amount gm4_ml_data -execute if score $is_obsidian_cast gm4_ml_data matches 1.. run summon item ~.45 ~0.1 ~.65 {Item:{id:"minecraft:obsidian",Count:1b,tag:{CustomModelData:3420001,display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}}} +execute if score $is_obsidian_cast gm4_ml_data matches 1.. run summon item ~.45 ~0.1 ~.65 {Item:{id:"minecraft:obsidian",Count:1b,tag:{CustomModelData:"item/slightly_damaged_obsidian",display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}}} execute unless score $is_obsidian_cast gm4_ml_data matches 1.. run particle block stone ~.45 ~0.1 ~.65 .1 .1 .1 0 9 particle block melon ~.45 ~0.1 ~.65 .1 .1 .1 0 2 playsound item.bucket.empty_lava block @a[distance=..8] ~ ~ ~ .25 1.5 diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_copper.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_copper.mcfunction index e380a9396d..bf791ec0f9 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_copper.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_copper.mcfunction @@ -3,9 +3,9 @@ #add score to sand ring tag @s add gm4_contains_metal -data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:"$mould/hot_metal"} +data modify entity @s ArmorItems[3].tag set value {CustomModelData:"block/mould/hot_metal",SkullOwner:"$mould/hot_metal"} scoreboard players operation @s gm4_ml_ore_bi += $metal_amount gm4_ml_data -execute if score $is_obsidian_cast gm4_ml_data matches 1.. run summon item ~.45 ~0.1 ~.65 {Item:{id:"minecraft:obsidian",Count:1b,tag:{CustomModelData:3420001,display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}}} +execute if score $is_obsidian_cast gm4_ml_data matches 1.. run summon item ~.45 ~0.1 ~.65 {Item:{id:"minecraft:obsidian",Count:1b,tag:{CustomModelData:"item/slightly_damaged_obsidian",display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}}} execute unless score $is_obsidian_cast gm4_ml_data matches 1.. run particle block stone ~.45 ~0.1 ~.65 .1 .1 .1 0 9 particle block weathered_copper ~.45 ~0.1 ~.65 .1 .1 .1 0 2 playsound item.bucket.empty_lava block @a[distance=..8] ~ ~ ~ .25 1.5 diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_curies_bismium.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_curies_bismium.mcfunction index 7fc7e2b321..c14f3df8db 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_curies_bismium.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_curies_bismium.mcfunction @@ -3,7 +3,7 @@ # add score to sand ring tag @s add gm4_contains_metal -data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:"$mould/hot_metal"} +data modify entity @s ArmorItems[3].tag set value {CustomModelData:"block/mould/hot_metal",SkullOwner:"$mould/hot_metal"} # add primary metal scoreboard players operation @s gm4_ml_ore_th += $metal_amount gm4_ml_data @@ -11,7 +11,7 @@ scoreboard players operation @s gm4_ml_ore_th += $metal_amount gm4_ml_data # add secondary metal execute store result score $metal_amount gm4_ml_data run data get storage gm4_metallurgy:temp/item/ore gm4_metallurgy.metal.amount[1] scoreboard players operation @s gm4_ml_ore_bi += $metal_amount gm4_ml_data -execute if score $is_obsidian_cast gm4_ml_data matches 1.. run summon item ~.45 ~0.1 ~.65 {Item:{id:"minecraft:obsidian",Count:1b,tag:{CustomModelData:3420001,display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}}} +execute if score $is_obsidian_cast gm4_ml_data matches 1.. run summon item ~.45 ~0.1 ~.65 {Item:{id:"minecraft:obsidian",Count:1b,tag:{CustomModelData:"item/slightly_damaged_obsidian",display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}}} # visuals particle block lime_concrete_powder ~.45 ~0.1 ~.65 .1 .1 .1 0 2 diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_thorium.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_thorium.mcfunction index d406d9ef75..58f6bb65c8 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_thorium.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_thorium.mcfunction @@ -3,9 +3,9 @@ # add score to sand ring tag @s add gm4_contains_metal -data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:"$mould/hot_metal"} +data modify entity @s ArmorItems[3].tag set value {CustomModelData:"block/mould/hot_metal",SkullOwner:"$mould/hot_metal"} scoreboard players operation @s gm4_ml_ore_th += $metal_amount gm4_ml_data -execute if score $is_obsidian_cast gm4_ml_data matches 1.. run summon item ~.45 ~0.1 ~.65 {Item:{id:"minecraft:obsidian",Count:1b,tag:{CustomModelData:3420001,display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}}} +execute if score $is_obsidian_cast gm4_ml_data matches 1.. run summon item ~.45 ~0.1 ~.65 {Item:{id:"minecraft:obsidian",Count:1b,tag:{CustomModelData:"item/slightly_damaged_obsidian",display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}}} execute unless score $is_obsidian_cast gm4_ml_data matches 1.. run particle block diorite ~.45 ~0.1 ~.65 .1 .1 .1 0 9 particle block dead_fire_coral_block ~.45 ~0.1 ~.65 .1 .1 .1 0 2 playsound item.bucket.empty_lava block @a[distance=..8] ~ ~ ~ .25 1.5 diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_thorium_brass.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_thorium_brass.mcfunction index 958f3df30a..1efbb59602 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_thorium_brass.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_thorium_brass.mcfunction @@ -3,7 +3,7 @@ # add score to sand ring tag @s add gm4_contains_metal -data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:"$mould/hot_metal"} +data modify entity @s ArmorItems[3].tag set value {CustomModelData:"block/mould/hot_metal",SkullOwner:"$mould/hot_metal"} # add primary metal scoreboard players operation @s gm4_ml_ore_th += $metal_amount gm4_ml_data @@ -11,7 +11,7 @@ scoreboard players operation @s gm4_ml_ore_th += $metal_amount gm4_ml_data # add secondary metal execute store result score $metal_amount gm4_ml_data run data get storage gm4_metallurgy:temp/item/ore gm4_metallurgy.metal.amount[1] scoreboard players operation @s gm4_ml_ore_bi += $metal_amount gm4_ml_data -execute if score $is_obsidian_cast gm4_ml_data matches 1.. run summon item ~.45 ~0.1 ~.65 {Item:{id:"minecraft:obsidian",Count:1b,tag:{CustomModelData:3420001,display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}}} +execute if score $is_obsidian_cast gm4_ml_data matches 1.. run summon item ~.45 ~0.1 ~.65 {Item:{id:"minecraft:obsidian",Count:1b,tag:{CustomModelData:"item/slightly_damaged_obsidian",display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}}} # visuals particle block lime_concrete_powder ~.45 ~0.1 ~.65 .1 .1 .1 0 2 diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/create_mould.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/create_mould.mcfunction index 094a0d87e0..ce29d1b410 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/create_mould.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/create_mould.mcfunction @@ -1,7 +1,7 @@ # @s = obsidian block with count of 1 on top of sand next to a clay ball with a count of 1 # run from check_mould_creation -summon armor_stand ~.45 ~-1.150 ~.65 {CustomName:'"gm4_sand_ring"',Tags:["gm4_sand_ring","gm4_new_sand_ring"],ArmorItems:[{id:"minecraft:stick",Count:1b},{},{},{id:"minecraft:player_head",Count:1,tag:{CustomModelData:3420023,SkullOwner:"$mould/cool_empty"}}],Silent:1,Invulnerable:1,Marker:1b,Invisible:1b,NoGravity:1b,Small:1b,HasVisualFire:1b} +summon armor_stand ~.45 ~-1.150 ~.65 {CustomName:'"gm4_sand_ring"',Tags:["gm4_sand_ring","gm4_new_sand_ring"],ArmorItems:[{id:"minecraft:stick",Count:1b},{},{},{id:"minecraft:player_head",Count:1,tag:{CustomModelData:"block/mould/cool_empty",SkullOwner:"$mould/cool_empty"}}],Silent:1,Invulnerable:1,Marker:1b,Invisible:1b,NoGravity:1b,Small:1b,HasVisualFire:1b} scoreboard players add @e[type=armor_stand,tag=gm4_new_sand_ring] gm4_ml_ore_al 0 scoreboard players add @e[type=armor_stand,tag=gm4_new_sand_ring] gm4_ml_ore_ba 0 diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/set_mould.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/set_mould.mcfunction index 35d1676579..d33243793e 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/set_mould.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/set_mould.mcfunction @@ -17,7 +17,7 @@ execute if entity @s[scores={gm4_ml_ore_bi=6,gm4_ml_ore_al=0,gm4_ml_ore_ba=0,gm4 # apply broken band if all other bands fail -execute if score $band_applied gm4_ml_data matches 0 run summon item ~ ~ ~ {Item:{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420022,SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:band/mundane/v0",Properties:{textures:[{Value:"$band/mundane"}]}},display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"gray","translate":"item.gm4.metallurgy.mundane_band","fallback":"Mundane Band"}']}}}} +execute if score $band_applied gm4_ml_data matches 0 run summon item ~ ~ ~ {Item:{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:"item/mundane_band",SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:band/mundane/v0",Properties:{textures:[{Value:"$band/mundane"}]}},display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"gray","translate":"item.gm4.metallurgy.mundane_band","fallback":"Mundane Band"}']}}}} # spawn xp if band was applied execute if score $band_applied gm4_ml_data matches 1 if entity @p[distance=..4,gamemode=!spectator] run summon experience_orb ~ ~ ~ {Value:37s} diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/sustain_mould.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/sustain_mould.mcfunction index 9f767dab6a..4ff2ac0a5f 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/sustain_mould.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/sustain_mould.mcfunction @@ -15,16 +15,16 @@ execute unless score @s gm4_ml_heat matches 1..89 run function gm4_metallurgy:ca execute if score @s gm4_ml_heat matches 50..89 align xyz if entity @e[type=item,nbt={Item:{Count:1b,tag:{gm4_metallurgy:{metal:{castable:1b}}}},OnGround:1b},dx=0,dy=0,dz=0] run function gm4_metallurgy:casting/add_metal/initialize # hot ring without metal -execute if score @s[tag=!gm4_contains_metal] gm4_ml_heat matches 50..51 run data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420024,SkullOwner:"$mould/hot_empty"} +execute if score @s[tag=!gm4_contains_metal] gm4_ml_heat matches 50..51 run data modify entity @s ArmorItems[3].tag set value {CustomModelData:"block/mould/hot_empty",SkullOwner:"$mould/hot_empty"} # hot ring with metal -execute if score @s[tag=gm4_contains_metal] gm4_ml_heat matches 50..51 run data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:"$mould/hot_metal"} +execute if score @s[tag=gm4_contains_metal] gm4_ml_heat matches 50..51 run data modify entity @s ArmorItems[3].tag set value {CustomModelData:"block/mould/hot_metal",SkullOwner:"$mould/hot_metal"} # cool (I'm way too awesome!) ring without metals -execute if score @s[tag=!gm4_contains_metal] gm4_ml_heat matches 48..49 run data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420023,SkullOwner:"$mould/cool_empty"} +execute if score @s[tag=!gm4_contains_metal] gm4_ml_heat matches 48..49 run data modify entity @s ArmorItems[3].tag set value {CustomModelData:"block/mould/cool_empty",SkullOwner:"$mould/cool_empty"} # cool ring with metal -execute if score @s[tag=gm4_contains_metal] gm4_ml_heat matches 48..49 run data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420025,SkullOwner:"$mould/cool_metal"} +execute if score @s[tag=gm4_contains_metal] gm4_ml_heat matches 48..49 run data modify entity @s ArmorItems[3].tag set value {CustomModelData:"block/mould/cool_metal",SkullOwner:"$mould/cool_metal"} execute if score @s gm4_ml_heat matches 56.. run particle lava ~ ~ ~ 0 0 0 0.005 1 diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/init.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/init.mcfunction index a9f649a704..a9f167311c 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/init.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/init.mcfunction @@ -14,20 +14,20 @@ data remove storage gm4_player_heads:register heads[{id:"gm4_metallurgy:ore/thor # register ores with lib_player_heads -execute unless data storage gm4_player_heads:register heads[{id:"gm4_metallurgy:ore/aluminium/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_metallurgy:ore/aluminium/v1",name:"[Drop to Fix Item] gm4_metallurgy:ore/aluminium/v0",value:'eyJ0aW1lc3RhbXAiOjE0ODE0MDk5OTEzMzMsInByb2ZpbGVJZCI6Ijk4NWIyNzVlYmI1YTQzNDRiNDM3Njg5NTI4NjNhNjNmIiwicHJvZmlsZU5hbWUiOiJTcGFya3MiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzdmNTRiOTc5Y2Y0YzUzM2Q5OTVjMDdiOTljMWU5OWI5MTdlYzA2ODU2ZDQ2YjBhMmU2ODhiYmQzZDE0ZSJ9LCJDQVBFIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNWMzY2E3ZWUyYTQ5OGYxYjVkMjU4ZDVmYTkyN2U2M2U0MzMxNDNhZGQ1NTM4Y2Y2M2I2YTliNzhhZTczNSJ9fX0=',item:{gm4_metallurgy:{item:"ore",metal:{type:"aluminium",amount:[1s],castable:1b}},CustomModelData:3420021,display:{Name:'{"italic":false,"color":"white","translate":"item.gm4.metallurgy.bauxite_lump","fallback":"Bauxite Lump"}',Lore:['{"italic":false,"color":"gray","extra":[{"italic":false,"color":"#F47989","translate":"text.gm4.metallurgy.aluminium","fallback":"Aluminium"}],"translate":"text.gm4.metallurgy.contains","fallback":"Contains "}']},SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:ore/aluminium/v0",Id:[I;140191582,-1151712444,-1271445916,307298631],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyOTY4NDMzNDA1MiwKICAicHJvZmlsZUlkIiA6ICI3ZmIyOGQ1N2FhZmQ0MmQ1YTcwNWNlZjE4YWI1MzEzZiIsCiAgInByb2ZpbGVOYW1lIiA6ICJjaXJjdWl0MTAiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjU1MTdhNjYyYTgzY2FhYWFjMWE3MTMzMmUzODFiYmZmYzkxYjJhNjBhODc1Y2NhZDhmZTM4ZGM3NWRlZDU0OSIKICAgIH0KICB9Cn0="}]}}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_metallurgy:ore/barium/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_metallurgy:ore/barium/v1",name:"[Drop to Fix Item] gm4_metallurgy:ore/barium/v0",value:'eyJ0aW1lc3RhbXAiOjE0ODE0MTA2NjExOTcsInByb2ZpbGVJZCI6Ijk4NWIyNzVlYmI1YTQzNDRiNDM3Njg5NTI4NjNhNjNmIiwicHJvZmlsZU5hbWUiOiJTcGFya3MiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGE3ZDY4M2I1MTE4ODU2YmJjOTQ4MDNiMjI3ZTk4ZTU1NTc2MjUxMTU3ZGJhZmE5MzRjMWVjOGZlYzY4NmU3In0sIkNBUEUiOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS81YzNjYTdlZTJhNDk4ZjFiNWQyNThkNWZhOTI3ZTYzZTQzMzE0M2FkZDU1MzhjZjYzYjZhOWI3OGFlNzM1In19fQ==',item:{gm4_metallurgy:{item:"ore",metal:{type:"barium",amount:[1s],castable:1b}},CustomModelData:3420019,display:{Name:'{"italic":false,"color":"white","translate":"item.gm4.metallurgy.baryte_lump","fallback":"Baryte Lump"}',Lore:['{"italic":false,"color":"gray","extra":[{"italic":false,"color":"#F0EAD6","translate":"text.gm4.metallurgy.barium","fallback":"Barium"}],"translate":"text.gm4.metallurgy.contains","fallback":"Contains "}']},SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:ore/barium/v0",Id:[I;140191582,-1151712444,-1271442552,1879524245],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyOTY4NDI1Njk5MSwKICAicHJvZmlsZUlkIiA6ICJiMGQ0YjI4YmMxZDc0ODg5YWYwZTg2NjFjZWU5NmFhYiIsCiAgInByb2ZpbGVOYW1lIiA6ICJNaW5lU2tpbl9vcmciLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjg5ZjJlZjhmZTJlMzhlM2I1YzliMzU0N2M3ZTFmODUzYTlhNDQ4MjFiZDllZTI1YmQ2ODhiYTY0MzcwZTk2MyIKICAgIH0KICB9Cn0="}]}}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_metallurgy:ore/bismuth/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_metallurgy:ore/bismuth/v0",name:"[Drop to Fix Item] gm4_metallurgy:ore/bismuth",value:'ewogICJ0aW1lc3RhbXAiIDogMTYyOTY4NDM0MzA2MCwKICAicHJvZmlsZUlkIiA6ICI0OWIzODUyNDdhMWY0NTM3YjBmN2MwZTFmMTVjMTc2NCIsCiAgInByb2ZpbGVOYW1lIiA6ICJiY2QyMDMzYzYzZWM0YmY4IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2EwODFiMmY2Nzk3ZDk2YzcxMGYyMjk1YmQ2MGJmYjc3NTE5ZDU4Yzk3NGEwYjM0YjViZDcyZmNkNzc3OTYyMWIiCiAgICB9LAogICAgIkNBUEUiIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzIzNDBjMGUwM2RkMjRhMTFiMTVhOGIzM2MyYTdlOWUzMmFiYjIwNTFiMjQ4MWQwYmE3ZGVmZDYzNWNhN2E5MzMiCiAgICB9CiAgfQp9',item:{gm4_metallurgy:{metal:{type:"bismuth",amount:[1s],castable:1b},item:"ore"},CustomModelData:3420017,display:{Name:'{"italic":false,"color":"white","translate":"item.gm4.metallurgy.bismutite_lump","fallback":"Bismutite Lump"}',Lore:['[{"translate":"text.gm4.metallurgy.contains","fallback":"Contains ","italic":false,"color":"gray"},{"translate":"item.gm4.metallurgy.bismuth.red","fallback":"B","italic":false,"color":"#F47989"},{"translate":"item.gm4.metallurgy.bismuth.orange","fallback":"i","italic":false,"color":"#F5B478"},{"translate":"item.gm4.metallurgy.bismuth.yellow","fallback":"s","italic":false,"color":"#F5DD79"},{"translate":"item.gm4.metallurgy.bismuth.green","fallback":"m","italic":false,"color":"#78F4AE"},{"translate":"item.gm4.metallurgy.bismuth.blue","fallback":"u","italic":false,"color":"#79D6F5"},{"translate":"item.gm4.metallurgy.bismuth.purple","fallback":"t","italic":false,"color":"#8378F5"},{"translate":"item.gm4.metallurgy.bismuth.magenta","fallback":"h","italic":false,"color":"#D579F5"}]']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_metallurgy:ore/aluminium/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_metallurgy:ore/aluminium/v1",name:"[Drop to Fix Item] gm4_metallurgy:ore/aluminium/v0",value:'eyJ0aW1lc3RhbXAiOjE0ODE0MDk5OTEzMzMsInByb2ZpbGVJZCI6Ijk4NWIyNzVlYmI1YTQzNDRiNDM3Njg5NTI4NjNhNjNmIiwicHJvZmlsZU5hbWUiOiJTcGFya3MiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzdmNTRiOTc5Y2Y0YzUzM2Q5OTVjMDdiOTljMWU5OWI5MTdlYzA2ODU2ZDQ2YjBhMmU2ODhiYmQzZDE0ZSJ9LCJDQVBFIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNWMzY2E3ZWUyYTQ5OGYxYjVkMjU4ZDVmYTkyN2U2M2U0MzMxNDNhZGQ1NTM4Y2Y2M2I2YTliNzhhZTczNSJ9fX0=',item:{gm4_metallurgy:{item:"ore",metal:{type:"aluminium",amount:[1s],castable:1b}},CustomModelData:"item/lump/bauxite",display:{Name:'{"italic":false,"color":"white","translate":"item.gm4.metallurgy.bauxite_lump","fallback":"Bauxite Lump"}',Lore:['{"italic":false,"color":"gray","extra":[{"italic":false,"color":"#F47989","translate":"text.gm4.metallurgy.aluminium","fallback":"Aluminium"}],"translate":"text.gm4.metallurgy.contains","fallback":"Contains "}']},SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:ore/aluminium/v0",Id:[I;140191582,-1151712444,-1271445916,307298631],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyOTY4NDMzNDA1MiwKICAicHJvZmlsZUlkIiA6ICI3ZmIyOGQ1N2FhZmQ0MmQ1YTcwNWNlZjE4YWI1MzEzZiIsCiAgInByb2ZpbGVOYW1lIiA6ICJjaXJjdWl0MTAiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjU1MTdhNjYyYTgzY2FhYWFjMWE3MTMzMmUzODFiYmZmYzkxYjJhNjBhODc1Y2NhZDhmZTM4ZGM3NWRlZDU0OSIKICAgIH0KICB9Cn0="}]}}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_metallurgy:ore/barium/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_metallurgy:ore/barium/v1",name:"[Drop to Fix Item] gm4_metallurgy:ore/barium/v0",value:'eyJ0aW1lc3RhbXAiOjE0ODE0MTA2NjExOTcsInByb2ZpbGVJZCI6Ijk4NWIyNzVlYmI1YTQzNDRiNDM3Njg5NTI4NjNhNjNmIiwicHJvZmlsZU5hbWUiOiJTcGFya3MiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGE3ZDY4M2I1MTE4ODU2YmJjOTQ4MDNiMjI3ZTk4ZTU1NTc2MjUxMTU3ZGJhZmE5MzRjMWVjOGZlYzY4NmU3In0sIkNBUEUiOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS81YzNjYTdlZTJhNDk4ZjFiNWQyNThkNWZhOTI3ZTYzZTQzMzE0M2FkZDU1MzhjZjYzYjZhOWI3OGFlNzM1In19fQ==',item:{gm4_metallurgy:{item:"ore",metal:{type:"barium",amount:[1s],castable:1b}},CustomModelData:"item/lump/baryte",display:{Name:'{"italic":false,"color":"white","translate":"item.gm4.metallurgy.baryte_lump","fallback":"Baryte Lump"}',Lore:['{"italic":false,"color":"gray","extra":[{"italic":false,"color":"#F0EAD6","translate":"text.gm4.metallurgy.barium","fallback":"Barium"}],"translate":"text.gm4.metallurgy.contains","fallback":"Contains "}']},SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:ore/barium/v0",Id:[I;140191582,-1151712444,-1271442552,1879524245],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyOTY4NDI1Njk5MSwKICAicHJvZmlsZUlkIiA6ICJiMGQ0YjI4YmMxZDc0ODg5YWYwZTg2NjFjZWU5NmFhYiIsCiAgInByb2ZpbGVOYW1lIiA6ICJNaW5lU2tpbl9vcmciLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjg5ZjJlZjhmZTJlMzhlM2I1YzliMzU0N2M3ZTFmODUzYTlhNDQ4MjFiZDllZTI1YmQ2ODhiYTY0MzcwZTk2MyIKICAgIH0KICB9Cn0="}]}}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_metallurgy:ore/bismuth/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_metallurgy:ore/bismuth/v0",name:"[Drop to Fix Item] gm4_metallurgy:ore/bismuth",value:'ewogICJ0aW1lc3RhbXAiIDogMTYyOTY4NDM0MzA2MCwKICAicHJvZmlsZUlkIiA6ICI0OWIzODUyNDdhMWY0NTM3YjBmN2MwZTFmMTVjMTc2NCIsCiAgInByb2ZpbGVOYW1lIiA6ICJiY2QyMDMzYzYzZWM0YmY4IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2EwODFiMmY2Nzk3ZDk2YzcxMGYyMjk1YmQ2MGJmYjc3NTE5ZDU4Yzk3NGEwYjM0YjViZDcyZmNkNzc3OTYyMWIiCiAgICB9LAogICAgIkNBUEUiIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzIzNDBjMGUwM2RkMjRhMTFiMTVhOGIzM2MyYTdlOWUzMmFiYjIwNTFiMjQ4MWQwYmE3ZGVmZDYzNWNhN2E5MzMiCiAgICB9CiAgfQp9',item:{gm4_metallurgy:{metal:{type:"bismuth",amount:[1s],castable:1b},item:"ore"},CustomModelData:"item/lump/bismutite",display:{Name:'{"italic":false,"color":"white","translate":"item.gm4.metallurgy.bismutite_lump","fallback":"Bismutite Lump"}',Lore:['[{"translate":"text.gm4.metallurgy.contains","fallback":"Contains ","italic":false,"color":"gray"},{"translate":"item.gm4.metallurgy.bismuth.red","fallback":"B","italic":false,"color":"#F47989"},{"translate":"item.gm4.metallurgy.bismuth.orange","fallback":"i","italic":false,"color":"#F5B478"},{"translate":"item.gm4.metallurgy.bismuth.yellow","fallback":"s","italic":false,"color":"#F5DD79"},{"translate":"item.gm4.metallurgy.bismuth.green","fallback":"m","italic":false,"color":"#78F4AE"},{"translate":"item.gm4.metallurgy.bismuth.blue","fallback":"u","italic":false,"color":"#79D6F5"},{"translate":"item.gm4.metallurgy.bismuth.purple","fallback":"t","italic":false,"color":"#8378F5"},{"translate":"item.gm4.metallurgy.bismuth.magenta","fallback":"h","italic":false,"color":"#D579F5"}]']}}} execute unless data storage gm4_player_heads:register heads[{id:"gm4_metallurgy:ore/copper/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_metallurgy:ore/copper/v0",name:"[Drop to Fix Item] gm4_metallurgy:ore/copper/v0",value:'eyJ0aW1lc3RhbXAiOjE0ODE0MTA4Mjk2OTAsInByb2ZpbGVJZCI6Ijk4NWIyNzVlYmI1YTQzNDRiNDM3Njg5NTI4NjNhNjNmIiwicHJvZmlsZU5hbWUiOiJTcGFya3MiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDNjMWE3ZGEyZWJkZGI0YTk3YzI3NDA0N2RlNzFkN2RjZWJjMTc2YTBlNjE3MzBmZmQzMzIzODUzNTNlIn0sIkNBUEUiOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS81YzNjYTdlZTJhNDk4ZjFiNWQyNThkNWZhOTI3ZTYzZTQzMzE0M2FkZDU1MzhjZjYzYjZhOWI3OGFlNzM1In19fQ==',item:{gm4_metallurgy:{metal:{type:"bismuth",amount:[1s],castable:1b},item:"ore"},CustomModelData:3420017,display:{Name:'{"italic":false,"color":"white","translate":"item.gm4.metallurgy.bismutite_lump","fallback":"Bismutite Lump"}',Lore:['[{"translate":"text.gm4.metallurgy.contains","fallback":"Contains ","italic":false,"color":"gray"},{"translate":"item.gm4.metallurgy.bismuth.red","fallback":"B","italic":false,"color":"#F47989"},{"translate":"item.gm4.metallurgy.bismuth.orange","fallback":"i","italic":false,"color":"#F5B478"},{"translate":"item.gm4.metallurgy.bismuth.yellow","fallback":"s","italic":false,"color":"#F5DD79"},{"translate":"item.gm4.metallurgy.bismuth.green","fallback":"m","italic":false,"color":"#78F4AE"},{"translate":"item.gm4.metallurgy.bismuth.blue","fallback":"u","italic":false,"color":"#79D6F5"},{"translate":"item.gm4.metallurgy.bismuth.purple","fallback":"t","italic":false,"color":"#8378F5"},{"translate":"item.gm4.metallurgy.bismuth.magenta","fallback":"h","italic":false,"color":"#D579F5"}]']},SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:ore/bismuth",Id:[I;140254582,-1151718614,-1277548307,1366135037],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyOTY4NDM0MzA2MCwKICAicHJvZmlsZUlkIiA6ICI0OWIzODUyNDdhMWY0NTM3YjBmN2MwZTFmMTVjMTc2NCIsCiAgInByb2ZpbGVOYW1lIiA6ICJiY2QyMDMzYzYzZWM0YmY4IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2EwODFiMmY2Nzk3ZDk2YzcxMGYyMjk1YmQ2MGJmYjc3NTE5ZDU4Yzk3NGEwYjM0YjViZDcyZmNkNzc3OTYyMWIiCiAgICB9LAogICAgIkNBUEUiIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzIzNDBjMGUwM2RkMjRhMTFiMTVhOGIzM2MyYTdlOWUzMmFiYjIwNTFiMjQ4MWQwYmE3ZGVmZDYzNWNhN2E5MzMiCiAgICB9CiAgfQp9"}]}}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_metallurgy:ore/thorium/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_metallurgy:ore/thorium/v1",name:"[Drop to Fix Item] gm4_metallurgy:ore/thorium/v0",value:'eyJ0aW1lc3RhbXAiOjE0ODE0MTExMzQwMDQsInByb2ZpbGVJZCI6Ijk4NWIyNzVlYmI1YTQzNDRiNDM3Njg5NTI4NjNhNjNmIiwicHJvZmlsZU5hbWUiOiJTcGFya3MiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWRkZjMzZDViYmMxZmJjYTA0MDIzZjNkNWJjNjhkMWFkODRjN2RjYmUxZTJkYTk3YzIxOGVjOWNiZDQ0YTUifSwiQ0FQRSI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzVjM2NhN2VlMmE0OThmMWI1ZDI1OGQ1ZmE5MjdlNjNlNDMzMTQzYWRkNTUzOGNmNjNiNmE5Yjc4YWU3MzUifX19',item:{gm4_metallurgy:{item:"ore",metal:{type:"thorium",amount:[1s],castable:1b}},CustomModelData:3420020,display:{Name:'{"italic":false,"color":"white","translate":"item.gm4.metallurgy.thorianite_lump","fallback":"Thorianite Lump"}',Lore:['{"italic":false,"color":"gray","extra":[{"italic":false,"color":"#767676","translate":"text.gm4.metallurgy.thorium","fallback":"Thorium"}],"translate":"text.gm4.metallurgy.contains","fallback":"Contains "}']}},SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:ore/thorium/v0",Id:[I;140191582,-1151712444,-1271454064,-1822255261],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyOTY4NDM2MzM0MywKICAicHJvZmlsZUlkIiA6ICI3NzI3ZDM1NjY5Zjk0MTUxODAyM2Q2MmM2ODE3NTkxOCIsCiAgInByb2ZpbGVOYW1lIiA6ICJsaWJyYXJ5ZnJlYWsiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjcxYWQ1MTBhMTBjNWMxYzZkMGY3NzVjYWRkNWVmMTliZWRkODY2NTQwNmE5ZWY1NTI0ZGJmOGZiNjQ2MmViIgogICAgfQogIH0KfQ=="}]}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_metallurgy:ore/thorium/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_metallurgy:ore/thorium/v1",name:"[Drop to Fix Item] gm4_metallurgy:ore/thorium/v0",value:'eyJ0aW1lc3RhbXAiOjE0ODE0MTExMzQwMDQsInByb2ZpbGVJZCI6Ijk4NWIyNzVlYmI1YTQzNDRiNDM3Njg5NTI4NjNhNjNmIiwicHJvZmlsZU5hbWUiOiJTcGFya3MiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWRkZjMzZDViYmMxZmJjYTA0MDIzZjNkNWJjNjhkMWFkODRjN2RjYmUxZTJkYTk3YzIxOGVjOWNiZDQ0YTUifSwiQ0FQRSI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzVjM2NhN2VlMmE0OThmMWI1ZDI1OGQ1ZmE5MjdlNjNlNDMzMTQzYWRkNTUzOGNmNjNiNmE5Yjc4YWU3MzUifX19',item:{gm4_metallurgy:{item:"ore",metal:{type:"thorium",amount:[1s],castable:1b}},CustomModelData:"item/lump/thorianite",display:{Name:'{"italic":false,"color":"white","translate":"item.gm4.metallurgy.thorianite_lump","fallback":"Thorianite Lump"}',Lore:['{"italic":false,"color":"gray","extra":[{"italic":false,"color":"#767676","translate":"text.gm4.metallurgy.thorium","fallback":"Thorium"}],"translate":"text.gm4.metallurgy.contains","fallback":"Contains "}']}},SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:ore/thorium/v0",Id:[I;140191582,-1151712444,-1271454064,-1822255261],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyOTY4NDM2MzM0MywKICAicHJvZmlsZUlkIiA6ICI3NzI3ZDM1NjY5Zjk0MTUxODAyM2Q2MmM2ODE3NTkxOCIsCiAgInByb2ZpbGVOYW1lIiA6ICJsaWJyYXJ5ZnJlYWsiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjcxYWQ1MTBhMTBjNWMxYzZkMGY3NzVjYWRkNWVmMTliZWRkODY2NTQwNmE5ZWY1NTI0ZGJmOGZiNjQ2MmViIgogICAgfQogIH0KfQ=="}]}}} # register mundane band with lib_player_heads and turn outdated bands into mundane bands -execute unless data storage gm4_player_heads:register heads[{id:"gm4_metallurgy:band/mundane/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_metallurgy:band/mundane/v0",name:"[Drop to Fix Item] gm4_metallurgy:band/mundane/v0",value:'eyJ0aW1lc3RhbXAiOjE0ODE2NjMzMzg5MDksInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzQ4MGNjMjY3M2ZmMjhkNTEzNDY0MTMxN2FiYzUzMWU5ZTFjZWU3MTFlYWJmYWY3YzJhZDY1M2E0NmQxZmI3In19fQ==',item:{SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:band/mundane/v0"},CustomModelData:3420022,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"gray","translate":"item.gm4.metallurgy.mundane_band","fallback":"Mundane Band"}']}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_metallurgy:band/aluminium/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_metallurgy:band/aluminium/v0",value:'eyJ0aW1lc3RhbXAiOjE0ODE2NjMyMjQ2MTUsInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTc5ZWRhYmI2MjU1YzhkMjQyOWE3ZTUzM2U4MzUxOWE4NjVhNTk0ZGJmMTRhMTdjZjVhYzIxMzUzYTM5N2U3In19fQ==',item:{CustomModelData:3420022,SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:band/mundane/v0",Id:[I;2090045838,1070000930,-1136417339,1085846924],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODYyODgyMjk0MiwKICAicHJvZmlsZUlkIiA6ICIxYTc1ZTNiYmI1NTk0MTc2OTVjMmY4NTY1YzNlMDAzZCIsCiAgInByb2ZpbGVOYW1lIiA6ICJUZXJvZmFyIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzljNjY5YzQzYWY3NzEwY2I1OWU2NzU2MmI0NWUxMzE5MzA5YWVhZTM0MTJiMmY1NTNiYjQ5MDA5MGZmYTQyMGMiCiAgICB9CiAgfQp9"}]}},display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"gray","translate":"item.gm4.metallurgy.mundane_band","fallback":"Mundane Band"}']}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_metallurgy:band/barium/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_metallurgy:band/barium/v0",value:'ewogICJ0aW1lc3RhbXAiIDogMTYyODg4MzkzODA4MiwKICAicHJvZmlsZUlkIiA6ICJmNThkZWJkNTlmNTA0MjIyOGY2MDIyMjExZDRjMTQwYyIsCiAgInByb2ZpbGVOYW1lIiA6ICJ1bnZlbnRpdmV0YWxlbnQiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGMxMzcwMGVlMGViYzgwOTU2N2IxYTNjOTFhYzhjMWFhMmJiNWNlYjQ4YWRlNzZlOGJkN2QzMWE5Y2EzYjdkIgogICAgfQogIH0KfQ==',item:{CustomModelData:3420022,SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:band/mundane/v0",Id:[I;2090045838,1070000930,-1136417339,1085846924],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE2NjMzMzg5MDksInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzQ4MGNjMjY3M2ZmMjhkNTEzNDY0MTMxN2FiYzUzMWU5ZTFjZWU3MTFlYWJmYWY3YzJhZDY1M2E0NmQxZmI3In19fQ=="}]}},display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"gray","translate":"item.gm4.metallurgy.mundane_band","fallback":"Mundane Band"}']}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_metallurgy:band/copper/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_metallurgy:band/copper/v0",value:'eyJ0aW1lc3RhbXAiOjE0ODg0Njc2ODYwNDksInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjMyNjQ2OGE2N2NlZTNkYTJlYzE0MDJiZGU1MzhlNGZjOGU5ZGVmZGFmOGNlMzVjZGJiYjEzY2RjZTE1ZSJ9fX0=',item:{CustomModelData:3420022,SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:band/mundane/v0",Id:[I;2090045838,1070000930,-1136417339,1085846924],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE2NjMzMzg5MDksInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzQ4MGNjMjY3M2ZmMjhkNTEzNDY0MTMxN2FiYzUzMWU5ZTFjZWU3MTFlYWJmYWY3YzJhZDY1M2E0NmQxZmI3In19fQ=="}]}},display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"gray","translate":"item.gm4.metallurgy.mundane_band","fallback":"Mundane Band"}']}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_metallurgy:band/thorium/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_metallurgy:band/thorium/v0",value:'eyJ0aW1lc3RhbXAiOjE0ODE2NjM1MTAwNzIsInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTYzOTJhNmQ5OWY5MzE5ZWU3YzRmNGMxYTE5NzQ5ZDY4N2NkY2M4ZWVjOGZjNjY4ZTczZDM3YTZkYWY3N2EifX19',item:{CustomModelData:3420022,SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:band/mundane/v0",Id:[I;2090045838,1070000930,-1136417339,1085846924],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE2NjMzMzg5MDksInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzQ4MGNjMjY3M2ZmMjhkNTEzNDY0MTMxN2FiYzUzMWU5ZTFjZWU3MTFlYWJmYWY3YzJhZDY1M2E0NmQxZmI3In19fQ=="}]}},display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"gray","translate":"item.gm4.metallurgy.mundane_band","fallback":"Mundane Band"}']}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_metallurgy:band/barimium/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_metallurgy:band/barimium/v0",value:'eyJ0aW1lc3RhbXAiOjE0ODg0Njc2MDc5ODMsInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTg1M2IxMWFiYmYxN2UzOGVhZTRiMjFmNGZlYzRmZmE3ZTczZDBmZTRlMjcxOTZjOWJkNTdkMzdiZGUyOTZkYyJ9fX0=',item:{CustomModelData:3420022,SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:band/mundane/v0",Id:[I;2090045838,1070000930,-1136417339,1085846924],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE2NjMzMzg5MDksInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzQ4MGNjMjY3M2ZmMjhkNTEzNDY0MTMxN2FiYzUzMWU5ZTFjZWU3MTFlYWJmYWY3YzJhZDY1M2E0NmQxZmI3In19fQ=="}]}},display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"gray","translate":"item.gm4.metallurgy.mundane_band","fallback":"Mundane Band"}']}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_metallurgy:band/thorium_brass/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_metallurgy:band/thorium_brass/v0",value:'eyJ0aW1lc3RhbXAiOjE0ODg0NjY1NTQzODUsInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDk2ZWJmMzMxZmQ1MzM3MjM0ZmU0OTM2ZWMyOTU2NTI4ZDQ3N2FiYTU4NzU5YmM2ZWIyODRiMmU5MmQxNDI4In19fQ==',item:{CustomModelData:3420022,SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:band/mundane/v0",Id:[I;2090045838,1070000930,-1136417339,1085846924],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE2NjMzMzg5MDksInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzQ4MGNjMjY3M2ZmMjhkNTEzNDY0MTMxN2FiYzUzMWU5ZTFjZWU3MTFlYWJmYWY3YzJhZDY1M2E0NmQxZmI3In19fQ=="}]}},display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"gray","translate":"item.gm4.metallurgy.mundane_band","fallback":"Mundane Band"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_metallurgy:band/mundane/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_metallurgy:band/mundane/v0",name:"[Drop to Fix Item] gm4_metallurgy:band/mundane/v0",value:'eyJ0aW1lc3RhbXAiOjE0ODE2NjMzMzg5MDksInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzQ4MGNjMjY3M2ZmMjhkNTEzNDY0MTMxN2FiYzUzMWU5ZTFjZWU3MTFlYWJmYWY3YzJhZDY1M2E0NmQxZmI3In19fQ==',item:{SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:band/mundane/v0"},CustomModelData:"item/mundane_band",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"gray","translate":"item.gm4.metallurgy.mundane_band","fallback":"Mundane Band"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_metallurgy:band/aluminium/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_metallurgy:band/aluminium/v0",value:'eyJ0aW1lc3RhbXAiOjE0ODE2NjMyMjQ2MTUsInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTc5ZWRhYmI2MjU1YzhkMjQyOWE3ZTUzM2U4MzUxOWE4NjVhNTk0ZGJmMTRhMTdjZjVhYzIxMzUzYTM5N2U3In19fQ==',item:{CustomModelData:"item/mundane_band",SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:band/mundane/v0",Id:[I;2090045838,1070000930,-1136417339,1085846924],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODYyODgyMjk0MiwKICAicHJvZmlsZUlkIiA6ICIxYTc1ZTNiYmI1NTk0MTc2OTVjMmY4NTY1YzNlMDAzZCIsCiAgInByb2ZpbGVOYW1lIiA6ICJUZXJvZmFyIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzljNjY5YzQzYWY3NzEwY2I1OWU2NzU2MmI0NWUxMzE5MzA5YWVhZTM0MTJiMmY1NTNiYjQ5MDA5MGZmYTQyMGMiCiAgICB9CiAgfQp9"}]}},display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"gray","translate":"item.gm4.metallurgy.mundane_band","fallback":"Mundane Band"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_metallurgy:band/barium/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_metallurgy:band/barium/v0",value:'ewogICJ0aW1lc3RhbXAiIDogMTYyODg4MzkzODA4MiwKICAicHJvZmlsZUlkIiA6ICJmNThkZWJkNTlmNTA0MjIyOGY2MDIyMjExZDRjMTQwYyIsCiAgInByb2ZpbGVOYW1lIiA6ICJ1bnZlbnRpdmV0YWxlbnQiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGMxMzcwMGVlMGViYzgwOTU2N2IxYTNjOTFhYzhjMWFhMmJiNWNlYjQ4YWRlNzZlOGJkN2QzMWE5Y2EzYjdkIgogICAgfQogIH0KfQ==',item:{CustomModelData:"item/mundane_band",SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:band/mundane/v0",Id:[I;2090045838,1070000930,-1136417339,1085846924],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE2NjMzMzg5MDksInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzQ4MGNjMjY3M2ZmMjhkNTEzNDY0MTMxN2FiYzUzMWU5ZTFjZWU3MTFlYWJmYWY3YzJhZDY1M2E0NmQxZmI3In19fQ=="}]}},display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"gray","translate":"item.gm4.metallurgy.mundane_band","fallback":"Mundane Band"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_metallurgy:band/copper/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_metallurgy:band/copper/v0",value:'eyJ0aW1lc3RhbXAiOjE0ODg0Njc2ODYwNDksInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjMyNjQ2OGE2N2NlZTNkYTJlYzE0MDJiZGU1MzhlNGZjOGU5ZGVmZGFmOGNlMzVjZGJiYjEzY2RjZTE1ZSJ9fX0=',item:{CustomModelData:"item/mundane_band",SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:band/mundane/v0",Id:[I;2090045838,1070000930,-1136417339,1085846924],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE2NjMzMzg5MDksInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzQ4MGNjMjY3M2ZmMjhkNTEzNDY0MTMxN2FiYzUzMWU5ZTFjZWU3MTFlYWJmYWY3YzJhZDY1M2E0NmQxZmI3In19fQ=="}]}},display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"gray","translate":"item.gm4.metallurgy.mundane_band","fallback":"Mundane Band"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_metallurgy:band/thorium/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_metallurgy:band/thorium/v0",value:'eyJ0aW1lc3RhbXAiOjE0ODE2NjM1MTAwNzIsInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTYzOTJhNmQ5OWY5MzE5ZWU3YzRmNGMxYTE5NzQ5ZDY4N2NkY2M4ZWVjOGZjNjY4ZTczZDM3YTZkYWY3N2EifX19',item:{CustomModelData:"item/mundane_band",SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:band/mundane/v0",Id:[I;2090045838,1070000930,-1136417339,1085846924],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE2NjMzMzg5MDksInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzQ4MGNjMjY3M2ZmMjhkNTEzNDY0MTMxN2FiYzUzMWU5ZTFjZWU3MTFlYWJmYWY3YzJhZDY1M2E0NmQxZmI3In19fQ=="}]}},display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"gray","translate":"item.gm4.metallurgy.mundane_band","fallback":"Mundane Band"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_metallurgy:band/barimium/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_metallurgy:band/barimium/v0",value:'eyJ0aW1lc3RhbXAiOjE0ODg0Njc2MDc5ODMsInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTg1M2IxMWFiYmYxN2UzOGVhZTRiMjFmNGZlYzRmZmE3ZTczZDBmZTRlMjcxOTZjOWJkNTdkMzdiZGUyOTZkYyJ9fX0=',item:{CustomModelData:"item/mundane_band",SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:band/mundane/v0",Id:[I;2090045838,1070000930,-1136417339,1085846924],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE2NjMzMzg5MDksInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzQ4MGNjMjY3M2ZmMjhkNTEzNDY0MTMxN2FiYzUzMWU5ZTFjZWU3MTFlYWJmYWY3YzJhZDY1M2E0NmQxZmI3In19fQ=="}]}},display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"gray","translate":"item.gm4.metallurgy.mundane_band","fallback":"Mundane Band"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_metallurgy:band/thorium_brass/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_metallurgy:band/thorium_brass/v0",value:'eyJ0aW1lc3RhbXAiOjE0ODg0NjY1NTQzODUsInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDk2ZWJmMzMxZmQ1MzM3MjM0ZmU0OTM2ZWMyOTU2NTI4ZDQ3N2FiYTU4NzU5YmM2ZWIyODRiMmU5MmQxNDI4In19fQ==',item:{CustomModelData:"item/mundane_band",SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:band/mundane/v0",Id:[I;2090045838,1070000930,-1136417339,1085846924],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE2NjMzMzg5MDksInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzQ4MGNjMjY3M2ZmMjhkNTEzNDY0MTMxN2FiYzUzMWU5ZTFjZWU3MTFlYWJmYWY3YzJhZDY1M2E0NmQxZmI3In19fQ=="}]}},display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"gray","translate":"item.gm4.metallurgy.mundane_band","fallback":"Mundane Band"}']}}} # unregister old shamirs data remove storage gm4_player_heads:register heads[{id:"gm4_arborenda_shamir:band/v0"}] @@ -44,19 +44,19 @@ data remove storage gm4_player_heads:register heads[{id:"gm4_spiraculum_shamir:b data remove storage gm4_player_heads:register heads[{id:"gm4_tinker_shamir:band/v0"}] # register shamirs with lib_player_heads -execute unless data storage gm4_player_heads:register heads[{id:"gm4_arborenda_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_arborenda_shamir:band/v1",name:"[Drop to Fix Item] gm4_arborenda_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"arborenda",metal:{type:"barium",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;-758190455,118414880,1677653096,2076204799],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODg4MzkzODA4MiwKICAicHJvZmlsZUlkIiA6ICJmNThkZWJkNTlmNTA0MjIyOGY2MDIyMjExZDRjMTQwYyIsCiAgInByb2ZpbGVOYW1lIiA6ICJ1bnZlbnRpdmV0YWxlbnQiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGMxMzcwMGVlMGViYzgwOTU2N2IxYTNjOTFhYzhjMWFhMmJiNWNlYjQ4YWRlNzZlOGJkN2QzMWE5Y2EzYjdkIgogICAgfQogIH0KfQ=="}]}},CustomModelData:3420112,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#F0EAD6","translate":"item.gm4.metallurgy.band","fallback":"Barium Band","with":[{"translate":"item.gm4.metallurgy.barium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.arborenda","fallback":"Arborenda"}']}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_defuse_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_defuse_shamir:band/v1",name:"[Drop to Fix Item] gm4_defuse_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"defuse",metal:{type:"aluminium",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;1961294324,1560605478,885901402,915511979],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODc4ODAzNjY3NCwKICAicHJvZmlsZUlkIiA6ICI2MjM5ZWRhM2ExY2Y0YjJiYWMyODk2NGQ0NmNlOWVhOSIsCiAgInByb2ZpbGVOYW1lIiA6ICJGYXRGYXRHb2QiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGQ3MTQ5OTY0MDNlMTNhNGE4ZTc4OTQ0OWNjN2I5OGRhMmI4NDc1NTRjNDgwZGUyMDUxOTcwYjIxODIzZGJkOSIKICAgIH0KICB9Cn0="}]}},CustomModelData:3420106,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#F47989","translate":"item.gm4.metallurgy.band","fallback":"Aluminium Band","with":[{"translate":"item.gm4.metallurgy.aluminium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.defuse","fallback":"Defuse"}']}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_ender_bolt_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_ender_bolt_shamir:band/v1",name:"[Drop to Fix Item] gm4_ender_bolt_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"ender_bolt",metal:{type:"thorium",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;1709100198,-881135263,-295939255,1602156123],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE2NjM1MTAwNzIsInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTYzOTJhNmQ5OWY5MzE5ZWU3YzRmNGMxYTE5NzQ5ZDY4N2NkY2M4ZWVjOGZjNjY4ZTczZDM3YTZkYWY3N2EifX19"}]}},CustomModelData:3420105,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#767676","translate":"item.gm4.metallurgy.band","fallback":"Thorium Band","with":[{"translate":"item.gm4.metallurgy.thorium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.ender_bolt","fallback":"Ender Bolt"}']}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_forterra_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_forterra_shamir:band/v1",name:"[Drop to Fix Item] gm4_forterra_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"forterra",metal:{type:"bismuth",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;-359255454,30123560,-1513962184,-616842323],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODAxNDc0OTQ2MSwKICAicHJvZmlsZUlkIiA6ICJiMWMyNWQ0YjMwZDU0N2Y4YTk3NmZlYTllOGU1YzBjMyIsCiAgInByb2ZpbGVOYW1lIiA6ICJvd29FbmRlciIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS82NmM0ODcwYmNiMDdkYWJjMjNiNTZkMzJlNzI5OWI5NTE4ZTU1N2VmMzU2YTNiZGRmNDBkNGM3MDIwYzI3MTdhIgogICAgfQogIH0KfQ=="}]}},CustomModelData:3420107,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['[{"translate":"item.gm4.metallurgy.bismuth.red","fallback":"Bi","italic":false,"color":"#F47989"},{"translate":"item.gm4.metallurgy.bismuth.orange","fallback":"sm","italic":false,"color":"#F5B478"},{"translate":"item.gm4.metallurgy.bismuth.yellow","fallback":"ut","italic":false,"color":"#F5DD79"},{"translate":"item.gm4.metallurgy.bismuth.green","fallback":"h ","italic":false,"color":"#78F4AE"},{"translate":"item.gm4.metallurgy.bismuth.blue","fallback":"Ba","italic":false,"color":"#79D6F5"},{"translate":"item.gm4.metallurgy.bismuth.purple","fallback":"nd","italic":false,"color":"#8378F5"},{"translate":"item.gm4.metallurgy.bismuth.magenta","fallback":"","italic":false,"color":"#D579F5"}]','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.forterra","fallback":"Forterra"}']}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_gemini_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_gemini_shamir:band/v1",name:"[Drop to Fix Item] gm4_gemini_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"gemini",metal:{type:"barimium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;-340714413,1525011343,50560746,-1948445052],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODc5MjUwNDk5MiwKICAicHJvZmlsZUlkIiA6ICI5MWYwNGZlOTBmMzY0M2I1OGYyMGUzMzc1Zjg2ZDM5ZSIsCiAgInByb2ZpbGVOYW1lIiA6ICJTdG9ybVN0b3JteSIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS85MzU2MjZhYzgwZmZmYWFiOTkyOWMwYWViNTg5N2RkN2FlOThjOWI5NTY1NjVjZTc3YTEyNjE0MjExYWI2NTg0IgogICAgfQogIH0KfQ=="}]}},CustomModelData:3420109,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#D18A8A","translate":"item.gm4.metallurgy.band","fallback":"Barimium Band","with":[{"translate":"item.gm4.metallurgy.barimium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.gemini","fallback":"Gemini"}']}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_hypexperia_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_hypexperia_shamir:band/v1",name:"[Drop to Fix Item] gm4_hypexperia_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"hypexperia",metal:{type:"bismuth",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;-359255454,30123560,-1513962184,-616842323],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODAxNDc0OTQ2MSwKICAicHJvZmlsZUlkIiA6ICJiMWMyNWQ0YjMwZDU0N2Y4YTk3NmZlYTllOGU1YzBjMyIsCiAgInByb2ZpbGVOYW1lIiA6ICJvd29FbmRlciIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS82NmM0ODcwYmNiMDdkYWJjMjNiNTZkMzJlNzI5OWI5NTE4ZTU1N2VmMzU2YTNiZGRmNDBkNGM3MDIwYzI3MTdhIgogICAgfQogIH0KfQ=="}]}},CustomModelData:3420110,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['[{"translate":"item.gm4.metallurgy.bismuth.red","fallback":"Bi","italic":false,"color":"#F47989"},{"translate":"item.gm4.metallurgy.bismuth.orange","fallback":"sm","italic":false,"color":"#F5B478"},{"translate":"item.gm4.metallurgy.bismuth.yellow","fallback":"ut","italic":false,"color":"#F5DD79"},{"translate":"item.gm4.metallurgy.bismuth.green","fallback":"h ","italic":false,"color":"#78F4AE"},{"translate":"item.gm4.metallurgy.bismuth.blue","fallback":"Ba","italic":false,"color":"#79D6F5"},{"translate":"item.gm4.metallurgy.bismuth.purple","fallback":"nd","italic":false,"color":"#8378F5"},{"translate":"item.gm4.metallurgy.bismuth.magenta","fallback":"","italic":false,"color":"#D579F5"}]','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.hypexperia","fallback":"Hypexperia"}']}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_infinitas_shamir:band/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_infinitas_shamir:band/v0",name:"[Drop to Fix Item] gm4_infinitas_shamir:band",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"infinitas",metal:{type:"curies_bismium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;111072104,-2136128314,-1898832976,-1860633164],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODAyOTI2NzM2NiwKICAicHJvZmlsZUlkIiA6ICI3ZmIyOGQ1N2FhZmQ0MmQ1YTcwNWNlZjE4YWI1MzEzZiIsCiAgInByb2ZpbGVOYW1lIiA6ICJjaXJjdWl0MTAiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2MzMTBmZDk3YjFhN2Q3MDkwOGExODc2N2FjZmRjYzYwZDJhMTU1NTY5Zjk0YThmYjZhZWUxYTMzMWE5MjM4IgogICAgfQogIH0KfQ=="}]}},CustomModelData:3420100,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#467A1B","translate":"item.gm4.metallurgy.band","fallback":"Curie\'s Bismium Band","with":[{"translate":"item.gm4.metallurgy.curies_bismium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.infinitas","fallback":"Infinitas"}']}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_moneo_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_moneo_shamir:band/v1",name:"[Drop to Fix Item] gm4_moneo_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"moneo",metal:{type:"aluminium",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;1961294324,1560605478,885901402,915511979],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODc4ODAzNjY3NCwKICAicHJvZmlsZUlkIiA6ICI2MjM5ZWRhM2ExY2Y0YjJiYWMyODk2NGQ0NmNlOWVhOSIsCiAgInByb2ZpbGVOYW1lIiA6ICJGYXRGYXRHb2QiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGQ3MTQ5OTY0MDNlMTNhNGE4ZTc4OTQ0OWNjN2I5OGRhMmI4NDc1NTRjNDgwZGUyMDUxOTcwYjIxODIzZGJkOSIKICAgIH0KICB9Cn0="}]}},CustomModelData:3420113,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#F47989","translate":"item.gm4.metallurgy.band","fallback":"Aluminium Band","with":[{"translate":"item.gm4.metallurgy.aluminium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.moneo","fallback":"Moneo"}']}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_musical_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_musical_shamir:band/v1",name:"[Drop to Fix Item] gm4_musical_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"musical",metal:{type:"barimium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;-340714413,1525011343,50560746,-1948445052],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODc5MjUwNDk5MiwKICAicHJvZmlsZUlkIiA6ICI5MWYwNGZlOTBmMzY0M2I1OGYyMGUzMzc1Zjg2ZDM5ZSIsCiAgInByb2ZpbGVOYW1lIiA6ICJTdG9ybVN0b3JteSIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS85MzU2MjZhYzgwZmZmYWFiOTkyOWMwYWViNTg5N2RkN2FlOThjOWI5NTY1NjVjZTc3YTEyNjE0MjExYWI2NTg0IgogICAgfQogIH0KfQ=="}]}},CustomModelData:3420108,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#D18A8A","translate":"item.gm4.metallurgy.band","fallback":"Barimium Band","with":[{"translate":"item.gm4.metallurgy.barimium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.musical","fallback":"Musical"}']}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_sensus_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_sensus_shamir:band/v1",name:"[Drop to Fix Item] gm4_sensus_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"sensus",metal:{type:"barium",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;-758190455,118414880,1677653096,2076204799],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODg4MzkzODA4MiwKICAicHJvZmlsZUlkIiA6ICJmNThkZWJkNTlmNTA0MjIyOGY2MDIyMjExZDRjMTQwYyIsCiAgInByb2ZpbGVOYW1lIiA6ICJ1bnZlbnRpdmV0YWxlbnQiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGMxMzcwMGVlMGViYzgwOTU2N2IxYTNjOTFhYzhjMWFhMmJiNWNlYjQ4YWRlNzZlOGJkN2QzMWE5Y2EzYjdkIgogICAgfQogIH0KfQ=="}]}},CustomModelData:3420101,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#F0EAD6","translate":"item.gm4.metallurgy.band","fallback":"Barium Band","with":[{"translate":"item.gm4.metallurgy.barium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.sensus","fallback":"Sensus"}']}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_spiraculum_shamir:band/v2"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_spiraculum_shamir:band/v2",name:"[Drop to Fix Item] gm4_spiraculum_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"infinitas",metal:{type:"curies_bismium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;-1332644679,659216762,2108439484,664728976],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODAyOTI2NzM2NiwKICAicHJvZmlsZUlkIiA6ICI3ZmIyOGQ1N2FhZmQ0MmQ1YTcwNWNlZjE4YWI1MzEzZiIsCiAgInByb2ZpbGVOYW1lIiA6ICJjaXJjdWl0MTAiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2MzMTBmZDk3YjFhN2Q3MDkwOGExODc2N2FjZmRjYzYwZDJhMTU1NTY5Zjk0YThmYjZhZWUxYTMzMWE5MjM4IgogICAgfQogIH0KfQ=="}]}},CustomModelData:3420100,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#467A1B","translate":"item.gm4.metallurgy.band","fallback":"Curie\'s Bismium Band","with":[{"translate":"item.gm4.metallurgy.curies_bismium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.infinitas","fallback":"Infinitas"}']}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_tinker_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_tinker_shamir:band/v1",name:"[Drop to Fix Item] gm4_tinker_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"tinker",metal:{type:"curies_bismium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;-1332644679,659216762,2108439484,664728976],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODAyOTI2NzM2NiwKICAicHJvZmlsZUlkIiA6ICI3ZmIyOGQ1N2FhZmQ0MmQ1YTcwNWNlZjE4YWI1MzEzZiIsCiAgInByb2ZpbGVOYW1lIiA6ICJjaXJjdWl0MTAiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2MzMTBmZDk3YjFhN2Q3MDkwOGExODc2N2FjZmRjYzYwZDJhMTU1NTY5Zjk0YThmYjZhZWUxYTMzMWE5MjM4IgogICAgfQogIH0KfQ=="}]}},CustomModelData:3420111,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#467A1B","translate":"item.gm4.metallurgy.band","fallback":"Curie\'s Bismium Band","with":[{"translate":"item.gm4.metallurgy.curies_bismium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.tinker","fallback":"Tinker"}']}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_vibro_shamir:band/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_vibro_shamir:band/v0",name:"[Drop to Fix Item] gm4_vibro_shamir:band",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"vibro",metal:{type:"thorium",amount:[12s],castable:1b},item:"obsidian_cast"},CustomModelData:3420123,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#767676","translate":"item.gm4.metallurgy.band","fallback":"Thorium Band","with":[{"translate":"item.gm4.metallurgy.thorium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.vibro","fallback":"Vibro"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_arborenda_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_arborenda_shamir:band/v1",name:"[Drop to Fix Item] gm4_arborenda_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"arborenda",metal:{type:"barium",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;-758190455,118414880,1677653096,2076204799],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODg4MzkzODA4MiwKICAicHJvZmlsZUlkIiA6ICJmNThkZWJkNTlmNTA0MjIyOGY2MDIyMjExZDRjMTQwYyIsCiAgInByb2ZpbGVOYW1lIiA6ICJ1bnZlbnRpdmV0YWxlbnQiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGMxMzcwMGVlMGViYzgwOTU2N2IxYTNjOTFhYzhjMWFhMmJiNWNlYjQ4YWRlNzZlOGJkN2QzMWE5Y2EzYjdkIgogICAgfQogIH0KfQ=="}]}},CustomModelData:"shamir/arborenda",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#F0EAD6","translate":"item.gm4.metallurgy.band","fallback":"%s Band","with":[{"translate":"item.gm4.metallurgy.barium","fallback":"Barium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.arborenda","fallback":"Arborenda"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_defuse_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_defuse_shamir:band/v1",name:"[Drop to Fix Item] gm4_defuse_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"defuse",metal:{type:"aluminium",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;1961294324,1560605478,885901402,915511979],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODc4ODAzNjY3NCwKICAicHJvZmlsZUlkIiA6ICI2MjM5ZWRhM2ExY2Y0YjJiYWMyODk2NGQ0NmNlOWVhOSIsCiAgInByb2ZpbGVOYW1lIiA6ICJGYXRGYXRHb2QiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGQ3MTQ5OTY0MDNlMTNhNGE4ZTc4OTQ0OWNjN2I5OGRhMmI4NDc1NTRjNDgwZGUyMDUxOTcwYjIxODIzZGJkOSIKICAgIH0KICB9Cn0="}]}},CustomModelData:"shamir/defuse",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#F47989","translate":"item.gm4.metallurgy.band","fallback":"%s Band","with":[{"translate":"item.gm4.metallurgy.aluminium","fallback":"Aluminium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.defuse","fallback":"Defuse"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_ender_bolt_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_ender_bolt_shamir:band/v1",name:"[Drop to Fix Item] gm4_ender_bolt_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"ender_bolt",metal:{type:"thorium",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;1709100198,-881135263,-295939255,1602156123],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE2NjM1MTAwNzIsInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTYzOTJhNmQ5OWY5MzE5ZWU3YzRmNGMxYTE5NzQ5ZDY4N2NkY2M4ZWVjOGZjNjY4ZTczZDM3YTZkYWY3N2EifX19"}]}},CustomModelData:"shamir/ender_bolt",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#767676","translate":"item.gm4.metallurgy.band","fallback":"%s Band","with":[{"translate":"item.gm4.metallurgy.thorium","fallback":"Thorium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.ender_bolt","fallback":"Ender Bolt"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_forterra_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_forterra_shamir:band/v1",name:"[Drop to Fix Item] gm4_forterra_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"forterra",metal:{type:"bismuth",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;-359255454,30123560,-1513962184,-616842323],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODAxNDc0OTQ2MSwKICAicHJvZmlsZUlkIiA6ICJiMWMyNWQ0YjMwZDU0N2Y4YTk3NmZlYTllOGU1YzBjMyIsCiAgInByb2ZpbGVOYW1lIiA6ICJvd29FbmRlciIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS82NmM0ODcwYmNiMDdkYWJjMjNiNTZkMzJlNzI5OWI5NTE4ZTU1N2VmMzU2YTNiZGRmNDBkNGM3MDIwYzI3MTdhIgogICAgfQogIH0KfQ=="}]}},CustomModelData:"shamir/forterra",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['[{"translate":"item.gm4.metallurgy.bismuth_band.red","fallback":"Bi","italic":false,"color":"#F47989"},{"translate":"item.gm4.metallurgy.bismuth_band.orange","fallback":"sm","italic":false,"color":"#F5B478"},{"translate":"item.gm4.metallurgy.bismuth_band.yellow","fallback":"ut","italic":false,"color":"#F5DD79"},{"translate":"item.gm4.metallurgy.bismuth_band.green","fallback":"h ","italic":false,"color":"#78F4AE"},{"translate":"item.gm4.metallurgy.bismuth_band.blue","fallback":"Ba","italic":false,"color":"#79D6F5"},{"translate":"item.gm4.metallurgy.bismuth_band.purple","fallback":"nd","italic":false,"color":"#8378F5"},{"translate":"item.gm4.metallurgy.bismuth_band.magenta","fallback":"‌","italic":false,"color":"#D579F5"}]','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.forterra","fallback":"Forterra"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_gemini_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_gemini_shamir:band/v1",name:"[Drop to Fix Item] gm4_gemini_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"gemini",metal:{type:"barimium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;-340714413,1525011343,50560746,-1948445052],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODc5MjUwNDk5MiwKICAicHJvZmlsZUlkIiA6ICI5MWYwNGZlOTBmMzY0M2I1OGYyMGUzMzc1Zjg2ZDM5ZSIsCiAgInByb2ZpbGVOYW1lIiA6ICJTdG9ybVN0b3JteSIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS85MzU2MjZhYzgwZmZmYWFiOTkyOWMwYWViNTg5N2RkN2FlOThjOWI5NTY1NjVjZTc3YTEyNjE0MjExYWI2NTg0IgogICAgfQogIH0KfQ=="}]}},CustomModelData:"shamir/gemini",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#D18A8A","translate":"item.gm4.metallurgy.band","fallback":"%s Band","with":[{"translate":"item.gm4.metallurgy.barimium","fallback":"Barimium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.gemini","fallback":"Gemini"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_hypexperia_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_hypexperia_shamir:band/v1",name:"[Drop to Fix Item] gm4_hypexperia_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"hypexperia",metal:{type:"bismuth",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;-359255454,30123560,-1513962184,-616842323],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODAxNDc0OTQ2MSwKICAicHJvZmlsZUlkIiA6ICJiMWMyNWQ0YjMwZDU0N2Y4YTk3NmZlYTllOGU1YzBjMyIsCiAgInByb2ZpbGVOYW1lIiA6ICJvd29FbmRlciIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS82NmM0ODcwYmNiMDdkYWJjMjNiNTZkMzJlNzI5OWI5NTE4ZTU1N2VmMzU2YTNiZGRmNDBkNGM3MDIwYzI3MTdhIgogICAgfQogIH0KfQ=="}]}},CustomModelData:"shamir/hypexperia",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['[{"translate":"item.gm4.metallurgy.bismuth_band.red","fallback":"Bi","italic":false,"color":"#F47989"},{"translate":"item.gm4.metallurgy.bismuth_band.orange","fallback":"sm","italic":false,"color":"#F5B478"},{"translate":"item.gm4.metallurgy.bismuth_band.yellow","fallback":"ut","italic":false,"color":"#F5DD79"},{"translate":"item.gm4.metallurgy.bismuth_band.green","fallback":"h ","italic":false,"color":"#78F4AE"},{"translate":"item.gm4.metallurgy.bismuth_band.blue","fallback":"Ba","italic":false,"color":"#79D6F5"},{"translate":"item.gm4.metallurgy.bismuth_band.purple","fallback":"nd","italic":false,"color":"#8378F5"},{"translate":"item.gm4.metallurgy.bismuth_band.magenta","fallback":"‌","italic":false,"color":"#D579F5"}]','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.hypexperia","fallback":"Hypexperia"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_infinitas_shamir:band/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_infinitas_shamir:band/v0",name:"[Drop to Fix Item] gm4_infinitas_shamir:band",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"infinitas",metal:{type:"curies_bismium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;111072104,-2136128314,-1898832976,-1860633164],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODAyOTI2NzM2NiwKICAicHJvZmlsZUlkIiA6ICI3ZmIyOGQ1N2FhZmQ0MmQ1YTcwNWNlZjE4YWI1MzEzZiIsCiAgInByb2ZpbGVOYW1lIiA6ICJjaXJjdWl0MTAiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2MzMTBmZDk3YjFhN2Q3MDkwOGExODc2N2FjZmRjYzYwZDJhMTU1NTY5Zjk0YThmYjZhZWUxYTMzMWE5MjM4IgogICAgfQogIH0KfQ=="}]}},CustomModelData:"shamir/infinitas",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#467A1B","translate":"item.gm4.metallurgy.band","fallback":"%s Band","with":[{"translate":"item.gm4.metallurgy.curies_bismium","fallback":"Curie\'s Bismium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.infinitas","fallback":"Infinitas"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_moneo_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_moneo_shamir:band/v1",name:"[Drop to Fix Item] gm4_moneo_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"moneo",metal:{type:"aluminium",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;1961294324,1560605478,885901402,915511979],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODc4ODAzNjY3NCwKICAicHJvZmlsZUlkIiA6ICI2MjM5ZWRhM2ExY2Y0YjJiYWMyODk2NGQ0NmNlOWVhOSIsCiAgInByb2ZpbGVOYW1lIiA6ICJGYXRGYXRHb2QiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGQ3MTQ5OTY0MDNlMTNhNGE4ZTc4OTQ0OWNjN2I5OGRhMmI4NDc1NTRjNDgwZGUyMDUxOTcwYjIxODIzZGJkOSIKICAgIH0KICB9Cn0="}]}},CustomModelData:"shamir/moneo",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#F47989","translate":"item.gm4.metallurgy.band","fallback":"%s Band","with":[{"translate":"item.gm4.metallurgy.aluminium","fallback":"Aluminium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.moneo","fallback":"Moneo"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_musical_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_musical_shamir:band/v1",name:"[Drop to Fix Item] gm4_musical_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"musical",metal:{type:"barimium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;-340714413,1525011343,50560746,-1948445052],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODc5MjUwNDk5MiwKICAicHJvZmlsZUlkIiA6ICI5MWYwNGZlOTBmMzY0M2I1OGYyMGUzMzc1Zjg2ZDM5ZSIsCiAgInByb2ZpbGVOYW1lIiA6ICJTdG9ybVN0b3JteSIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS85MzU2MjZhYzgwZmZmYWFiOTkyOWMwYWViNTg5N2RkN2FlOThjOWI5NTY1NjVjZTc3YTEyNjE0MjExYWI2NTg0IgogICAgfQogIH0KfQ=="}]}},CustomModelData:"shamir/musical",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#D18A8A","translate":"item.gm4.metallurgy.band","fallback":"%s Band","with":[{"translate":"item.gm4.metallurgy.barimium","fallback":"Barimium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.musical","fallback":"Musical"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_sensus_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_sensus_shamir:band/v1",name:"[Drop to Fix Item] gm4_sensus_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"sensus",metal:{type:"barium",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;-758190455,118414880,1677653096,2076204799],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODg4MzkzODA4MiwKICAicHJvZmlsZUlkIiA6ICJmNThkZWJkNTlmNTA0MjIyOGY2MDIyMjExZDRjMTQwYyIsCiAgInByb2ZpbGVOYW1lIiA6ICJ1bnZlbnRpdmV0YWxlbnQiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGMxMzcwMGVlMGViYzgwOTU2N2IxYTNjOTFhYzhjMWFhMmJiNWNlYjQ4YWRlNzZlOGJkN2QzMWE5Y2EzYjdkIgogICAgfQogIH0KfQ=="}]}},CustomModelData:"shamir/sensus",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#F0EAD6","translate":"item.gm4.metallurgy.band","fallback":"%s Band","with":[{"translate":"item.gm4.metallurgy.barium","fallback":"Barium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.sensus","fallback":"Sensus"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_spiraculum_shamir:band/v2"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_spiraculum_shamir:band/v2",name:"[Drop to Fix Item] gm4_spiraculum_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"infinitas",metal:{type:"curies_bismium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;-1332644679,659216762,2108439484,664728976],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODAyOTI2NzM2NiwKICAicHJvZmlsZUlkIiA6ICI3ZmIyOGQ1N2FhZmQ0MmQ1YTcwNWNlZjE4YWI1MzEzZiIsCiAgInByb2ZpbGVOYW1lIiA6ICJjaXJjdWl0MTAiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2MzMTBmZDk3YjFhN2Q3MDkwOGExODc2N2FjZmRjYzYwZDJhMTU1NTY5Zjk0YThmYjZhZWUxYTMzMWE5MjM4IgogICAgfQogIH0KfQ=="}]}},CustomModelData:"shamir/infinitas",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#467A1B","translate":"item.gm4.metallurgy.band","fallback":"%s Band","with":[{"translate":"item.gm4.metallurgy.curies_bismium","fallback":"Curie\'s Bismium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.infinitas","fallback":"Infinitas"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_tinker_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_tinker_shamir:band/v1",name:"[Drop to Fix Item] gm4_tinker_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"tinker",metal:{type:"curies_bismium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;-1332644679,659216762,2108439484,664728976],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODAyOTI2NzM2NiwKICAicHJvZmlsZUlkIiA6ICI3ZmIyOGQ1N2FhZmQ0MmQ1YTcwNWNlZjE4YWI1MzEzZiIsCiAgInByb2ZpbGVOYW1lIiA6ICJjaXJjdWl0MTAiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2MzMTBmZDk3YjFhN2Q3MDkwOGExODc2N2FjZmRjYzYwZDJhMTU1NTY5Zjk0YThmYjZhZWUxYTMzMWE5MjM4IgogICAgfQogIH0KfQ=="}]}},CustomModelData:"shamir/tinker",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#467A1B","translate":"item.gm4.metallurgy.band","fallback":"%s Band","with":[{"translate":"item.gm4.metallurgy.curies_bismium","fallback":"Curie\'s Bismium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.tinker","fallback":"Tinker"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_vibro_shamir:band/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_vibro_shamir:band/v0",name:"[Drop to Fix Item] gm4_vibro_shamir:band",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"vibro",metal:{type:"thorium",amount:[12s],castable:1b},item:"obsidian_cast"},CustomModelData:"shamir/vibro",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#767676","translate":"item.gm4.metallurgy.band","fallback":"%s Band","with":[{"translate":"item.gm4.metallurgy.thorium","fallback":"Thorium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.vibro","fallback":"Vibro"}']}}} # execute unless data storage gm4_player_heads:register heads[{id:"gm4_conduction_shamir:band/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_conduction_shamir:band/v0",name:"[Drop to Fix Item] gm4_conduction_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"conduction",metal:{type:"thorium",amount:[12s],castable:1b},item:"obsidian_cast"},CustomModelData:3420104,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#767676","translate":"item.gm4.metallurgy.band","fallback":"Thorium Band","with":[{"translate":"item.gm4.metallurgy.thorium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.conduction","fallback":"Conduction"}']}}} # execute unless data storage gm4_player_heads:register heads[{id:"gm4_levity_shamir:band/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_levity_shamir:band/v0",name:"[Drop to Fix Item] gm4_levity_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"levity",metal:{type:"aluminium",amount:[12s],castable:1b},item:"obsidian_cast"},CustomModelData:3420102,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#F47989","translate":"item.gm4.metallurgy.band","fallback":"Aluminium Band","with":[{"translate":"item.gm4.metallurgy.aluminium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.levity","fallback":"Levity"}']}}} @@ -91,7 +91,7 @@ scoreboard players add $powder_snow_infinitas gm4_ml_data 0 # register infinitas storage data remove storage gm4_infinitas_shamir:bucket shamir -execute unless data storage gm4_infinitas_shamir:bucket shamir run data modify storage gm4_infinitas_shamir:bucket shamir set value {gm4_metallurgy: {has_shamir: 1b, custom_model_data: 3420100, skull_owner: "[Drop to Fix Item] gm4_infinitas_shamir:band", metal: {type: "curies_bismium"}, active_shamir: "infinitas", uuid: [I; 1629560028, 901925746, -1943917803, 1056949700]}, CustomModelData: 3420100, display: {Lore: ['{"translate":"item.gm4.metallurgy.band","fallback":"%s Band","with":[{"translate":"item.gm4.metallurgy.curies_bismium","fallback":"Curie\'s Bismium"}],"italic":false,"color":"#467A1B"}', '{"translate":"item.gm4.metallurgy.shamir","fallback":"Shamir","italic":false,"color":"aqua"}', '{"translate":"item.gm4.shamir.infinitas","fallback":"Infinitas","italic":false,"color":"gray"}']}} +execute unless data storage gm4_infinitas_shamir:bucket shamir run data modify storage gm4_infinitas_shamir:bucket shamir set value {gm4_metallurgy: {has_shamir: 1b, custom_model_data: 3420100, skull_owner: "[Drop to Fix Item] gm4_infinitas_shamir:band", metal: {type: "curies_bismium"}, active_shamir: "infinitas", uuid: [I; 1629560028, 901925746, -1943917803, 1056949700]}, CustomModelData: "shamir/infinitas", display: {Lore: ['{"translate":"item.gm4.metallurgy.band","fallback":"%s Band","with":[{"translate":"item.gm4.metallurgy.curies_bismium","fallback":"Curie\'s Bismium"}],"italic":false,"color":"#467A1B"}', '{"translate":"item.gm4.metallurgy.shamir","fallback":"Shamir","italic":false,"color":"aqua"}', '{"translate":"item.gm4.shamir.infinitas","fallback":"Infinitas","italic":false,"color":"gray"}']}} #musical scoreboard objectives add gm4_note_collect totalKillCount diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/smooshing/add_band/check.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/smooshing/add_band/check.mcfunction index 1b6fb6a1f3..c49b3ed20c 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/smooshing/add_band/check.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/smooshing/add_band/check.mcfunction @@ -5,7 +5,7 @@ scoreboard players set valid_item gm4_ml_data 0 execute as @e[type=item,dx=0,limit=1,nbt={Item:{Count:1b}},nbt=!{Item:{tag:{gm4_metallurgy:{has_shamir:1b}}}}] run function gm4_metallurgy:smooshing/add_band/check_item -execute if score valid_item gm4_ml_data matches 1 run data merge entity @s {Item:{id:"minecraft:obsidian",tag:{CustomModelData:3420001,display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}},Tags:["gm4_ml_smooshed"]} +execute if score valid_item gm4_ml_data matches 1 run data merge entity @s {Item:{id:"minecraft:obsidian",tag:{CustomModelData:"item/slightly_damaged_obsidian",display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}},Tags:["gm4_ml_smooshed"]} execute if score valid_item gm4_ml_data matches 1 run data remove entity @s Item.tag.display.Name execute if score valid_item gm4_ml_data matches 1 run data remove entity @s Item.tag.gm4_metallurgy execute if score valid_item gm4_ml_data matches 1 run data remove entity @s Item.tag.SkullOwner diff --git a/gm4_metallurgy/data/gm4_metallurgy/guidebook/metallurgy.json b/gm4_metallurgy/data/gm4_metallurgy/guidebook/metallurgy.json index 5969ce026e..af25286406 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/guidebook/metallurgy.json +++ b/gm4_metallurgy/data/gm4_metallurgy/guidebook/metallurgy.json @@ -3,8 +3,7 @@ "name": "Metallurgy", "module_type": "base", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:anvil" }, "criteria": { "obtain_tnt": { diff --git a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/baryte_lump.json b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/baryte_lump.json index 02c14d1f25..8f23a6eb70 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/baryte_lump.json +++ b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/baryte_lump.json @@ -39,7 +39,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{gm4_metallurgy:{metal:{type:\"barium\",amount:[1s],castable:1b},item:\"ore\"},CustomModelData:3420019,SkullOwner:{Name:\"[Drop to Fix Item] gm4_metallurgy:ore/barium/v0\",Properties:{textures:[{Value:\"$ore/barium\"}]}}}" + "tag": "{gm4_metallurgy:{metal:{type:\"barium\",amount:[1s],castable:1b},item:\"ore\"},CustomModelData:'item/lump/baryte',SkullOwner:{Name:\"[Drop to Fix Item] gm4_metallurgy:ore/barium/v0\",Properties:{textures:[{Value:\"$ore/barium\"}]}}}" } ] } diff --git a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bauxite_lump.json b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bauxite_lump.json index ab9494fe68..395693b337 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bauxite_lump.json +++ b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bauxite_lump.json @@ -39,7 +39,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{gm4_metallurgy:{metal:{type:\"aluminium\",amount:[1s],castable:1b},item:\"ore\"},CustomModelData:3420021,SkullOwner:{Name:\"[Drop to Fix Item] gm4_metallurgy:ore/aluminium/v0\",Properties:{textures:[{Value:\"$ore/aluminium\"}]}}}" + "tag": "{gm4_metallurgy:{metal:{type:\"aluminium\",amount:[1s],castable:1b},item:\"ore\"},CustomModelData:'item/lump/bauxite',SkullOwner:{Name:\"[Drop to Fix Item] gm4_metallurgy:ore/aluminium/v0\",Properties:{textures:[{Value:\"$ore/aluminium\"}]}}}" } ] } diff --git a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bismuth_band.json b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bismuth_band.json index a793cbcbb5..8a48205491 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bismuth_band.json +++ b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bismuth_band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{gm4_metallurgy:{has_shamir:1b,metal:{type:\"bismuth\",amount:[12s],castable:1b},item:\"obsidian_cast\"},CustomModelData:3420053,SkullOwner:{Properties:{textures:[{Value:\"$band/bismuth\"}]}}}" + "tag": "{gm4_metallurgy:{has_shamir:1b,metal:{type:\"bismuth\",amount:[12s],castable:1b},item:\"obsidian_cast\"},SkullOwner:{Properties:{textures:[{Value:\"$band/bismuth\"}]}}}" }, { "function": "minecraft:set_name", @@ -24,44 +24,44 @@ "lore": [ [ { - "translate": "item.gm4.metallurgy.bismuth.red", + "translate": "item.gm4.metallurgy.bismuth_band.red", "fallback": "Bi", "italic": false, "color": "#F47989" }, { - "translate": "item.gm4.metallurgy.bismuth.orange", + "translate": "item.gm4.metallurgy.bismuth_band.orange", "fallback": "sm", "italic": false, "color": "#F5B478" }, { - "translate": "item.gm4.metallurgy.bismuth.yellow", + "translate": "item.gm4.metallurgy.bismuth_band.yellow", "fallback": "ut", "italic": false, "color": "#F5DD79" }, { - "translate": "item.gm4.metallurgy.bismuth.green", + "translate": "item.gm4.metallurgy.bismuth_band.green", "fallback": "h ", "italic": false, "color": "#78F4AE" }, { - "translate": "item.gm4.metallurgy.bismuth.blue", + "translate": "item.gm4.metallurgy.bismuth_band.blue", "fallback": "Ba", "italic": false, "color": "#79D6F5" }, { - "translate": "item.gm4.metallurgy.bismuth.purple", + "translate": "item.gm4.metallurgy.bismuth_band.purple", "fallback": "nd", "italic": false, "color": "#8378F5" }, { - "translate": "item.gm4.metallurgy.bismuth.magenta", - "fallback": "", + "translate": "item.gm4.metallurgy.bismuth_band.magenta", + "fallback": "\u200c", "italic": false, "color": "#D579F5" } diff --git a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bismutite_lump.json b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bismutite_lump.json index 8a750219d4..a00dfcd88d 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bismutite_lump.json +++ b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bismutite_lump.json @@ -75,7 +75,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{gm4_metallurgy:{metal:{type:\"bismuth\",amount:[1s],castable:1b},item:\"ore\"},CustomModelData:3420017,SkullOwner:{Name:\"[Drop to Fix Item] gm4_metallurgy:ore/bismuth\",Properties:{textures:[{Value:\"$ore/bismuth\"}]}}}" + "tag": "{gm4_metallurgy:{metal:{type:\"bismuth\",amount:[1s],castable:1b},item:\"ore\"},CustomModelData:'item/lump/bismutite',SkullOwner:{Name:\"[Drop to Fix Item] gm4_metallurgy:ore/bismuth\",Properties:{textures:[{Value:\"$ore/bismuth\"}]}}}" } ] } diff --git a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/thorianite_lump.json b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/thorianite_lump.json index dac9f1209e..72523833f2 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/thorianite_lump.json +++ b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/thorianite_lump.json @@ -39,7 +39,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{gm4_metallurgy:{metal:{type:\"thorium\",amount:[1s],castable:1b},item:\"ore\"},CustomModelData:3420020,SkullOwner:{Name:\"[Drop to Fix Item] gm4_metallurgy:ore/thorium/v0\",Properties:{textures:[{Value:\"$ore/thorium\"}]}}}" + "tag": "{gm4_metallurgy:{metal:{type:\"thorium\",amount:[1s],castable:1b},item:\"ore\"},CustomModelData:'item/lump/thorianite',SkullOwner:{Name:\"[Drop to Fix Item] gm4_metallurgy:ore/thorium/v0\",Properties:{textures:[{Value:\"$ore/thorium\"}]}}}" } ] } diff --git a/gm4_metallurgy/data/gm4_moneo_shamir/guidebook/moneo_shamir.json b/gm4_metallurgy/data/gm4_moneo_shamir/guidebook/moneo_shamir.json index b6a8d65f77..2e71369bc1 100644 --- a/gm4_metallurgy/data/gm4_moneo_shamir/guidebook/moneo_shamir.json +++ b/gm4_metallurgy/data/gm4_moneo_shamir/guidebook/moneo_shamir.json @@ -5,8 +5,7 @@ "load_check": "metallurgy", "base_module": "metallurgy", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420113}" + "item": "minecraft:anvil" }, "criteria": { "obtain_moneo_shamir": { diff --git a/gm4_metallurgy/data/gm4_moneo_shamir/loot_tables/band.json b/gm4_metallurgy/data/gm4_moneo_shamir/loot_tables/band.json index 26130572c8..027b3bcd65 100644 --- a/gm4_metallurgy/data/gm4_moneo_shamir/loot_tables/band.json +++ b/gm4_metallurgy/data/gm4_moneo_shamir/loot_tables/band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420113,SkullOwner:{Name:\"[Drop to Fix Item] gm4_moneo_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"moneo\"}}" + "tag": "{CustomModelData:'shamir/moneo',SkullOwner:{Name:\"[Drop to Fix Item] gm4_moneo_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"moneo\"}}" }, { "function": "minecraft:set_lore", diff --git a/gm4_metallurgy/data/gm4_musical_shamir/guidebook/musical_shamir.json b/gm4_metallurgy/data/gm4_musical_shamir/guidebook/musical_shamir.json index f5ef6b0a3e..c87a1b5e0d 100644 --- a/gm4_metallurgy/data/gm4_musical_shamir/guidebook/musical_shamir.json +++ b/gm4_metallurgy/data/gm4_musical_shamir/guidebook/musical_shamir.json @@ -5,8 +5,7 @@ "load_check": "metallurgy", "base_module": "metallurgy", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420108}" + "item": "minecraft:anvil" }, "criteria": { "obtain_musical_shamir": { diff --git a/gm4_metallurgy/data/gm4_musical_shamir/loot_tables/band.json b/gm4_metallurgy/data/gm4_musical_shamir/loot_tables/band.json index 207c0c385d..1110af60cd 100644 --- a/gm4_metallurgy/data/gm4_musical_shamir/loot_tables/band.json +++ b/gm4_metallurgy/data/gm4_musical_shamir/loot_tables/band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420108,SkullOwner:{Name:\"[Drop to Fix Item] gm4_musical_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"musical\"}}" + "tag": "{CustomModelData:'shamir/musical',SkullOwner:{Name:\"[Drop to Fix Item] gm4_musical_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"musical\"}}" }, { "function": "minecraft:set_lore", diff --git a/gm4_metallurgy/data/gm4_sensus_shamir/guidebook/sensus_shamir.json b/gm4_metallurgy/data/gm4_sensus_shamir/guidebook/sensus_shamir.json index 6226850c5c..402441fd99 100644 --- a/gm4_metallurgy/data/gm4_sensus_shamir/guidebook/sensus_shamir.json +++ b/gm4_metallurgy/data/gm4_sensus_shamir/guidebook/sensus_shamir.json @@ -5,8 +5,7 @@ "load_check": "metallurgy", "base_module": "metallurgy", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420101}" + "item": "minecraft:anvil" }, "criteria": { "obtain_sensus_shamir": { diff --git a/gm4_metallurgy/data/gm4_sensus_shamir/loot_tables/band.json b/gm4_metallurgy/data/gm4_sensus_shamir/loot_tables/band.json index 8f6a1b38da..329db18462 100644 --- a/gm4_metallurgy/data/gm4_sensus_shamir/loot_tables/band.json +++ b/gm4_metallurgy/data/gm4_sensus_shamir/loot_tables/band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420101,SkullOwner:{Name:\"[Drop to Fix Item] gm4_sensus_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"sensus\"}}" + "tag": "{CustomModelData:'shamir/sensus',SkullOwner:{Name:\"[Drop to Fix Item] gm4_sensus_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"sensus\"}}" }, { "function": "minecraft:set_lore", diff --git a/gm4_metallurgy/data/gm4_tinker_shamir/guidebook/tinker_shamir.json b/gm4_metallurgy/data/gm4_tinker_shamir/guidebook/tinker_shamir.json index 9550930407..5c46a17b59 100644 --- a/gm4_metallurgy/data/gm4_tinker_shamir/guidebook/tinker_shamir.json +++ b/gm4_metallurgy/data/gm4_tinker_shamir/guidebook/tinker_shamir.json @@ -5,8 +5,7 @@ "load_check": "metallurgy", "base_module": "metallurgy", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420111}" + "item": "minecraft:anvil" }, "criteria": { "obtain_tinker_shamir": { diff --git a/gm4_metallurgy/data/gm4_tinker_shamir/loot_tables/band.json b/gm4_metallurgy/data/gm4_tinker_shamir/loot_tables/band.json index ee1e7b09d6..2d8d16bdac 100644 --- a/gm4_metallurgy/data/gm4_tinker_shamir/loot_tables/band.json +++ b/gm4_metallurgy/data/gm4_tinker_shamir/loot_tables/band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420111,SkullOwner:{Name:\"[Drop to Fix Item] gm4_tinker_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"tinker\"}}" + "tag": "{CustomModelData:'shamir/tinker',SkullOwner:{Name:\"[Drop to Fix Item] gm4_tinker_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"tinker\"}}" }, { "function": "minecraft:set_lore", diff --git a/gm4_metallurgy/data/gm4_vibro_shamir/guidebook/vibro_shamir.json b/gm4_metallurgy/data/gm4_vibro_shamir/guidebook/vibro_shamir.json index d1729b2187..4d7f0b2666 100644 --- a/gm4_metallurgy/data/gm4_vibro_shamir/guidebook/vibro_shamir.json +++ b/gm4_metallurgy/data/gm4_vibro_shamir/guidebook/vibro_shamir.json @@ -5,8 +5,7 @@ "load_check": "metallurgy", "base_module": "metallurgy", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420123}" + "item": "minecraft:anvil" }, "criteria": { "obtain_vibro_shamir": { diff --git a/gm4_metallurgy/data/gm4_vibro_shamir/loot_tables/band.json b/gm4_metallurgy/data/gm4_vibro_shamir/loot_tables/band.json index 82d4e3a5f6..7cc3ef1500 100644 --- a/gm4_metallurgy/data/gm4_vibro_shamir/loot_tables/band.json +++ b/gm4_metallurgy/data/gm4_vibro_shamir/loot_tables/band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420123,SkullOwner:{Name:\"[Drop to Fix Item] gm4_vibro_shamir:band\"},gm4_metallurgy:{stored_shamir:\"vibro\"}}" + "tag": "{CustomModelData:'shamir/vibro',SkullOwner:{Name:\"[Drop to Fix Item] gm4_vibro_shamir:band\"},gm4_metallurgy:{stored_shamir:\"vibro\"}}" }, { "function": "minecraft:set_lore", diff --git a/gm4_metallurgy/shamir_model_template.py b/gm4_metallurgy/shamir_model_template.py new file mode 100644 index 0000000000..36ab9b165f --- /dev/null +++ b/gm4_metallurgy/shamir_model_template.py @@ -0,0 +1,220 @@ +from beet import Context, Model, NamespaceProxy, ListOption, ResourcePack +from beet.contrib.vanilla import Vanilla, ClientJar +from beet.contrib.optifine import OptifineProperties +from typing import Any, ClassVar, Literal +from itertools import product, chain, count +import re +import logging + +from gm4.plugins.resource_pack import ModelData, TemplateOptions +from gm4.utils import add_namespace, MapOption + +parent_logger = logging.getLogger("gm4."+__name__) + +TOOL_MATERIALS = ["wooden", "stone", "iron", "golden", "diamond", "netherite"] +ARMOR_MATERIALS = ["leather", "chainmail", "iron", "golden", "diamond", "netherite"] +TOOLS = ["axe", "hoe", "pickaxe", "shovel"] +ARMOR = ["boots", "chestplate", "helmet", "leggings"] +BUCKETABLE = ["water", "lava", "milk", "powder_snow", "cod", "salmon", "pufferfish", "tropical_fish", "tadpole", "axolotl"] + +TEXTURELESS = ["shield"] # item model is unable to receive layer in vanilla + +# define item group lookups +GROUP_LOOKUP = { + "armor": [f"{material}_{armor}" for material, armor in product(ARMOR_MATERIALS, ARMOR)] + ["turtle_helmet"], + "tools": [f"{material}_{tool}" for material, tool in product(TOOL_MATERIALS, TOOLS)], + "weapons": [f"{material}_{weapon}" for material, weapon in product(TOOL_MATERIALS, ["sword", "axe"])] + ["trident"], + + "pickaxes": [f"{material}_pickaxe" for material in TOOL_MATERIALS], + "shovels": [f"{material}_shovel" for material in TOOL_MATERIALS], + "axes": [f"{material}_axe" for material in TOOL_MATERIALS], + "hoes": [f"{material}_hoe" for material in TOOL_MATERIALS], + "swords": [f"{material}_sword" for material in TOOL_MATERIALS], + + "boots": [f"{material}_boots" for material in ARMOR_MATERIALS], + "leggings": [f"{material}_leggings" for material in ARMOR_MATERIALS], + "chestplates": [f"{material}_chestplate" for material in ARMOR_MATERIALS], + "helmets": [f"{material}_helmet" for material in ARMOR_MATERIALS] + ["turtle_helmet"], + + "buckets": [f"{substance}_bucket" for substance in BUCKETABLE] + ["bucket"] +} + +TEXTURE_LOOKUP = { # what texture to use if the exact item name is not present + item: "boots" for item in GROUP_LOOKUP["boots"]} | { + item: "leggings" for item in GROUP_LOOKUP["leggings"]} | { + item: "chestplate" for item in GROUP_LOOKUP["chestplates"]} | { + item: "helmet" for item in GROUP_LOOKUP["helmets"]} | { + item: "pickaxe" for item in GROUP_LOOKUP["pickaxes"]} | { + item: "shovel" for item in GROUP_LOOKUP["shovels"]} | { + item: "axe" for item in GROUP_LOOKUP["axes"]} | { + item: "hoe" for item in GROUP_LOOKUP["hoes"]} | { + item: "sword" for item in GROUP_LOOKUP["swords"]} | { + item: "bucket" for item in GROUP_LOOKUP["buckets"]} | { + "recovery_compass": "compass", + "carrot_on_a_stick": "fishing_rod", + "warped_fungus_on_a_stick": "fishing_rod" +} + +class ShamirTemplate(TemplateOptions): + """Model Template for generating models for shamirs on tools/armor""" + name = "shamir" + texture_map = ["", "band"] + textures_path: str = "" # directory of texture files to use for shamirs, falling back to the default metallurgy textures + metal: Literal["aluminium", "barimium", "barium", "bismuth", "curies_bismium", "thorium"] # the metallurgy metal this shamir is made of + + bound_ctx: ClassVar[Context] + metallurgy_assets: ClassVar[ResourcePack] = ResourcePack(path="gm4_metallurgy") # load metallurgy textures so expansion shamirs can fall back on their + vanilla_models_jar: ClassVar[ClientJar] + + def process(self, config: ModelData, models_container: NamespaceProxy[Model]) -> list[Model]: + logger = parent_logger.getChild(self.bound_ctx.project_id) + models_loc = f"{config.reference}" + models: dict[str, str|list[dict[str,Any]]] = {} # the value of config.models to be applied after going through special cases + ret_list: list[Model] = [] + + for item in config.item.entries(): + if item == "player_head": + # create the band item-model, which shares the same CMD as all the tools/armor + m = Model({ + "parent": "item/generated", + "textures": { + "layer0": config.textures["band"] + } + }) + models_container[f"{models_loc}/band"] = m + ret_list.append(m) + models.update({"player_head": f"{models_loc}/band"}) + continue + + + # find the texture to use; first in this module at the path directed + if (t:=add_namespace(f"{self.textures_path}/{item}" , self.bound_ctx.project_id)) in self.bound_ctx.assets.textures: # check for the item exactly + texture = t + elif (t:=add_namespace(f"{self.textures_path}/{TEXTURE_LOOKUP.get(item)}" , self.bound_ctx.project_id)) in self.bound_ctx.assets.textures: # check for a generic "axe" texture + texture = t + # then in the base gm4_metallurgy textures + elif (t:=add_namespace(f"item/shamir/{self.metal}/{item}" , "gm4_metallurgy")) in self.metallurgy_assets.textures: # check for the item exactly + texture = t + logger.debug(f"An appropiate texture for '{item}' could not be found in {self.textures_path}, falling back to the texture {t}") + elif (t:=add_namespace(f"item/shamir/{self.metal}/{TEXTURE_LOOKUP.get(item)}" , "gm4_metallurgy")) in self.metallurgy_assets.textures: # check for a generic "axe" texture + texture = t + logger.debug(f"An appropiate texture for '{item}' could not be found in {self.textures_path}, falling back to the texture {t}") + else: + if item not in TEXTURELESS: + logger.warning(f"No shamir texture for '{item}' could be found!") + texture = "gm4:item/empty" + + # generate the models, using the vanilla models as a base + total_layers = 0 # number of texture layers in vanilla + base_layers = 0 # number of texture layers on the simplest item ie trim-less armor + if item in GROUP_LOOKUP["armor"]: + total_layers = 1 # put the texture above the trims + base_layers = 0 # untrimmed armor has no layer1 + if item.startswith("leather"): + total_layers = 2 # and the dyed portion + base_layers = 1 + + m = Model({ + "parent": f"minecraft:item/{item}", + "textures": { + f"layer{base_layers+1}": texture + } + }) + models_container[f"{models_loc}/{item}"] = m + ret_list.append(m) + + variants: Any = [{"model": f"{models_loc}/{item}"}] # the base model is just a regular model reference + for override in self.vanilla_models_jar.assets.models[f"minecraft:item/{item}"].data.get('overrides', []): + item_variant = override['model'].split('/')[-1] # ie, iron_chestplate_quartz_trim, fishing_rod_cast, compass_00, elytra_broken ect... + + texture_variant = ('/'.join(texture.split('/')[0:-1] + [item_variant])) # is there an explicit texture for this variant. ie broken_elytra.png? + variant_tex_exists = texture_variant in self.bound_ctx.assets.textures or texture_variant in self.metallurgy_assets.textures + + m = Model({ + "parent": f"minecraft:item/{item_variant}", + "textures": { + f"layer{total_layers+1}": texture_variant if variant_tex_exists else texture + } + }) + models_container[f"{models_loc}/{item_variant}"] = m + ret_list.append(m) + variants.append({ + "predicate": override['predicate'], + "model": f"{models_loc}/{item_variant}" + }) + models.update({item: variants}) + + # optifine .properties handling + if item in GROUP_LOOKUP["armor"]: + material = item.split("_")[0] + + if material == "golden": + material = "gold" # vanilla armor textures are called "gold_layer_1" for some reason + layer = item.endswith("leggings")+1 # leggings use layer 2 + + self.bound_ctx.generate(f"gm4_metallurgy:cit/{self.metal}/{item}", merge=OptifineProperties( + "\n".join([e for e in [ + "type=armor", + f"matchItems={item}", + f"texture.{material}_layer_{layer}={material}_layer_{layer}", + f"texture.leather_layer_{layer}_overlay=leather_layer_{layer}_overlay" if material == "leather" else None, + f"nbt.CustomModelData=regex:(${config.reference})" + ] if e is not None]) + )) + elif item in ["elytra", "trident", "spyglass"]: + self.bound_ctx.generate(f"gm4_metallurgy:cit/{self.metal}/{item}", merge=OptifineProperties( + "\n".join([ + "type=elytra" if item=="elytra" else f"type=item", + f"matchItems={item}", + f"texture.{item}={item}", + f"nbt.CustomModelData=regex:(${config.reference})" + ]) + )) + + config.model = MapOption(__root__=models) + return ret_list + + def mutate_config(self, config: ModelData): + expanded_items = set(chain.from_iterable([GROUP_LOOKUP.get(group, [group]) for group in config.item.entries()])) | {"player_head"} + config.item = ListOption(__root__=list(expanded_items)) + config.model = MapOption(__root__={item: config.reference for item in expanded_items}) + if isinstance(config.textures.__root__, list): + config.textures = MapOption(__root__={"band": f"gm4_metallurgy:item/band/{self.metal}_band"}) + else: # isinstance(.., dict): + config.textures = MapOption(__root__={"band": f"gm4_metallurgy:item/band/{self.metal}_band"}|config.textures.__root__) + + +def optifine_armor_properties_merging(pack: ResourcePack, path: str, current: OptifineProperties, conflict: OptifineProperties) -> bool: + if not path.startswith("gm4_metallurgy:cit"): # only apply this rule to metallurgy files + return False + + merged = current.text.splitlines() + pattern = re.compile(r"^nbt.CustomModelData=regex:\((.+)\)$", flags=re.MULTILINE) + for i, current_line, conflict_line in zip(count(), current.text.splitlines(), conflict.text.splitlines()): + current_match = pattern.match(current_line) + conflict_match = pattern.match(conflict_line) + + if not current_match or not conflict_match: # this line is not the nbt.CustomModelData config + if current_line != conflict_line: + return False # the files are not the same, abort the merge + continue # process the next line pair + + current_cmd = set(current_match.group(1).split("|")) + conflict_cmd = set(conflict_match.group(1).split("|")) + + merged[i] = f"nbt.CustomModelData=regex:({'|'.join(current_cmd|conflict_cmd)})" + + + current.text = "\n".join(merged) + return True + +def beet_default(ctx: Context): + # bind context object to a ClassVar so it can be accessed later during template processing + ShamirTemplate.bound_ctx = ctx + vanilla = ctx.inject(Vanilla) + ShamirTemplate.vanilla_models_jar = vanilla.mount("assets/minecraft/models/item") + merge_policy(ctx) + +def merge_policy(ctx: Context): + ctx.assets.merge_policy.extend_namespace(OptifineProperties, optifine_armor_properties_merging) + # a separate plugin to register the merge policy - used for the pyproject.toml custom policy workaround when using broadcast pipelines diff --git a/gm4_midnight_menaces/data/gm4_enlarging_phantoms/guidebook/enlarging_phantoms.json b/gm4_midnight_menaces/data/gm4_enlarging_phantoms/guidebook/enlarging_phantoms.json index 9288dd77c8..a94318678c 100644 --- a/gm4_midnight_menaces/data/gm4_enlarging_phantoms/guidebook/enlarging_phantoms.json +++ b/gm4_midnight_menaces/data/gm4_enlarging_phantoms/guidebook/enlarging_phantoms.json @@ -5,8 +5,7 @@ "load_check": "midnight_menaces", "base_module": "mysterious_midnights", "icon": { - "item": "minecraft:phantom_membrane", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:phantom_membrane" }, "criteria": { "fight_enlarged_phantom": { diff --git a/gm4_midnight_menaces/data/gm4_icy_strays/guidebook/icy_strays.json b/gm4_midnight_menaces/data/gm4_icy_strays/guidebook/icy_strays.json index 16d5fa1d05..cbc42c32d9 100644 --- a/gm4_midnight_menaces/data/gm4_icy_strays/guidebook/icy_strays.json +++ b/gm4_midnight_menaces/data/gm4_icy_strays/guidebook/icy_strays.json @@ -5,8 +5,7 @@ "load_check": "midnight_menaces", "base_module": "mysterious_midnights", "icon": { - "item": "minecraft:ice", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:ice" }, "criteria": { "fight_icy_stray": { diff --git a/gm4_midnight_menaces/data/gm4_illusioner_nights/guidebook/illusioner_nights.json b/gm4_midnight_menaces/data/gm4_illusioner_nights/guidebook/illusioner_nights.json index 87310d280d..1861d7b2c7 100644 --- a/gm4_midnight_menaces/data/gm4_illusioner_nights/guidebook/illusioner_nights.json +++ b/gm4_midnight_menaces/data/gm4_illusioner_nights/guidebook/illusioner_nights.json @@ -6,7 +6,7 @@ "base_module": "mysterious_midnights", "icon": { "item": "minecraft:lingering_potion", - "nbt": "{CustomModelData:3420001,Potion:\"minecraft:long_invisibility\"}" + "nbt": "{Potion:\"minecraft:long_invisibility\"}" }, "criteria": { "fight_illusioner": { diff --git a/gm4_midnight_menaces/data/gm4_menacing_goblins/guidebook/menacing_goblins.json b/gm4_midnight_menaces/data/gm4_menacing_goblins/guidebook/menacing_goblins.json index 2cd272366e..9869e7c775 100644 --- a/gm4_midnight_menaces/data/gm4_menacing_goblins/guidebook/menacing_goblins.json +++ b/gm4_midnight_menaces/data/gm4_menacing_goblins/guidebook/menacing_goblins.json @@ -5,8 +5,7 @@ "load_check": "midnight_menaces", "base_module": "mysterious_midnights", "icon": { - "item": "minecraft:carved_pumpkin", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:carved_pumpkin" }, "criteria": { "fight_goblin": { diff --git a/gm4_midnight_menaces/data/gm4_sandy_husks/guidebook/sandy_husks.json b/gm4_midnight_menaces/data/gm4_sandy_husks/guidebook/sandy_husks.json index 37a9ea5b35..267ea524dd 100644 --- a/gm4_midnight_menaces/data/gm4_sandy_husks/guidebook/sandy_husks.json +++ b/gm4_midnight_menaces/data/gm4_sandy_husks/guidebook/sandy_husks.json @@ -5,8 +5,7 @@ "load_check": "midnight_menaces", "base_module": "mysterious_midnights", "icon": { - "item": "minecraft:sand", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:sand" }, "criteria": { "fight_sandy_husk": { diff --git a/gm4_midnight_menaces/data/gm4_slime_fests/guidebook/slime_fests.json b/gm4_midnight_menaces/data/gm4_slime_fests/guidebook/slime_fests.json index 4c2cb31434..8568b3d5f0 100644 --- a/gm4_midnight_menaces/data/gm4_slime_fests/guidebook/slime_fests.json +++ b/gm4_midnight_menaces/data/gm4_slime_fests/guidebook/slime_fests.json @@ -5,8 +5,7 @@ "load_check": "midnight_menaces", "base_module": "mysterious_midnights", "icon": { - "item": "minecraft:slime_ball", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:slime_ball" }, "criteria": { "fight_slime": { diff --git a/gm4_midnight_menaces/translations.csv b/gm4_midnight_menaces/translations.csv new file mode 100644 index 0000000000..c17714cdf7 --- /dev/null +++ b/gm4_midnight_menaces/translations.csv @@ -0,0 +1,16 @@ +key,en_us +entity.gm4.goblin,Goblin§ +text.gm4.guidebook.module_desc.enlarging_phantoms,Adds 7 new events to Mysterious Midnights! From nights with merging Slimes to scary Illusioners -- this is a variety pack you shouldn't miss out on! +text.gm4.guidebook.enlarging_phantoms.description,"During an Enlarging Phantoms event, larger phantoms will spawn in the sky, regardless of insomniacs.\n\nLarger phantoms have more health and greater attack strength." +text.gm4.guidebook.module_desc.icy_strays,Adds 7 new events to Mysterious Midnights! From nights with merging Slimes to scary Illusioners -- this is a variety pack you shouldn't miss out on! +text.gm4.guidebook.icy_strays.description,"During an Icy Strays event, half of the skeletons will spawn as strays.\n\nThese strays will drop ice when killed with looting." +text.gm4.guidebook.module_desc.illusioner_nights,Adds 7 new events to Mysterious Midnights! From nights with merging Slimes to scary Illusioners -- this is a variety pack you shouldn't miss out on! +text.gm4.guidebook.illusioner_nights.description,"During an Illusioner Nights event, illusioners will spawn.\n\nThese illusioners will drop golden carrots, and some potions when killed." +text.gm4.guidebook.module_desc.menacing_goblins,Adds 7 new events to Mysterious Midnights! From nights with merging Slimes to scary Illusioners -- this is a variety pack you shouldn't miss out on! +text.gm4.guidebook.menacing_goblins.description,"During a Menacing Goblins event, golden sword wielding goblins will spawn.\n\nThese goblins have more health than normal zombies and can track enemies from a far distance." +text.gm4.guidebook.menacing_goblins.behavior,"Goblins wear a pumpkin with Thorns III.\n\nGoblins will steal diamonds, iron ingots, and gold ingots when nearby.\n\nWhen killed, they will drop most of the items they stole, along with some rotten flesh, iron nuggets, and golden nuggets." +text.gm4.guidebook.module_desc.sandy_husks,Adds 7 new events to Mysterious Midnights! From nights with merging Slimes to scary Illusioners -- this is a variety pack you shouldn't miss out on! +text.gm4.guidebook.sandy_husks.description,"During a Sandy Husks event, half of zombies will spawn as husks.\n\nThese husks will drop sand when killed with looting." +text.gm4.guidebook.module_desc.slime_fests,Adds 7 new events to Mysterious Midnights! From nights with merging Slimes to scary Illusioners -- this is a variety pack you shouldn't miss out on! +text.gm4.guidebook.slime_fests.description,"During a Slime Fests event, Slimes will merge, naturally spawn, and reanimate from slimeballs.\n\nSmall slimes will spawn in dark spaces and slimeballs on the floor will turn into slimes." +text.gm4.guidebook.slime_fests.merging,"Two slimes of the same size will merge together to form a larger slime.\n\nHuge slimes can be created this way, which will drop a special loot table when killed." diff --git a/gm4_mob_curing/assets/minecraft/optifine/mob/villager/profession/cleric.properties b/gm4_mob_curing/assets/minecraft/optifine/mob/villager/profession/cleric.properties new file mode 100644 index 0000000000..cd0a56de6b --- /dev/null +++ b/gm4_mob_curing/assets/minecraft/optifine/mob/villager/profession/cleric.properties @@ -0,0 +1,4 @@ +#gm4_mob_conversion:brewer +skins.2=2 +name.2=regex:(Potion Cleric\u00A7|Preparador de Pociones\u00A7) +professions.2=minecraft:cleric diff --git a/gm4_mob_curing/assets/minecraft/optifine/mob/villager/profession/cleric2.png b/gm4_mob_curing/assets/minecraft/optifine/mob/villager/profession/cleric2.png new file mode 100644 index 0000000000..883cd17875 Binary files /dev/null and b/gm4_mob_curing/assets/minecraft/optifine/mob/villager/profession/cleric2.png differ diff --git a/gm4_mob_curing/assets/translations.csv b/gm4_mob_curing/assets/translations.csv new file mode 100644 index 0000000000..fc441fc9eb --- /dev/null +++ b/gm4_mob_curing/assets/translations.csv @@ -0,0 +1,10 @@ +key,en_us +advancement.gm4.mob_curing.title,Witch Doctor +advancement.gm4.mob_curing.description.1,Cure a Witch into a Potion Cleric +advancement.gm4.mob_curing.description.2,\u266b Ooh ee ooh ah ah ting tang walla walla bing bang \u266b +entity.gm4.potion_cleric,Potion Cleric§ +text.gm4.guidebook.module_desc.mob_curing,"Revert mooshrooms, pigmen and witches back to their previous forms." +text.gm4.guidebook.mob_curing.description,"Similar to Zombie curing, some mobs can be reverted to previous forms.\n\nThe curing process requires one to splash the mob with a potion and drop an item at its feet." +text.gm4.guidebook.mob_curing.conversions,Zomb. Piglin -> Pig\n - Swiftness\n - Golden Carrot\n\nZomb. Piglin -> Piglin\n OR Zoglin -> Hoglin\n - Weakness\n - Golden Carrot\n\nWitch -> Potion Cleric\n - Weakness\n - Golden Apple +text.gm4.guidebook.mob_curing.conversions_1,Evoker -> Pillager\n - Slowness IV\n - Crossbow\n\nIllusioner -> Evoker\n - Swiftness\n - Totem of Undying\n\nCow -> Mooshroom\n - Slowness\n - Red Mushroom\n - Brown Mushroom +text.gm4.guidebook.mob_curing.potion_cleric,"The Potion Cleric will sell various potions for emeralds. Each potion trade is randomized starting from 3 emeralds, up to 13 emeralds.\n\nThe curer will be rewarded temporarily with some discounted potion prices." diff --git a/gm4_mob_curing/beet.yaml b/gm4_mob_curing/beet.yaml index 4614dcd028..de6ca7b7e0 100644 --- a/gm4_mob_curing/beet.yaml +++ b/gm4_mob_curing/beet.yaml @@ -5,6 +5,9 @@ version: 1.5.X data_pack: load: . +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module - gm4.plugins.include.lib_trades @@ -15,6 +18,10 @@ meta: required: lib_trades: 1.3.0 schedule_loops: [main] + model_data: + - item: potion + reference: gui/advancement/mob_curing + template: advancement website: description: Revert mooshrooms, pigmen and witches back to their previous forms. recommended: diff --git a/gm4_mob_curing/data/gm4/advancements/mob_curing.json b/gm4_mob_curing/data/gm4/advancements/mob_curing.json index 3c12de056a..444c547197 100644 --- a/gm4_mob_curing/data/gm4/advancements/mob_curing.json +++ b/gm4_mob_curing/data/gm4/advancements/mob_curing.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:potion", - "nbt": "{CustomModelData:3420007,CustomPotionColor:16262179,Enchantments:[{id:\"protection\",lvl:0}]}" + "nbt": "{CustomModelData:'gui/advancement/mob_curing',CustomPotionColor:16262179,Enchantments:[{id:\"protection\",lvl:0}]}" }, "title": { "translate": "advancement.gm4.mob_curing.title", diff --git a/gm4_mob_curing/data/gm4_mob_curing/guidebook/mob_curing.json b/gm4_mob_curing/data/gm4_mob_curing/guidebook/mob_curing.json index 05e4088b53..af65857501 100644 --- a/gm4_mob_curing/data/gm4_mob_curing/guidebook/mob_curing.json +++ b/gm4_mob_curing/data/gm4_mob_curing/guidebook/mob_curing.json @@ -3,8 +3,7 @@ "name": "Mob Curing", "module_type": "module", "icon": { - "item": "minecraft:golden_apple", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:golden_apple" }, "criteria": { "obtain_splash_potion": { diff --git a/gm4_mountaineering/beet.yaml b/gm4_mountaineering/beet.yaml index 0609db0c05..7fd630a95d 100644 --- a/gm4_mountaineering/beet.yaml +++ b/gm4_mountaineering/beet.yaml @@ -17,6 +17,22 @@ meta: schedule_loops: - main - fast_main + model_data: + - item: iron_boots + reference: gui/advancement/ski + template: advancement + - item: diamond_boots + reference: gui/advancement/ski_fast + template: advancement + - item: chainmail_boots + reference: item/crampons + template: vanilla + - item: stick + reference: item/poles + template: vanilla + - item: iron_boots + reference: item/skis + template: vanilla website: description: A mezze of mountaineering means! Glide down slopes and scale cliffs. recommended: [] diff --git a/gm4_mountaineering/data/gm4/advancements/root.json b/gm4_mountaineering/data/gm4/advancements/root.json deleted file mode 100644 index d18beee07f..0000000000 --- a/gm4_mountaineering/data/gm4/advancements/root.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "display": { - "icon": { - "item": "command_block", - "nbt": "{CustomModelData:3420001}" - }, - "title": { - "translate": "advancement.gm4.root.title", - "fallback": "Gamemode 4" - }, - "description": { - "translate": "advancement.gm4.root.description", - "fallback": "Semi-funny blurb about GM4", - "color": "gray" - }, - "background": "textures/block/light_blue_concrete_powder.png", - "announce_to_chat": false - }, - "criteria": { - "automatic": { - "trigger": "minecraft:tick" - } - } -} diff --git a/gm4_mountaineering/data/gm4/advancements/ski.json b/gm4_mountaineering/data/gm4/advancements/ski.json index 0de9f460b4..394ac1c44e 100644 --- a/gm4_mountaineering/data/gm4/advancements/ski.json +++ b/gm4_mountaineering/data/gm4/advancements/ski.json @@ -2,14 +2,14 @@ "display": { "icon": { "item": "iron_boots", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/ski'}" }, "title": { - "translate": "advancement.gm4.mountaineering.title", + "translate": "advancement.gm4.mountaineering.ski.title", "fallback": "Piste de Résistance" }, "description": { - "translate": "advancement.gm4.mountaineering.description", + "translate": "advancement.gm4.mountaineering.ski.description", "fallback": "Get yourself a pair of skis", "color": "gray" } diff --git a/gm4_mountaineering/data/gm4/advancements/ski_fast.json b/gm4_mountaineering/data/gm4/advancements/ski_fast.json index 0369a90519..819896a201 100644 --- a/gm4_mountaineering/data/gm4/advancements/ski_fast.json +++ b/gm4_mountaineering/data/gm4/advancements/ski_fast.json @@ -2,14 +2,14 @@ "display": { "icon": { "item": "diamond_boots", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/ski_fast'}" }, "title": { - "translate": "advancement.gm4.mountaineering.title", + "translate": "advancement.gm4.mountaineering.ski_fast.title", "fallback": "Ski ya Later!" }, "description": { - "translate": "advancement.gm4.mountaineering.description", + "translate": "advancement.gm4.mountaineering.ski_fast.description", "fallback": "Reach the highest speed boost while skiing", "color": "gray" } diff --git a/gm4_mountaineering/data/gm4_mountaineering/guidebook/mountaineering.json b/gm4_mountaineering/data/gm4_mountaineering/guidebook/mountaineering.json index 6d60dae6fe..aebd2464bf 100644 --- a/gm4_mountaineering/data/gm4_mountaineering/guidebook/mountaineering.json +++ b/gm4_mountaineering/data/gm4_mountaineering/guidebook/mountaineering.json @@ -3,8 +3,7 @@ "name": "Mountaineering", "module_type": "module", "icon": { - "item": "minecraft:chainmail_boots", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:chainmail_boots" }, "criteria": { "obtain_iron_ingot": { diff --git a/gm4_mountaineering/data/gm4_mountaineering/loot_tables/items/crampons.json b/gm4_mountaineering/data/gm4_mountaineering/loot_tables/items/crampons.json index 9d2af8feda..44475c1523 100644 --- a/gm4_mountaineering/data/gm4_mountaineering/loot_tables/items/crampons.json +++ b/gm4_mountaineering/data/gm4_mountaineering/loot_tables/items/crampons.json @@ -10,7 +10,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_mountaineering:{item:\"crampons\"}}" + "tag": "{CustomModelData:'item/crampons',gm4_mountaineering:{item:\"crampons\"}}" }, { "function": "minecraft:set_name", diff --git a/gm4_mountaineering/data/gm4_mountaineering/loot_tables/items/poles.json b/gm4_mountaineering/data/gm4_mountaineering/loot_tables/items/poles.json index 0af44ae392..f0d702d681 100644 --- a/gm4_mountaineering/data/gm4_mountaineering/loot_tables/items/poles.json +++ b/gm4_mountaineering/data/gm4_mountaineering/loot_tables/items/poles.json @@ -10,7 +10,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_mountaineering:{item:\"poles\"},HideFlags:2}" + "tag": "{CustomModelData:'item/poles',gm4_mountaineering:{item:\"poles\"},HideFlags:2}" }, { "function": "minecraft:set_name", diff --git a/gm4_mountaineering/data/gm4_mountaineering/loot_tables/items/skis.json b/gm4_mountaineering/data/gm4_mountaineering/loot_tables/items/skis.json index ff88624d30..2463bf5254 100644 --- a/gm4_mountaineering/data/gm4_mountaineering/loot_tables/items/skis.json +++ b/gm4_mountaineering/data/gm4_mountaineering/loot_tables/items/skis.json @@ -10,7 +10,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_mountaineering:{item:\"skis\"}}" + "tag": "{CustomModelData:'item/skis',gm4_mountaineering:{item:\"skis\"}}" }, { "function": "minecraft:set_name", diff --git a/gm4_mountaineering/translations.csv b/gm4_mountaineering/translations.csv new file mode 100644 index 0000000000..a50488784d --- /dev/null +++ b/gm4_mountaineering/translations.csv @@ -0,0 +1,13 @@ +key,en_us +advancement.gm4.mountaineering.ski.title,Piste de R\u00e9sistance +advancement.gm4.mountaineering.ski.description,Get yourself a pair of skis +advancement.gm4.mountaineering.ski_fast.title,Ski ya Later! +advancement.gm4.mountaineering.ski_fast.description,Reach the highest speed boost while skiing +item.gm4.crampons,Crampons +item.gm4.poles,Ski Pole +item.gm4.skis,Skis +text.gm4.guidebook.module_desc.mountaineering,A mezze of mountaineering means! Glide down slopes and scale cliffs. +text.gm4.guidebook.mountaineering.description,Several items can be crafted in a Custom Crafter to ease snowy mountain traversal. +text.gm4.guidebook.mountaineering.crampons,"Wearing crampons allows users to scale rocky cliffs. Having empty hands helps with scaling.\n\nUsers can continuously climb rocky cliffs, but staying still will result in falling." +text.gm4.guidebook.mountaineering.skis,"Wearing skis allows users to move quickly over snowy surfaces.\n\nContinuously traveling downwards on snowy terrain increases speed, but traveling on non-snowy areas reduces the speed." +text.gm4.guidebook.mountaineering.poles,"Holding a Ski Pole in each hand can help when jumping. This is best paired with Skis.\n\nWhen using poles while skiing, a jump enhancement is given if going up a short ramp. Poles also make it easier to gain speed while skiing." diff --git a/gm4_mysterious_midnights/beet.yaml b/gm4_mysterious_midnights/beet.yaml index c9d2c27fea..8b8a8dd847 100644 --- a/gm4_mysterious_midnights/beet.yaml +++ b/gm4_mysterious_midnights/beet.yaml @@ -15,6 +15,10 @@ meta: required: lib_forceload: 1.1.0 schedule_loops: [main] + model_data: + - item: end_stone + reference: item/endermite_egg + template: vanilla website: description: Full moons gain a element of surprise with Myserious Midnights! This module adds random events during full moons. You might encounter falling stars, or Skeletons wielding poisonous arrows! So you better listen for that howl... recommended: diff --git a/gm4_mysterious_midnights/data/gm4_falling_stars/guidebook/falling_stars.json b/gm4_mysterious_midnights/data/gm4_falling_stars/guidebook/falling_stars.json index f1d8eeb813..4748f4ab73 100644 --- a/gm4_mysterious_midnights/data/gm4_falling_stars/guidebook/falling_stars.json +++ b/gm4_mysterious_midnights/data/gm4_falling_stars/guidebook/falling_stars.json @@ -5,8 +5,7 @@ "load_check": "mysterious_midnights", "base_module": "mysterious_midnights", "icon": { - "item": "minecraft:end_stone", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:end_stone" }, "criteria": { "find_falling_star": { diff --git a/gm4_mysterious_midnights/data/gm4_falling_stars/loot_tables/endermite_egg.json b/gm4_mysterious_midnights/data/gm4_falling_stars/loot_tables/endermite_egg.json index 29a0d9c04a..1e0c8301ab 100644 --- a/gm4_mysterious_midnights/data/gm4_falling_stars/loot_tables/endermite_egg.json +++ b/gm4_mysterious_midnights/data/gm4_falling_stars/loot_tables/endermite_egg.json @@ -28,7 +28,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_endermite_egg:1b}" + "tag": "{CustomModelData:'item/endermite_egg',gm4_endermite_egg:1b}" } ] } diff --git a/gm4_mysterious_midnights/data/gm4_harvest_moons/guidebook/harvest_moons.json b/gm4_mysterious_midnights/data/gm4_harvest_moons/guidebook/harvest_moons.json index 714562e30b..9e146a0b16 100644 --- a/gm4_mysterious_midnights/data/gm4_harvest_moons/guidebook/harvest_moons.json +++ b/gm4_mysterious_midnights/data/gm4_harvest_moons/guidebook/harvest_moons.json @@ -5,8 +5,7 @@ "load_check": "mysterious_midnights", "base_module": "mysterious_midnights", "icon": { - "item": "minecraft:wheat", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:wheat" }, "criteria": { "farming_during_harvest_moon": { diff --git a/gm4_mysterious_midnights/data/gm4_mysterious_midnights/guidebook/mysterious_midnights.json b/gm4_mysterious_midnights/data/gm4_mysterious_midnights/guidebook/mysterious_midnights.json index 4ebaabfecb..45ed3e87d1 100644 --- a/gm4_mysterious_midnights/data/gm4_mysterious_midnights/guidebook/mysterious_midnights.json +++ b/gm4_mysterious_midnights/data/gm4_mysterious_midnights/guidebook/mysterious_midnights.json @@ -2,7 +2,9 @@ "id": "mysterious_midnights", "name": "Mysterious Midnights", "module_type": "base", - "icon": {}, + "icon": { + "item": "minecraft:clock" + }, "criteria": {}, "sections": [ { diff --git a/gm4_mysterious_midnights/data/gm4_nightmare_nights/guidebook/nightmare_nights.json b/gm4_mysterious_midnights/data/gm4_nightmare_nights/guidebook/nightmare_nights.json index 89fbdf0223..5fb722612c 100644 --- a/gm4_mysterious_midnights/data/gm4_nightmare_nights/guidebook/nightmare_nights.json +++ b/gm4_mysterious_midnights/data/gm4_nightmare_nights/guidebook/nightmare_nights.json @@ -5,8 +5,7 @@ "load_check": "mysterious_midnights", "base_module": "mysterious_midnights", "icon": { - "item": "minecraft:blaze_powder", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:blaze_powder" }, "criteria": { "nightmare_sleep": { diff --git a/gm4_mysterious_midnights/data/gm4_resurrecting_skeletons/guidebook/resurrecting_skeletons.json b/gm4_mysterious_midnights/data/gm4_resurrecting_skeletons/guidebook/resurrecting_skeletons.json index 4dd59659b4..a51892f257 100644 --- a/gm4_mysterious_midnights/data/gm4_resurrecting_skeletons/guidebook/resurrecting_skeletons.json +++ b/gm4_mysterious_midnights/data/gm4_resurrecting_skeletons/guidebook/resurrecting_skeletons.json @@ -5,8 +5,7 @@ "load_check": "mysterious_midnights", "base_module": "mysterious_midnights", "icon": { - "item": "minecraft:bone", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:bone" }, "criteria": { "fight_resurrected_skeleton": { diff --git a/gm4_mysterious_midnights/data/gm4_resurrecting_zombies/guidebook/resurrecting_zombies.json b/gm4_mysterious_midnights/data/gm4_resurrecting_zombies/guidebook/resurrecting_zombies.json index fd19855a0b..f5330da1f4 100644 --- a/gm4_mysterious_midnights/data/gm4_resurrecting_zombies/guidebook/resurrecting_zombies.json +++ b/gm4_mysterious_midnights/data/gm4_resurrecting_zombies/guidebook/resurrecting_zombies.json @@ -5,8 +5,7 @@ "load_check": "mysterious_midnights", "base_module": "mysterious_midnights", "icon": { - "item": "minecraft:rotten_flesh", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:rotten_flesh" }, "criteria": { "fight_resurrected_zombie": { diff --git a/gm4_mysterious_midnights/data/gm4_tipped_skeletons/guidebook/tipped_skeletons.json b/gm4_mysterious_midnights/data/gm4_tipped_skeletons/guidebook/tipped_skeletons.json index 6050d93159..c972205e2d 100644 --- a/gm4_mysterious_midnights/data/gm4_tipped_skeletons/guidebook/tipped_skeletons.json +++ b/gm4_mysterious_midnights/data/gm4_tipped_skeletons/guidebook/tipped_skeletons.json @@ -6,7 +6,7 @@ "base_module": "mysterious_midnights", "icon": { "item": "minecraft:tipped_arrow", - "nbt": "{CustomModelData:3420001,Potion:'minecraft:long_poison'}" + "nbt": "{Potion:'minecraft:long_poison'}" }, "criteria": { "shot_by_tipped_skeleton": { diff --git a/gm4_mysterious_midnights/translations.csv b/gm4_mysterious_midnights/translations.csv new file mode 100644 index 0000000000..7e5828d2e6 --- /dev/null +++ b/gm4_mysterious_midnights/translations.csv @@ -0,0 +1,20 @@ +key,en_us +entity.gm4.falling_star,Falling Star +item.gm4.endermite_egg,Endermite Egg +item.gm4.endermite_egg.lore,"Oh, it didn't hatch" +text.gm4.guidebook.module_desc.falling_stars,"Full moons gain a element of surprise with Myserious Midnights! This module adds random events during full moons. You might encounter falling stars, or Skeletons wielding poisonous arrows! So you better listen for that howl..." +text.gm4.guidebook.falling_stars.description,"During a Falling Stars event, gifts will drop from the sky.\n\nDiamonds, iron nuggets, gold nuggets, endermites, end stone, and chorus fruit can be found falling from the sky." +text.gm4.guidebook.module_desc.harvest_moons,"Full moons gain a element of surprise with Myserious Midnights! This module adds random events during full moons. You might encounter falling stars, or Skeletons wielding poisonous arrows! So you better listen for that howl..." +text.gm4.guidebook.harvest_moons.description,"During a Harvest Moons event, random tick events, such as crop growth, will be 20 times quicker than normal." +text.gm4.guidebook.mysterious_midnights.description,"Every full moon, there is a high chance that a Mysterious Midnight event will occur.\n\nWhen a Mysterious Midnight event occurs, a howling sound will be heard." +text.gm4.guidebook.mysterious_midnights.sleeping,Mysterious Midnight events can usually be skipped by sleeping the night away. +text.gm4.guidebook.module_desc.nightmare_nights,"Full moons gain a element of surprise with Myserious Midnights! This module adds random events during full moons. You might encounter falling stars, or Skeletons wielding poisonous arrows! So you better listen for that howl..." +text.gm4.guidebook.nightmare_nights.description,"Nightmare Nights cannot be slept away. Attempting to sleep will deal instant damage.\n\nAdditionally, multiple Mysterious Midnights events will occur." +text.gm4.guidebook.nightmare_nights.events,"While a Nightmare Night is active, the following events will occur:\n\n - Resurrecting Skeletons\n - Resurrecting Zombies\n - Tipped Skeletons" +text.gm4.guidebook.nightmare_nights.events_with_menaces,"While a Nightmare Night is active, the following events will occur:\n\n - Resurrecting Skeletons\n - Resurrecting Zombies\n - Tipped Skeletons\n - Enlarging Phantoms\n - Illusioner Nights\n - Menacing Goblins" +text.gm4.guidebook.module_desc.resurrecting_skeletons,"Full moons gain a element of surprise with Myserious Midnights! This module adds random events during full moons. You might encounter falling stars, or Skeletons wielding poisonous arrows! So you better listen for that howl..." +text.gm4.guidebook.resurrecting_skeletons.description,"During a Resurrecting Skeletons event, bones on the floor will resurrect into unarmed skeletons, with a powerful attack." +text.gm4.guidebook.module_desc.resurrecting_zombies,"Full moons gain a element of surprise with Myserious Midnights! This module adds random events during full moons. You might encounter falling stars, or Skeletons wielding poisonous arrows! So you better listen for that howl..." +text.gm4.guidebook.resurrecting_zombies.description,"During a Resurrecting Zombies event, rotten flesh on the floor will resurrect into unarmed zombies, with a powerful attack." +text.gm4.guidebook.module_desc.tipped_skeletons,"Full moons gain a element of surprise with Myserious Midnights! This module adds random events during full moons. You might encounter falling stars, or Skeletons wielding poisonous arrows! So you better listen for that howl..." +text.gm4.guidebook.tipped_skeletons.description,"During a Tipped Skeletons event, skeletons will be equipped with tipped arrows.\n\nExtended slowness, extended weakness, extended poison, and strong harming tipped arrows are used." diff --git a/gm4_note_block_interface/data/gm4_note_block_interface/guidebook/note_block_interface.json b/gm4_note_block_interface/data/gm4_note_block_interface/guidebook/note_block_interface.json index 7487855ce3..869f75a6aa 100644 --- a/gm4_note_block_interface/data/gm4_note_block_interface/guidebook/note_block_interface.json +++ b/gm4_note_block_interface/data/gm4_note_block_interface/guidebook/note_block_interface.json @@ -3,8 +3,7 @@ "name": "Note Block Interface", "module_type": "module", "icon": { - "item": "minecraft:note_block", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:note_block" }, "criteria": { "tune_note_block": { diff --git a/gm4_note_block_interface/translations.csv b/gm4_note_block_interface/translations.csv new file mode 100644 index 0000000000..4610ac4cc5 --- /dev/null +++ b/gm4_note_block_interface/translations.csv @@ -0,0 +1,3 @@ +key,en_us +text.gm4.guidebook.module_desc.note_block_interface,Adds a neat interface to improve your musical skills! +text.gm4.guidebook.note_block_interface.description,Tuning or playing a note block will show its note above it.\n\nSneaking while tuning will cause the pitch to go down instead of up. diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/optifine/cit/fire_sprite.properties b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/optifine/cit/fire_sprite.properties new file mode 100644 index 0000000000..20cd77992c --- /dev/null +++ b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/optifine/cit/fire_sprite.properties @@ -0,0 +1,4 @@ +type=armor +matchItems=golden_helmet +texture.gold_layer_1=fire_sprite_layer_1 +nbt.CustomModelData=$entity/fire_sprite diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/optifine/cit/fire_sprite_layer_1.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/optifine/cit/fire_sprite_layer_1.png new file mode 100644 index 0000000000..ac91101dac Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/optifine/cit/fire_sprite_layer_1.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/aggressive.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/aggressive.png new file mode 100644 index 0000000000..b868fccb7b Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/aggressive.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/agile.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/agile.png new file mode 100644 index 0000000000..c15a9592cf Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/agile.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/anchoring.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/anchoring.png new file mode 100644 index 0000000000..705043dcfc Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/anchoring.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/bargaining.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/bargaining.png new file mode 100644 index 0000000000..1e8a6b26a6 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/bargaining.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/bashing.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/bashing.png new file mode 100644 index 0000000000..d8e95bdcfb Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/bashing.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/blasting.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/blasting.png new file mode 100644 index 0000000000..7210eac4e5 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/blasting.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/blinding.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/blinding.png new file mode 100644 index 0000000000..eacd300cb8 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/blinding.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/bounding.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/bounding.png new file mode 100644 index 0000000000..2b3f186d04 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/bounding.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/bubbly.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/bubbly.png new file mode 100644 index 0000000000..70c4c23764 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/bubbly.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/conjuring.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/conjuring.png new file mode 100644 index 0000000000..b09901eae1 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/conjuring.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/dashing.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/dashing.png new file mode 100644 index 0000000000..e275bc15b9 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/dashing.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/depriving.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/depriving.png new file mode 100644 index 0000000000..9dd8f9b70f Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/depriving.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/draining.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/draining.png new file mode 100644 index 0000000000..cb2cb8c194 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/draining.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/enduring.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/enduring.png new file mode 100644 index 0000000000..863124320c Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/enduring.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/expeditious.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/expeditious.png new file mode 100644 index 0000000000..541a815693 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/expeditious.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/feathery.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/feathery.png new file mode 100644 index 0000000000..bc8e6333fc Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/feathery.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/feigning.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/feigning.png new file mode 100644 index 0000000000..83f2c8c8ac Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/feigning.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/freezing.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/freezing.png new file mode 100644 index 0000000000..f061245277 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/freezing.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/gazing.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/gazing.png new file mode 100644 index 0000000000..9cc731a879 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/gazing.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/gliding.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/gliding.png new file mode 100644 index 0000000000..6374bfb9f0 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/gliding.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/hawkeye.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/hawkeye.png new file mode 100644 index 0000000000..fb4e35e66c Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/hawkeye.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/incombustible.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/incombustible.png new file mode 100644 index 0000000000..b2bf79092c Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/incombustible.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/lifeless.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/lifeless.png new file mode 100644 index 0000000000..f27d29c1d8 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/lifeless.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/neutralizing.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/neutralizing.png new file mode 100644 index 0000000000..74da66868f Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/neutralizing.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/phasing.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/phasing.png new file mode 100644 index 0000000000..9155d3fcf4 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/phasing.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/pricking.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/pricking.png new file mode 100644 index 0000000000..b2cfba09e5 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/pricking.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/retreating.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/retreating.png new file mode 100644 index 0000000000..8669e9b48e Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/retreating.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/rushing.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/rushing.png new file mode 100644 index 0000000000..54869acee1 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/rushing.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/scaling.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/scaling.png new file mode 100644 index 0000000000..62077d99c5 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/scaling.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/shrieking.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/shrieking.png new file mode 100644 index 0000000000..2de39582d0 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/shrieking.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/sniffing.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/sniffing.png new file mode 100644 index 0000000000..5a5a0cf43c Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/sniffing.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/soaring.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/soaring.png new file mode 100644 index 0000000000..96e24e5cac Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/soaring.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/striding.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/striding.png new file mode 100644 index 0000000000..b7c6887536 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/striding.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/synergetic.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/synergetic.png new file mode 100644 index 0000000000..2ebe493ee7 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/synergetic.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/vanishing.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/vanishing.png new file mode 100644 index 0000000000..2c3ff99e82 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/vanishing.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/venomous.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/venomous.png new file mode 100644 index 0000000000..3f7ec0759d Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/venomous.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/volatile.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/volatile.png new file mode 100644 index 0000000000..0f8cca13e2 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/volatile.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/withering.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/withering.png new file mode 100644 index 0000000000..a76f4699eb Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/essences/withering.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/orb_of_ankou.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/orb_of_ankou.png new file mode 100644 index 0000000000..4de0576fec Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/orb_of_ankou.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/orb_of_ankou_overlay.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/orb_of_ankou_overlay.png new file mode 100644 index 0000000000..c847564474 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/orb_of_ankou_overlay.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/aggressive.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/aggressive.png new file mode 100644 index 0000000000..2bba358f5e Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/aggressive.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/agile.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/agile.png new file mode 100644 index 0000000000..64c189e26c Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/agile.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/anchoring.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/anchoring.png new file mode 100644 index 0000000000..0d1477f67e Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/anchoring.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/bargaining.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/bargaining.png new file mode 100644 index 0000000000..1354cbce79 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/bargaining.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/bashing.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/bashing.png new file mode 100644 index 0000000000..c0f3348118 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/bashing.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/blasting.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/blasting.png new file mode 100644 index 0000000000..f3bae1de8d Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/blasting.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/blinding.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/blinding.png new file mode 100644 index 0000000000..d5e7aa7a8b Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/blinding.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/bounding.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/bounding.png new file mode 100644 index 0000000000..aa61f1fccb Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/bounding.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/bubbly.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/bubbly.png new file mode 100644 index 0000000000..9a62733a84 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/bubbly.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/conjuring.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/conjuring.png new file mode 100644 index 0000000000..e8b5166391 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/conjuring.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/dashing.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/dashing.png new file mode 100644 index 0000000000..7f8802a4a7 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/dashing.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/depriving.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/depriving.png new file mode 100644 index 0000000000..761f57d1d6 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/depriving.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/draining.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/draining.png new file mode 100644 index 0000000000..f2b7f2045a Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/draining.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/enduring.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/enduring.png new file mode 100644 index 0000000000..c7be08d88e Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/enduring.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/expeditious.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/expeditious.png new file mode 100644 index 0000000000..9f499eeced Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/expeditious.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/feathery.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/feathery.png new file mode 100644 index 0000000000..6bba744ff6 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/feathery.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/feigning.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/feigning.png new file mode 100644 index 0000000000..ab96ba750d Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/feigning.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/freezing.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/freezing.png new file mode 100644 index 0000000000..aa5c30bf0c Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/freezing.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/gazing.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/gazing.png new file mode 100644 index 0000000000..280a4390ac Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/gazing.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/gliding.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/gliding.png new file mode 100644 index 0000000000..564e9dfcd4 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/gliding.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/hawkeye.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/hawkeye.png new file mode 100644 index 0000000000..57c1f2c40d Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/hawkeye.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/incombustible.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/incombustible.png new file mode 100644 index 0000000000..ee5cd32840 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/incombustible.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/lifeless.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/lifeless.png new file mode 100644 index 0000000000..bf5e339214 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/lifeless.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/neutralizing.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/neutralizing.png new file mode 100644 index 0000000000..4952e177cb Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/neutralizing.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/phasing.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/phasing.png new file mode 100644 index 0000000000..b4effa77d0 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/phasing.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/pricking.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/pricking.png new file mode 100644 index 0000000000..0fd5af3b39 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/pricking.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/retreating.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/retreating.png new file mode 100644 index 0000000000..07ec92b04d Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/retreating.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/rushing.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/rushing.png new file mode 100644 index 0000000000..f967780857 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/rushing.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/scaling.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/scaling.png new file mode 100644 index 0000000000..dcf91422db Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/scaling.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/shrieking.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/shrieking.png new file mode 100644 index 0000000000..98cbdb72d2 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/shrieking.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/sniffing.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/sniffing.png new file mode 100644 index 0000000000..de02be128d Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/sniffing.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/soaring.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/soaring.png new file mode 100644 index 0000000000..8a8108bfd5 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/soaring.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/striding.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/striding.png new file mode 100644 index 0000000000..a603ed6ffe Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/striding.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/synergetic.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/synergetic.png new file mode 100644 index 0000000000..2b977299f3 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/synergetic.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/vanishing.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/vanishing.png new file mode 100644 index 0000000000..a1b3082e31 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/vanishing.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/venomous.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/venomous.png new file mode 100644 index 0000000000..81fed49c3f Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/venomous.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/volatile.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/volatile.png new file mode 100644 index 0000000000..a17d0c9dd0 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/volatile.png differ diff --git a/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/withering.png b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/withering.png new file mode 100644 index 0000000000..22362d4283 Binary files /dev/null and b/gm4_orb_of_ankou/assets/gm4_orb_of_ankou/textures/item/shards/withering.png differ diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/anim/bat2.properties b/gm4_orb_of_ankou/assets/minecraft/optifine/anim/bat2.properties new file mode 100644 index 0000000000..641abe9626 --- /dev/null +++ b/gm4_orb_of_ankou/assets/minecraft/optifine/anim/bat2.properties @@ -0,0 +1,23 @@ +from=minecraft:optifine/mob/bat2_anim.png +to=minecraft:optifine/mob/bat2.png +x=0 +y=0 +w=32 +h=32 +interpolate=false +tile.0=0 +duration.0=5 +tile.1=1 +duration.1=5 +tile.2=2 +duration.2=5 +tile.3=3 +duration.3=5 +tile.4=4 +duration.4=5 +tile.5=5 +duration.5=5 +tile.6=6 +duration.6=5 +tile.7=7 +duration.7=5 \ No newline at end of file diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/anim/bat2_e.properties b/gm4_orb_of_ankou/assets/minecraft/optifine/anim/bat2_e.properties new file mode 100644 index 0000000000..83a252bd21 --- /dev/null +++ b/gm4_orb_of_ankou/assets/minecraft/optifine/anim/bat2_e.properties @@ -0,0 +1,23 @@ +from=minecraft:optifine/mob/bat2_e_anim.png +to=minecraft:optifine/mob/bat2_e.png +x=0 +y=0 +w=32 +h=32 +interpolate=true +tile.0=0 +duration.0=15 +tile.1=1 +duration.1=15 +tile.2=2 +duration.2=15 +tile.3=3 +duration.3=15 +tile.4=4 +duration.4=15 +tile.5=5 +duration.5=15 +tile.6=6 +duration.6=15 +tile.7=7 +duration.7=15 \ No newline at end of file diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/anim/endermite2.properties b/gm4_orb_of_ankou/assets/minecraft/optifine/anim/endermite2.properties new file mode 100644 index 0000000000..66dd14dead --- /dev/null +++ b/gm4_orb_of_ankou/assets/minecraft/optifine/anim/endermite2.properties @@ -0,0 +1,15 @@ +from=minecraft:optifine/mob/endermite2_anim.png +to=minecraft:optifine/mob/endermite2.png +x=0 +y=0 +w=64 +h=32 +interpolate=false +tile.0=0 +duration.0=5 +tile.1=1 +duration.1=5 +tile.2=2 +duration.2=5 +tile.3=3 +duration.3=5 \ No newline at end of file diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/anim/endermite2_e.properties b/gm4_orb_of_ankou/assets/minecraft/optifine/anim/endermite2_e.properties new file mode 100644 index 0000000000..92cd109179 --- /dev/null +++ b/gm4_orb_of_ankou/assets/minecraft/optifine/anim/endermite2_e.properties @@ -0,0 +1,15 @@ +from=minecraft:optifine/mob/endermite2_e_anim.png +to=minecraft:optifine/mob/endermite2_e.png +x=0 +y=0 +w=64 +h=32 +interpolate=false +tile.0=0 +duration.0=5 +tile.1=1 +duration.1=5 +tile.2=2 +duration.2=5 +tile.3=3 +duration.3=5 \ No newline at end of file diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/anim/phantom2.properties b/gm4_orb_of_ankou/assets/minecraft/optifine/anim/phantom2.properties new file mode 100644 index 0000000000..a4516d770e --- /dev/null +++ b/gm4_orb_of_ankou/assets/minecraft/optifine/anim/phantom2.properties @@ -0,0 +1,15 @@ +from=minecraft:optifine/mob/phantom2_anim.png +to=minecraft:optifine/mob/phantom2.png +x=0 +y=0 +w=128 +h=128 +interpolate=false +tile.0=0 +duration.0=2 +tile.1=1 +duration.1=2 +tile.2=2 +duration.2=2 +tile.3=3 +duration.3=2 \ No newline at end of file diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/anim/silverfish3.properties b/gm4_orb_of_ankou/assets/minecraft/optifine/anim/silverfish3.properties new file mode 100644 index 0000000000..5767d0d9b7 --- /dev/null +++ b/gm4_orb_of_ankou/assets/minecraft/optifine/anim/silverfish3.properties @@ -0,0 +1,23 @@ +from=minecraft:optifine/mob/silverfish3_anim.png +to=minecraft:optifine/mob/silverfish3.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=15 +tile.1=1 +duration.1=15 +tile.2=2 +duration.2=15 +tile.3=3 +duration.3=15 +tile.4=4 +duration.4=15 +tile.5=5 +duration.5=15 +tile.6=6 +duration.6=15 +tile.7=7 +duration.7=15 \ No newline at end of file diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/anim/silverfish3_e.properties b/gm4_orb_of_ankou/assets/minecraft/optifine/anim/silverfish3_e.properties new file mode 100644 index 0000000000..3a97543324 --- /dev/null +++ b/gm4_orb_of_ankou/assets/minecraft/optifine/anim/silverfish3_e.properties @@ -0,0 +1,23 @@ +from=minecraft:optifine/mob/silverfish3_e_anim.png +to=minecraft:optifine/mob/silverfish3_e.png +x=0 +y=0 +w=64 +h=32 +interpolate=false +tile.0=0 +duration.0=15 +tile.1=1 +duration.1=15 +tile.2=2 +duration.2=15 +tile.3=3 +duration.3=15 +tile.4=4 +duration.4=15 +tile.5=5 +duration.5=15 +tile.6=6 +duration.6=15 +tile.7=7 +duration.7=15 \ No newline at end of file diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/cem/bat.jem b/gm4_orb_of_ankou/assets/minecraft/optifine/cem/bat.jem new file mode 100644 index 0000000000..4b162496a7 --- /dev/null +++ b/gm4_orb_of_ankou/assets/minecraft/optifine/cem/bat.jem @@ -0,0 +1,65 @@ +{ + "texture": "bat.png", + "textureSize": [32, 32], + "models": [ + { + "part": "head", + "id": "head", + "invertAxis": "xy", + "translate": [0, -7, 0], + "boxes": [ + {"coordinates": [-2, 7, -1, 4, 3, 2], "textureOffset": [0, 7]}, + {"coordinates": [-4, 8, 0, 3, 5, 0], "textureOffset": [8, 15]}, + {"coordinates": [1, 8, 0, 3, 5, 0], "textureOffset": [1, 15]} + ] + }, + { + "part": "body", + "id": "body", + "invertAxis": "xy", + "translate": [0, -7, 0], + "boxes": [ + {"coordinates": [-1.5, 2, -1, 3, 5, 2], "textureOffset": [0, 0]}, + {"coordinates": [-1.5, 5, -2, 3, 4, 3], "textureOffset": [20, 17]}, + {"coordinates": [-1.5, 0, -2, 5, 5, 3], "textureOffset": [16, 24]}, + {"coordinates": [-1.5, 0, 0, 3, 2, 0], "textureOffset": [16, 16]} + ] + }, + { + "part": "left_wing", + "id": "left_wing", + "invertAxis": "xy", + "translate": [1.5, -7, 0], + "boxes": [ + {"coordinates": [-3.5, 2, 0, 2, 7, 0], "textureOffset": [12, 7]} + ] + }, + { + "part": "outer_left_wing", + "id": "outer_left_wing", + "invertAxis": "xy", + "translate": [3.5, -7, 0], + "boxes": [ + {"coordinates": [-9.5, 1, 0, 6, 8, 0], "textureOffset": [16, 8]} + ] + }, + { + "part": "right_wing", + "id": "right_wing", + "invertAxis": "xy", + "translate": [-1.5, -7, 0], + "boxes": [ + {"coordinates": [1.5, 2, 0, 2, 7, 0], "textureOffset": [12, 0]} + ] + }, + { + "part": "outer_right_wing", + "id": "outer_right_wing", + "invertAxis": "xy", + "translate": [-3.5, -7, 0], + "boxes": [ + {"coordinates": [3.5, 1, 0, 6, 8, 0], "textureOffset": [16, 0]} + ] + } + ] +} diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/cem/endermite.jem b/gm4_orb_of_ankou/assets/minecraft/optifine/cem/endermite.jem new file mode 100644 index 0000000000..d834124902 --- /dev/null +++ b/gm4_orb_of_ankou/assets/minecraft/optifine/cem/endermite.jem @@ -0,0 +1,43 @@ +{ + "textureSize": [64, 32], + "models": [ + { + "part": "body1", + "id": "body1", + "invertAxis": "xy", + "translate": [0, -3, 3.5], + "boxes": [ + {"coordinates": [-2, 0, -4.5, 4, 3, 2], "textureOffset": [0, 0]}, + {"coordinates": [-1.5, 1, -2.5, 3, 5, 3], "textureOffset": [52, 0]} + ] + }, + { + "part": "body2", + "id": "body2", + "invertAxis": "xy", + "translate": [0, -4, 0], + "boxes": [ + {"coordinates": [-3, 0, -2.5, 6, 4, 5], "textureOffset": [0, 5]}, + {"coordinates": [-2.5, 5, -3.5, 5, 5, 5], "textureOffset": [44, 22]} + ] + }, + { + "part": "body3", + "id": "body3", + "invertAxis": "xy", + "translate": [0, -3, -3], + "boxes": [ + {"coordinates": [-1.5, 0, 2.5, 3, 3, 1], "textureOffset": [0, 14]} + ] + }, + { + "part": "body4", + "id": "body4", + "invertAxis": "xy", + "translate": [0, -2, -4], + "boxes": [ + {"coordinates": [-0.5, 0, 3.5, 1, 2, 1], "textureOffset": [0, 18]} + ] + } + ] +} \ No newline at end of file diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/cem/silverfish.jem b/gm4_orb_of_ankou/assets/minecraft/optifine/cem/silverfish.jem new file mode 100644 index 0000000000..cd04a14395 --- /dev/null +++ b/gm4_orb_of_ankou/assets/minecraft/optifine/cem/silverfish.jem @@ -0,0 +1,97 @@ +{ + "textureSize": [64, 32], + "models": [ + { + "part": "body1", + "id": "body1", + "invertAxis": "xy", + "translate": [0, -2, 3.5], + "boxes": [ + {"coordinates": [-1.5, 0, -4.5, 3, 2, 2], "textureOffset": [0, 0]} + ] + }, + { + "part": "body2", + "id": "body2", + "invertAxis": "xy", + "translate": [0, -3, 1.5], + "boxes": [ + {"coordinates": [-2, 0, -2.5, 4, 3, 2], "textureOffset": [0, 4]} + ] + }, + { + "part": "body3", + "id": "body3", + "invertAxis": "xy", + "translate": [0, -4, -1], + "boxes": [ + {"coordinates": [-3, 0, -0.5, 6, 4, 3], "textureOffset": [0, 9]} + ] + }, + { + "part": "body4", + "id": "body4", + "invertAxis": "xy", + "translate": [0, -3, -4], + "boxes": [ + {"coordinates": [-1.5, 0, 2.5, 3, 3, 3], "textureOffset": [0, 16]} + ] + }, + { + "part": "body5", + "id": "body5", + "invertAxis": "xy", + "translate": [0, -2, -7], + "boxes": [ + {"coordinates": [-1, 0, 5.5, 2, 2, 3], "textureOffset": [0, 22]} + ] + }, + { + "part": "body6", + "id": "body6", + "invertAxis": "xy", + "translate": [0, -1, -9.5], + "boxes": [ + {"coordinates": [-1, 0, 8.5, 2, 1, 2], "textureOffset": [11, 0]} + ] + }, + { + "part": "body7", + "id": "body7", + "invertAxis": "xy", + "translate": [0, -1, -11.5], + "boxes": [ + {"coordinates": [-0.5, 0, 10.5, 1, 1, 2], "textureOffset": [13, 4]} + ] + }, + { + "part": "wing1", + "id": "wing1", + "invertAxis": "xy", + "translate": [0, -8, -1], + "boxes": [ + {"coordinates": [-5, 0, -0.5, 10, 8, 3], "textureOffset": [20, 0]}, + {"coordinates": [-2.5, 0.5, -2.5, 5, 5, 5], "textureOffset": [44, 10]}, + {"coordinates": [-3, 0, -3, 6, 6, 6], "textureOffset": [40, 20]} + ] + }, + { + "part": "wing2", + "id": "wing2", + "invertAxis": "xy", + "translate": [0, -4, -7], + "boxes": [ + {"coordinates": [-3, 0, 5.5, 6, 4, 3], "textureOffset": [20, 11]} + ] + }, + { + "part": "wing3", + "id": "wing3", + "invertAxis": "xy", + "translate": [0, -5, 1.5], + "boxes": [ + {"coordinates": [-3, 0, -3, 6, 5, 2], "textureOffset": [20, 18]} + ] + } + ] +} \ No newline at end of file diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/mob/bat.properties b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/bat.properties new file mode 100644 index 0000000000..de21ce02a4 --- /dev/null +++ b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/bat.properties @@ -0,0 +1,3 @@ +#gm4_orb_of_ankou:congealed_soul_shard +skins.2=2 +name.2=regex:Congealed Soul Shard\u00A7 diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/mob/bat2.png b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/bat2.png new file mode 100644 index 0000000000..dc11a7e283 Binary files /dev/null and b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/bat2.png differ diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/mob/bat2_anim.png b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/bat2_anim.png new file mode 100644 index 0000000000..7e3defe18d Binary files /dev/null and b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/bat2_anim.png differ diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/mob/bat2_e.png b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/bat2_e.png new file mode 100644 index 0000000000..7a024db8c3 Binary files /dev/null and b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/bat2_e.png differ diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/mob/bat2_e_anim.png b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/bat2_e_anim.png new file mode 100644 index 0000000000..8280212976 Binary files /dev/null and b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/bat2_e_anim.png differ diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/mob/endermite.properties b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/endermite.properties new file mode 100644 index 0000000000..e05ce58060 --- /dev/null +++ b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/endermite.properties @@ -0,0 +1,3 @@ +#gm4_orb_of_ankou:severed_soul +skins.2=2 +name.2=regex:Severed Soul\u00A7 diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/mob/endermite2.png b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/endermite2.png new file mode 100644 index 0000000000..4931533505 Binary files /dev/null and b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/endermite2.png differ diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/mob/endermite2_anim.png b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/endermite2_anim.png new file mode 100644 index 0000000000..52dc3fcac2 Binary files /dev/null and b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/endermite2_anim.png differ diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/mob/endermite2_e.png b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/endermite2_e.png new file mode 100644 index 0000000000..d29f47ee9f Binary files /dev/null and b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/endermite2_e.png differ diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/mob/endermite2_e_anim.png b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/endermite2_e_anim.png new file mode 100644 index 0000000000..b706bd2541 Binary files /dev/null and b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/endermite2_e_anim.png differ diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/mob/silverfish.properties b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/silverfish.properties new file mode 100644 index 0000000000..577910659e --- /dev/null +++ b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/silverfish.properties @@ -0,0 +1,3 @@ +#gm4_orb_of_ankou:living_orb +skins.3=3 +name.3=regex:Living Orb\u00A7 diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/mob/silverfish3.png b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/silverfish3.png new file mode 100644 index 0000000000..2cb2f80011 Binary files /dev/null and b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/silverfish3.png differ diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/mob/silverfish3_anim.png b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/silverfish3_anim.png new file mode 100644 index 0000000000..612f5dfa6e Binary files /dev/null and b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/silverfish3_anim.png differ diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/mob/silverfish3_e.png b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/silverfish3_e.png new file mode 100644 index 0000000000..d29f47ee9f Binary files /dev/null and b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/silverfish3_e.png differ diff --git a/gm4_orb_of_ankou/assets/minecraft/optifine/mob/silverfish3_e_anim.png b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/silverfish3_e_anim.png new file mode 100644 index 0000000000..a2d25b0940 Binary files /dev/null and b/gm4_orb_of_ankou/assets/minecraft/optifine/mob/silverfish3_e_anim.png differ diff --git a/gm4_orb_of_ankou/assets/model_data.yaml b/gm4_orb_of_ankou/assets/model_data.yaml new file mode 100644 index 0000000000..dac81efeae --- /dev/null +++ b/gm4_orb_of_ankou/assets/model_data.yaml @@ -0,0 +1,80 @@ +model_data: + - item: firework_star + reference: item/orb_of_ankou + template: generated_overlay + - item: [flint, black_dye] + template: pneuma + broadcast: + - reference: pneuma/aggressive + - reference: pneuma/agile + - reference: pneuma/anchoring + - reference: pneuma/bargaining + - reference: pneuma/bashing + - reference: pneuma/blasting + - reference: pneuma/blinding + - reference: pneuma/bounding + - reference: pneuma/bubbly + - reference: pneuma/conjuring + - reference: pneuma/dashing + - reference: pneuma/depriving + - reference: pneuma/draining + - reference: pneuma/enduring + - reference: pneuma/expeditious + - reference: pneuma/feathery + - reference: pneuma/gazing + - reference: pneuma/gliding + - reference: pneuma/hawkeye + - reference: pneuma/incombustible + - reference: pneuma/lifeless + - reference: pneuma/neutralizing + - reference: pneuma/phasing + - reference: pneuma/pricking + - reference: pneuma/retreating + - reference: pneuma/rushing + - reference: pneuma/scaling + - reference: pneuma/sniffing + - reference: pneuma/soaring + - reference: pneuma/synergetic + - reference: pneuma/vanishing + - reference: pneuma/venomous + - reference: pneuma/volatile + - reference: pneuma/withering + - reference: pneuma/striding + - reference: pneuma/freezing + - reference: pneuma/feigning + - reference: pneuma/shrieking + - item: swords + reference: shamir/corripio + template: + name: shamir + metal: bismuth + textures_path: gm4_metallurgy:item/shamir/bismuth + - item: golden_helmet + reference: entity/fire_sprite + template: vanilla + - item: black_dye + reference: gui/advancement/orb_of_ankou_soul_essence + template: + name: advancement + forward: item/essences/lifeless + - item: elytra + reference: gui/advancement/orb_of_ankou_soaring_pneuma + template: + name: advancement + forward: item/essences/soaring + - item: flint + reference: gui/advancement/orb_of_ankou_soul_shard + template: + name: advancement + forward: item/shards/lifeless + - item: flint_and_steel + reference: gui/advancement/orb_of_ankou_soul_forge + template: advancement + - item: nether_star + reference: gui/advancement/orb_of_ankou_all_pneumas + template: advancement + - item: firework_star + reference: gui/advancement/orb_of_ankou_max_orb + template: + name: advancement + forward: item/orb_of_ankou diff --git a/gm4_orb_of_ankou/assets/translations.csv b/gm4_orb_of_ankou/assets/translations.csv new file mode 100644 index 0000000000..68a517106c --- /dev/null +++ b/gm4_orb_of_ankou/assets/translations.csv @@ -0,0 +1,123 @@ +key,en_us +advancement.gm4.orb_of_ankou.all_pneumas.description,Few have wielded this much power +advancement.gm4.orb_of_ankou.all_pneumas.title,Heavy Artillery +advancement.gm4.orb_of_ankou.create_soul_forge.description,Light a Soul Forge +advancement.gm4.orb_of_ankou.create_soul_forge.title,A Dangerous Magic +advancement.gm4.orb_of_ankou.max_orb_of_ankou.description,Max out an Orb of Ankou +advancement.gm4.orb_of_ankou.max_orb_of_ankou.title,We're Full Here... +advancement.gm4.orb_of_ankou.obtain_soul_essence.description,Obtain a piece of a mob's soul +advancement.gm4.orb_of_ankou.obtain_soul_essence.title,A Small Price to Pay... +advancement.gm4.orb_of_ankou.obtain_soul_shard.description,Forge a Soul Shard +advancement.gm4.orb_of_ankou.obtain_soul_shard.title,Was it Worth the Sacrifice? +advancement.gm4.orb_of_ankou.soaring.description,Fly with the soaring pneuma +advancement.gm4.orb_of_ankou.soaring.title,I Believe I Can Fly! +entity.gm4.congealed_shard,Congealed Soul Shard\u00A7 +entity.gm4.fire_sprite,Fire Sprite\u00A7 +entity.gm4.living_orb,Living Orb\u00A7 +entity.gm4.possessed_shard,Possessed Soul Shard\u00A7 +entity.gm4.severed_soul,Severed Soul\u00A7 +entity.gm4.wandering_tear,Wandering Tear\u00A7 +entity.gm4.withering_magic,Withering Magic +item.gm4.orb_of_ankou,Orb of Ankou +item.gm4.shamir.corripio,Corripio +item.gm4.soul_essence,Soul Essence +item.gm4.soul_shard,Soul Shard +text.gm4.orb_of_ankou.empty,Empty +text.gm4.orb_of_ankou.pneumas,Pneumas: +text.gm4.pneuma_aggressive,Aggressive +text.gm4.pneuma_agile,Agile +text.gm4.pneuma_anchoring,Anchoring +text.gm4.pneuma_bargaining,Bargaining +text.gm4.pneuma_bashing,Bashing +text.gm4.pneuma_blasting,Blasting +text.gm4.pneuma_blinding,Blinding +text.gm4.pneuma_bounding,Bounding +text.gm4.pneuma_bubbly,Bubbly +text.gm4.pneuma_conjuring,Conjuring +text.gm4.pneuma_dashing,Dashing +text.gm4.pneuma_depriving,Depriving +text.gm4.pneuma_draining,Draining +text.gm4.pneuma_enduring,Enduring +text.gm4.pneuma_expeditious,Expeditious +text.gm4.pneuma_feathery,Feathery +text.gm4.pneuma_feigning,Feigning +text.gm4.pneuma_freezing,Freezing +text.gm4.pneuma_gazing,Gazing +text.gm4.pneuma_gliding,Gliding +text.gm4.pneuma_hawkeye,Hawkeye +text.gm4.pneuma_incombustible,Incombustible +text.gm4.pneuma_lifeless,Lifeless +text.gm4.pneuma_neutralizing,Neutralizing +text.gm4.pneuma_phasing,Phasing +text.gm4.pneuma_pricking,Pricking +text.gm4.pneuma_retreating,Retreating +text.gm4.pneuma_rushing,Rushing +text.gm4.pneuma_scaling,Scaling +text.gm4.pneuma_shrieking,Shrieking +text.gm4.pneuma_sniffing,Sniffing +text.gm4.pneuma_soaring,Soaring +text.gm4.pneuma_striding,Striding +text.gm4.pneuma_synergetic,Synergetic +text.gm4.pneuma_vanishing,Vanishing +text.gm4.pneuma_venomous,Venomous +text.gm4.pneuma_volatile,Volatile +text.gm4.pneuma_withering,Withering +text.gm4.guidebook.module_desc.corripio_shamir,"Harvest mob souls and condense them using forbidden nether magic to obtain mob abilities! Learn how to fly, or simply become turtule-man." +text.gm4.guidebook.corripio_shamir.description,Corripio extracts soul essence drops from mobs. +text.gm4.guidebook.corripio_shamir.usage,The Corripio Shamir is found on Bismuth Bands. It can be placed onto swords.\n\nKilling mobs will cause Soul Essences to drop very rarely. The drop rates are increased with the Looting enchantment. +text.gm4.guidebook.module_desc.orb_of_ankou,"Harvest mob souls and condense them using forbidden nether magic to obtain mob abilities! Learn how to fly, or simply become turtule-man." +text.gm4.guidebook.orb_of_ankou.description,"Mob powers can be obtained by collecting rare soul essences using the Corripio Shamir.\n\nThirteen essences are required to gain the powers of a mob, called a pneuma." +text.gm4.guidebook.orb_of_ankou.soul_forge,"To gain powers of the Soul Essences, a Condensing Ritual must be performed in a Soul Forge.\n\nA Soul Forge can be made in the Nether by forming a 3x3 ring of obsidian then igniting soul fire inside the ring." +text.gm4.guidebook.orb_of_ankou.condensing_ritual,"To create a Soul Shard, 13 of the same Soul Essence must be dropped into the forge along with some blaze powder and glowstone dust.\n\nExtinguishing the flame will create a Possesed Soul Shard, which should be killed." +text.gm4.guidebook.orb_of_ankou.condensing_ingredients,"The required amount of glowstone dust and blaze powder is between 1 and 64, but differs in each world.\n\nExtra dust or powder will create the Shard, but spawn Fiery Sprites. Too little will cause the recipe to fail." +text.gm4.guidebook.orb_of_ankou.shard_usage,"Holding the Shard in the offhand will grant the user with that pneuma's power, while lowering their attack damage 20% as a side-effect.\n\nAn Orb of Ankou can be crafted to negate the attack debuff and hold more pneumas." +text.gm4.guidebook.orb_of_ankou.orb_crafting,The Orb of Ankou can be crafted with the following recipe: +text.gm4.guidebook.orb_of_ankou.fusing_ritual,"To fuse a Shard into an Orb, light a soul forge and drop the two items in, along with some ghast tears.\n\nWither particles will appear to indicate where wither roses should be placed to be absorbed." +text.gm4.guidebook.orb_of_ankou.fusing_ingredients,"The required amount of ghast tears and wither roses is between 3 and 16, but differs in each world.\n\nExtra tears or roses will fuse the Shard, but wandering tears and a withering cloud will appear." +text.gm4.guidebook.orb_of_ankou.orb_usage,"Similar to a Soul Shard, the Orb of Ankou functions when it is equipped in the offhand.\n\nAn orb of ankou can hold 4 pneumas, which will work concurrently when in the same orb." +text.gm4.guidebook.orb_of_ankou.defensive_pneumas,The following pneumas activate upon taking damage: +text.gm4.guidebook.orb_of_ankou.note.aggressive,Grants Strength when damaged +text.gm4.guidebook.orb_of_ankou.pneuma_list, - %1$s* +text.gm4.guidebook.orb_of_ankou.note.feigning,"Grants Slowness, Resistance, Invisibility, and Regeneration when damaged below half health" +text.gm4.guidebook.orb_of_ankou.note.incombustible,Grants Fire Resistance when damaged by fire +text.gm4.guidebook.orb_of_ankou.note.lifeless,Negates Poison effect and heals when damaged by Instant Damage effect +text.gm4.guidebook.orb_of_ankou.note.neutralizing,Negates Poison effect; Instant Damage effect deals less damage +text.gm4.pneuma_picking,Pricking +text.gm4.guidebook.orb_of_ankou.note.pricking,75% chance to deal 1-4 damage to the attacker (Thorns V) +text.gm4.guidebook.orb_of_ankou.note.retreating,Grants Speed and Weakness when damaged +text.gm4.guidebook.orb_of_ankou.note.volatile,Creates explosion if damaged below 1.5 hearts +text.gm4.guidebook.orb_of_ankou.offensive_pneumas,The following pneumas activate upon dealing damage: +text.gm4.guidebook.orb_of_ankou.note.blasting,Shoots fireballs when shooting a crossbow with blaze powder in the inventory +text.gm4.guidebook.orb_of_ankou.note.depriving,Applies Hunger to attacked targets; Applies Weakness to attacked mobs +text.gm4.guidebook.orb_of_ankou.note.freezing,Applies Slowness to attacked targets +text.gm4.guidebook.orb_of_ankou.note.hawkeye,Doubles the damage of arrows shot from bows; Arrows shot from bows will have Piercing I +text.gm4.guidebook.orb_of_ankou.note.venomous,Applies Poison to attacked target +text.gm4.guidebook.orb_of_ankou.note.withering,Applies Wither to attacked target +text.gm4.guidebook.orb_of_ankou.passive_pneumas,"The following pneumas are passive, activating automatically:" +text.gm4.guidebook.orb_of_ankou.note.agile,Prevents fall damage +text.gm4.guidebook.orb_of_ankou.note.anchoring,Grants 90% Knockback Resistance +text.gm4.guidebook.orb_of_ankou.note.bargaining,Grants Regeneration upon trading with villagers +text.gm4.guidebook.orb_of_ankou.note.bashing,"Grants +70% Attack Damage, but -40% Attack Speed" +text.gm4.guidebook.orb_of_ankou.note.bubbly,Grants 2 minutes of Water Breathing when submerged +text.gm4.guidebook.orb_of_ankou.note.enduring,"Grants +8 Max Health, but -20% Speed" +text.gm4.guidebook.orb_of_ankou.note.gliding,Grants Dolphin's Grace when swimming +text.gm4.guidebook.orb_of_ankou.note.striding,Temporarily converts lava sources into magma blocks upon stepping on them +text.gm4.guidebook.orb_of_ankou.note.synergetic,Grants Strength to tamed wolves and other Synergetic users +text.gm4.guidebook.orb_of_ankou.sneak_charge_pneumas,The following pneumas charge while sneaking then activate upon unsneaking: +text.gm4.guidebook.orb_of_ankou.note.bounding,Increasingly stronger Jump Boost +text.gm4.guidebook.orb_of_ankou.note.conjuring,Increasingly farther Evoker fang attack +text.gm4.guidebook.orb_of_ankou.note.dashing,Increasingly farther horizontal dash +text.gm4.guidebook.orb_of_ankou.note.draining,Increasingly farther Mining Fatigue AOE +text.gm4.guidebook.orb_of_ankou.note.expeditious,Increasingly farther random teleport +text.gm4.guidebook.orb_of_ankou.note.rushing,Increasingly faster and longer Speed burst +text.gm4.guidebook.orb_of_ankou.note.shrieking,"Sonic boom 15 blocks far, dealing 6 hearts of damage" +text.gm4.guidebook.orb_of_ankou.sneak_tap_pneumas,The following pneumas activate while sneaking: +text.gm4.guidebook.orb_of_ankou.note.blinding,Blindness AOE for 7 seconds +text.gm4.guidebook.orb_of_ankou.note.feathery,Grants Slow Falling for 7 seconds +text.gm4.guidebook.orb_of_ankou.note.gazing,Grants Night Vision for 30 seconds +text.gm4.guidebook.orb_of_ankou.note.soaring,Sneaking toggles the ability: Look up to ascend and down to descend +text.gm4.guidebook.orb_of_ankou.note.vanishing,Grants Invisibility for 90 seconds +text.gm4.guidebook.orb_of_ankou.sneak_hold_pneumas,The following pneumas activate while continuously sneaking: +text.gm4.guidebook.orb_of_ankou.note.phasing,Allows walking through 1-wide walls +text.gm4.guidebook.orb_of_ankou.note.scaling,Allows climbing up walls +text.gm4.guidebook.orb_of_ankou.note.sniffing,Sniffs up torchflowers and pitcher pods diff --git a/gm4_orb_of_ankou/beet.yaml b/gm4_orb_of_ankou/beet.yaml index a099bd69bb..e1d0469b10 100644 --- a/gm4_orb_of_ankou/beet.yaml +++ b/gm4_orb_of_ankou/beet.yaml @@ -5,8 +5,15 @@ version: 1.5.X data_pack: load: . +resource_pack: + load: + - . + - ../gm4_metallurgy + pipeline: - gm4_orb_of_ankou.generate_pneumas + - gm4_orb_of_ankou.pneuma_model_template + - gm4_metallurgy.shamir_model_template - gm4.plugins.extend.module - gm4.plugins.include.lib_custom_crafters @@ -30,3 +37,4 @@ meta: - BluePsychoRanger Icon Design: - BluePsychoRanger + diff --git a/gm4_orb_of_ankou/data/gm4/advancements/all_pneumas.json b/gm4_orb_of_ankou/data/gm4/advancements/all_pneumas.json index fc8fcbe98b..a478cba987 100644 --- a/gm4_orb_of_ankou/data/gm4/advancements/all_pneumas.json +++ b/gm4_orb_of_ankou/data/gm4/advancements/all_pneumas.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "nether_star", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/orb_of_ankou_all_pneumas'}" }, "title": { "translate": "advancement.gm4.orb_of_ankou.all_pneumas.title", diff --git a/gm4_orb_of_ankou/data/gm4/advancements/create_soul_forge.json b/gm4_orb_of_ankou/data/gm4/advancements/create_soul_forge.json index 05ff52fb98..0de1255b15 100644 --- a/gm4_orb_of_ankou/data/gm4/advancements/create_soul_forge.json +++ b/gm4_orb_of_ankou/data/gm4/advancements/create_soul_forge.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "flint_and_steel", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/orb_of_ankou_soul_forge'}" }, "title": { "translate": "advancement.gm4.orb_of_ankou.create_soul_forge.title", diff --git a/gm4_orb_of_ankou/data/gm4/advancements/create_soul_shard.json b/gm4_orb_of_ankou/data/gm4/advancements/create_soul_shard.json index f57ecaeed1..de28982861 100644 --- a/gm4_orb_of_ankou/data/gm4/advancements/create_soul_shard.json +++ b/gm4_orb_of_ankou/data/gm4/advancements/create_soul_shard.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "flint", - "nbt": "{CustomModelData:3420001,Enchantments:[{}]}" + "nbt": "{CustomModelData:'gui/advancement/orb_of_ankou_soul_shard',Enchantments:[{}]}" }, "title": { "translate": "advancement.gm4.orb_of_ankou.obtain_soul_shard.title", diff --git a/gm4_orb_of_ankou/data/gm4/advancements/max_orb_of_ankou.json b/gm4_orb_of_ankou/data/gm4/advancements/max_orb_of_ankou.json index 552ef0483e..cbec1db1df 100644 --- a/gm4_orb_of_ankou/data/gm4/advancements/max_orb_of_ankou.json +++ b/gm4_orb_of_ankou/data/gm4/advancements/max_orb_of_ankou.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "firework_star", - "nbt": "{Enchantments:[{}],Explosion:{Colors:[I;13092807]},CustomModelData:3420001}" + "nbt": "{Enchantments:[{}],Explosion:{Colors:[I;13092807]},CustomModelData:'gui/advancement/orb_of_ankou_max_orb'}" }, "title": { "translate": "advancement.gm4.orb_of_ankou.max_orb_of_ankou.title", diff --git a/gm4_orb_of_ankou/data/gm4/advancements/obtain_soul_essence.json b/gm4_orb_of_ankou/data/gm4/advancements/obtain_soul_essence.json index 8fe295292f..1aa50c4de7 100644 --- a/gm4_orb_of_ankou/data/gm4/advancements/obtain_soul_essence.json +++ b/gm4_orb_of_ankou/data/gm4/advancements/obtain_soul_essence.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "black_dye", - "nbt": "{CustomModelData:3420001,Enchantments:[{}]}" + "nbt": "{CustomModelData:'gui/advancement/orb_of_ankou_soul_essence',Enchantments:[{}]}" }, "title": { "translate": "advancement.gm4.orb_of_ankou.obtain_soul_essence.title", diff --git a/gm4_orb_of_ankou/data/gm4/advancements/soaring_pneuma.json b/gm4_orb_of_ankou/data/gm4/advancements/soaring_pneuma.json index 7ed43e3ff8..1ae6cf88bd 100644 --- a/gm4_orb_of_ankou/data/gm4/advancements/soaring_pneuma.json +++ b/gm4_orb_of_ankou/data/gm4/advancements/soaring_pneuma.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "elytra", - "nbt": "{CustomModelData:3420002,Enchantments:[{}]}" + "nbt": "{CustomModelData:'gui/advancement/orb_of_ankou_soaring_pneuma',Enchantments:[{}]}" }, "title": { "translate": "advancement.gm4.orb_of_ankou.soaring.title", diff --git a/gm4_orb_of_ankou/data/gm4_corripio_shamir/guidebook/corripio_shamir.json b/gm4_orb_of_ankou/data/gm4_corripio_shamir/guidebook/corripio_shamir.json index 9ae06477ba..cceca49aef 100644 --- a/gm4_orb_of_ankou/data/gm4_corripio_shamir/guidebook/corripio_shamir.json +++ b/gm4_orb_of_ankou/data/gm4_corripio_shamir/guidebook/corripio_shamir.json @@ -5,8 +5,7 @@ "load_check": "orb_of_ankou", "base_module": "metallurgy", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420116}" + "item": "minecraft:anvil" }, "criteria": { "obtain_corripio_shamir": { diff --git a/gm4_orb_of_ankou/data/gm4_corripio_shamir/loot_tables/band.json b/gm4_orb_of_ankou/data/gm4_corripio_shamir/loot_tables/band.json index 7b09b2afa8..bb12077812 100644 --- a/gm4_orb_of_ankou/data/gm4_corripio_shamir/loot_tables/band.json +++ b/gm4_orb_of_ankou/data/gm4_corripio_shamir/loot_tables/band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420116,SkullOwner:{Name:\"[Drop to Fix Item] gm4_corripio_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"corripio\"}}" + "tag": "{CustomModelData:'shamir/corripio',SkullOwner:{Name:\"[Drop to Fix Item] gm4_corripio_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"corripio\"}}" }, { "function": "minecraft:set_lore", diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/functions/init.mcfunction b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/functions/init.mcfunction index 0acbe3946f..8c48cecd8e 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/functions/init.mcfunction +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/functions/init.mcfunction @@ -34,7 +34,7 @@ execute in minecraft:the_nether run tag @a[x=0] add gm4_oa_in_nether data remove storage gm4_player_heads:register heads[{id:"gm4_corripio_shamir:band/v0"}] # register shamir with lib_player_heads -execute unless data storage gm4_player_heads:register heads[{id:"gm4_corripio_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_corripio_shamir:band/v1",name:"[Drop to Fix Item] gm4_corripio_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"corripio",metal:{type:"bismuth",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/bismuth",CustomModelData:3420116,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['[{"translate":"item.gm4.metallurgy.bismuth.red","fallback":"Bi","italic":false,"color":"#F47989"},{"translate":"item.gm4.metallurgy.bismuth.orange","fallback":"sm","italic":false,"color":"#F5B478"},{"translate":"item.gm4.metallurgy.bismuth.yellow","fallback":"ut","italic":false,"color":"#F5DD79"},{"translate":"item.gm4.metallurgy.bismuth.green","fallback":"h ","italic":false,"color":"#78F4AE"},{"translate":"item.gm4.metallurgy.bismuth.blue","fallback":"Ba","italic":false,"color":"#79D6F5"},{"translate":"item.gm4.metallurgy.bismuth.purple","fallback":"nd","italic":false,"color":"#8378F5"},{"translate":"item.gm4.metallurgy.bismuth.magenta","fallback":"","italic":false,"color":"#D579F5"}]','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.corripio","fallback":"Corripio"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_corripio_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_corripio_shamir:band/v1",name:"[Drop to Fix Item] gm4_corripio_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"corripio",metal:{type:"bismuth",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/bismuth",CustomModelData:"shamir/corripio",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['[{"translate":"item.gm4.metallurgy.bismuth.red","fallback":"Bi","italic":false,"color":"#F47989"},{"translate":"item.gm4.metallurgy.bismuth.orange","fallback":"sm","italic":false,"color":"#F5B478"},{"translate":"item.gm4.metallurgy.bismuth.yellow","fallback":"ut","italic":false,"color":"#F5DD79"},{"translate":"item.gm4.metallurgy.bismuth.green","fallback":"h ","italic":false,"color":"#78F4AE"},{"translate":"item.gm4.metallurgy.bismuth.blue","fallback":"Ba","italic":false,"color":"#79D6F5"},{"translate":"item.gm4.metallurgy.bismuth.purple","fallback":"nd","italic":false,"color":"#8378F5"},{"translate":"item.gm4.metallurgy.bismuth.magenta","fallback":"","italic":false,"color":"#D579F5"}]','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.corripio","fallback":"Corripio"}']}}} execute unless score orb_of_ankou gm4_modules matches 1 run data modify storage gm4:log queue append value {type:"install",module:"Orb of Ankou"} execute unless score orb_of_ankou gm4_earliest_version < orb_of_ankou gm4_modules run scoreboard players operation orb_of_ankou gm4_earliest_version = orb_of_ankou gm4_modules diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/functions/soul_forge/entities/fire_sprite.mcfunction b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/functions/soul_forge/entities/fire_sprite.mcfunction index 4b7d61aa91..e3c3359072 100644 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/functions/soul_forge/entities/fire_sprite.mcfunction +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/functions/soul_forge/entities/fire_sprite.mcfunction @@ -2,7 +2,7 @@ # run from both soul_forge/entities/summon_powder_sprite and soul_forge/entities/summon_glowstone_sprite # spawn zombie -summon minecraft:zombie ~ ~0.2 ~ {Fire:1000000,Motion:[0.0,0.6,0.0],Silent:1b,CustomNameVisible:0b,DeathLootTable:"minecraft:empty",Health:10.0f,IsBaby:1b,CanBreakDoors:0b,CanPickUpLoot:0b,Tags:["gm4_oa_unset","gm4_oa_ignore","gm4_oa_fire_sprite"],CustomName:'{"translate":"entity.gm4.fire_sprite","fallback":"Fire Sprite§"}',Team:"gm4_hide_name",ArmorItems:[{},{},{},{id:"minecraft:golden_helmet",Count:1b,tag:{CustomModelData:3420006,Enchantments:[{id:"minecraft:protection",lvl:0s}],HideFlags:1}}],ArmorDropChances:[0.0F,0.0F,0.0F,-327.670F],ActiveEffects:[{Id:14,Amplifier:0b,Duration:1000000,ShowParticles:0b}],Attributes:[{Name:"generic.follow_range",Base:8},{Name:"generic.attack_damage",Base:1},{Name:"generic.attack_knockback",Base:0},{Name:"zombie.spawn_reinforcements",Base:0}]} +summon minecraft:zombie ~ ~0.2 ~ {Fire:1000000,Motion:[0.0,0.6,0.0],Silent:1b,CustomNameVisible:0b,DeathLootTable:"minecraft:empty",Health:10.0f,IsBaby:1b,CanBreakDoors:0b,CanPickUpLoot:0b,Tags:["gm4_oa_unset","gm4_oa_ignore","gm4_oa_fire_sprite"],CustomName:'{"translate":"entity.gm4.fire_sprite","fallback":"Fire Sprite§"}',Team:"gm4_hide_name",ArmorItems:[{},{},{},{id:"minecraft:golden_helmet",Count:1b,tag:{CustomModelData:"entity/fire_sprite",Enchantments:[{id:"minecraft:protection",lvl:0s}],HideFlags:1}}],ArmorDropChances:[0.0F,0.0F,0.0F,-327.670F],ActiveEffects:[{Id:14,Amplifier:0b,Duration:1000000,ShowParticles:0b}],Attributes:[{Name:"generic.follow_range",Base:8},{Name:"generic.attack_damage",Base:1},{Name:"generic.attack_knockback",Base:0},{Name:"zombie.spawn_reinforcements",Base:0}]} # randomize motion in x and z execute as @e[type=zombie,tag=gm4_oa_unset,limit=1] run function gm4_orb_of_ankou:soul_forge/entities/randomize_motion diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/functions/soul_forge/entities/summon_extra_orb.mcfunction b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/functions/soul_forge/entities/summon_extra_orb.mcfunction index 7db8b963c8..663df64eeb 100644 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/functions/soul_forge/entities/summon_extra_orb.mcfunction +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/functions/soul_forge/entities/summon_extra_orb.mcfunction @@ -2,7 +2,7 @@ # run from soul_forge/destroy # spawn silverfish -summon silverfish ~ ~0.2 ~ {CustomName:'{"translate":"entity.gm4.living_orb","fallback":"Living Orb"}',CustomNameVisible:0,Team:"gm4_hide_name",DeathLootTable:"minecraft:empty",PersistenceRequired:1b,Tags:["gm4_oa_unset","gm4_oa_living_orb","gm4_oa_ignore"],HandDropChances:[2.0f,1.0f],Motion:[0.0,0.6,0.0],ActiveEffects:[{Id:12,Amplifier:0b,Duration:1000000,ShowParticles:0b}]} +summon silverfish ~ ~0.2 ~ {CustomName:'{"translate":"entity.gm4.living_orb","fallback":"Living Orb§"}',CustomNameVisible:0,Team:"gm4_hide_name",DeathLootTable:"minecraft:empty",PersistenceRequired:1b,Tags:["gm4_oa_unset","gm4_oa_living_orb","gm4_oa_ignore"],HandDropChances:[2.0f,1.0f],Motion:[0.0,0.6,0.0],ActiveEffects:[{Id:12,Amplifier:0b,Duration:1000000,ShowParticles:0b}]} # set loot drop to orb of ankou data modify entity @e[type=silverfish,tag=gm4_oa_unset,limit=1] HandItems[0] set from storage gm4_orb_of_ankou:temp ArmorItems[3] diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/guidebook/orb_of_ankou.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/guidebook/orb_of_ankou.json index ce8c010ddc..089cf67359 100644 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/guidebook/orb_of_ankou.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/guidebook/orb_of_ankou.json @@ -3,8 +3,7 @@ "name": "Orb of Ankou", "module_type": "module", "icon": { - "item": "minecraft:flint_and_steel", - "nbt": "{CustomModelData:3420004}" + "item": "minecraft:flint_and_steel" }, "criteria": { "obtain_soul_essence": { @@ -406,7 +405,7 @@ "with": [ { "translate": "text.gm4.pneuma_volatile", - "fallback": "Voltatile" + "fallback": "Volatile" } ], "hoverEvent": { @@ -1016,7 +1015,7 @@ "with": [ { "translate": "text.gm4.pneuma_scaling", - "fallback": "Sacling" + "fallback": "Scaling" } ], "hoverEvent": { diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/orb_of_ankou.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/orb_of_ankou.json index 8e28f62788..f69f556ac3 100644 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/orb_of_ankou.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/orb_of_ankou.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{HideFlags:33,Enchantments:[{id:\"minecraft:protection\",lvl:0s}],Explosion:{Colors:[I;13092807]},CustomModelData:3420001,gm4_orb_of_ankou:{item:\"orb\"}}" + "tag": "{HideFlags:33,Enchantments:[{id:\"minecraft:protection\",lvl:0s}],Explosion:{Colors:[I;13092807]},CustomModelData:'item/orb_of_ankou',gm4_orb_of_ankou:{item:\"orb\"}}" }, { "function": "minecraft:set_name", diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/aggressive.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/aggressive.json index 641c2f3e6e..5eb3bbacc7 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/aggressive.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/aggressive.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420200,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"aggressive\"},stored_color:[10682368]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/aggressive',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"aggressive\"},stored_color:[10682368]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/agile.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/agile.json index b6c3343c5c..1a99050ec4 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/agile.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/agile.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420201,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"agile\"},stored_color:[16769574]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/agile',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"agile\"},stored_color:[16769574]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/anchoring.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/anchoring.json index 8119e00c5c..158e18f1be 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/anchoring.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/anchoring.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420202,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"anchoring\"},stored_attributes:[{AttributeName:\"generic.knockback_resistance\",Name:\"generic.knockback_resistance\",Amount:.9,Operation:0,UUID:[I;0,959327,0,859402],Slot:\"offhand\"}],stored_color:[1648550]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/anchoring',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"anchoring\"},stored_attributes:[{AttributeName:\"generic.knockback_resistance\",Name:\"generic.knockback_resistance\",Amount:.9,Operation:0,UUID:[I;0,959327,0,859402],Slot:\"offhand\"}],stored_color:[1648550]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/bargaining.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/bargaining.json index e00ffdc55a..6bf15b192b 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/bargaining.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/bargaining.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420203,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"bargaining\"},stored_color:[1090333]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/bargaining',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"bargaining\"},stored_color:[1090333]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/bashing.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/bashing.json index 9e89c7faf7..ea9f886146 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/bashing.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/bashing.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420204,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"bashing\"},stored_attributes:[{AttributeName:\"generic.attack_speed\",Name:\"generic.attack_speed\",Amount:-.4,Operation:1,UUID:[I;0,399214,0,360169],Slot:\"offhand\"},{AttributeName:\"generic.attack_damage\",Name:\"generic.attack_damage\",Amount:.7,Operation:1,UUID:[I;0,787852,0,423204],Slot:\"offhand\"}],stored_color:[13181000]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/bashing',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"bashing\"},stored_attributes:[{AttributeName:\"generic.attack_speed\",Name:\"generic.attack_speed\",Amount:-.4,Operation:1,UUID:[I;0,399214,0,360169],Slot:\"offhand\"},{AttributeName:\"generic.attack_damage\",Name:\"generic.attack_damage\",Amount:.7,Operation:1,UUID:[I;0,787852,0,423204],Slot:\"offhand\"}],stored_color:[13181000]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/blasting.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/blasting.json index beb3d627ef..23d34c682d 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/blasting.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/blasting.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420205,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"blasting\"},stored_color:[16761136]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/blasting',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"blasting\"},stored_color:[16761136]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/blinding.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/blinding.json index 2e04128096..eab50c2630 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/blinding.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/blinding.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420206,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"blinding\"},stored_color:[3809425]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/blinding',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"blinding\"},stored_color:[3809425]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/bounding.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/bounding.json index 2f1e6c1572..85b524d387 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/bounding.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/bounding.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420207,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"bounding\"},stored_color:[7921776]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/bounding',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"bounding\"},stored_color:[7921776]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/bubbly.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/bubbly.json index acab854974..138b00718a 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/bubbly.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/bubbly.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420208,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"bubbly\"},stored_color:[5294074]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/bubbly',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"bubbly\"},stored_color:[5294074]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/conjuring.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/conjuring.json index 31783e9c94..7f49e8d55a 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/conjuring.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/conjuring.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420209,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"conjuring\"},stored_color:[2953835]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/conjuring',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"conjuring\"},stored_color:[2953835]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/dashing.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/dashing.json index fad60c7f97..de62a2fc51 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/dashing.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/dashing.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420236,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"dashing\"},stored_color:[14735149]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/dashing',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"dashing\"},stored_color:[14735149]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/depriving.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/depriving.json index 6b5ba97101..b702330521 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/depriving.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/depriving.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420210,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"depriving\"},stored_color:[13943899]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/depriving',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"depriving\"},stored_color:[13943899]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/draining.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/draining.json index ea8ae7b28e..fbb1bfe103 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/draining.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/draining.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420211,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"draining\"},stored_color:[6377247]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/draining',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"draining\"},stored_color:[6377247]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/enduring.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/enduring.json index 1dca2a56c8..6653433cf8 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/enduring.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/enduring.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420212,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"enduring\"},stored_attributes:[{AttributeName:\"generic.max_health\",Name:\"generic.max_health\",Amount:8,Operation:0,UUID:[I;0,585761,0,502439],Slot:\"offhand\"},{AttributeName:\"generic.movement_speed\",Name:\"generic.movement_speed\",Amount:-.2,Operation:1,UUID:[I;0,944632,0,806703],Slot:\"offhand\"}],stored_color:[5815552]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/enduring',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"enduring\"},stored_attributes:[{AttributeName:\"generic.max_health\",Name:\"generic.max_health\",Amount:8,Operation:0,UUID:[I;0,585761,0,502439],Slot:\"offhand\"},{AttributeName:\"generic.movement_speed\",Name:\"generic.movement_speed\",Amount:-.2,Operation:1,UUID:[I;0,944632,0,806703],Slot:\"offhand\"}],stored_color:[5815552]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/expeditious.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/expeditious.json index c3d542c65b..d922b99294 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/expeditious.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/expeditious.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420213,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"expeditious\"},stored_color:[14037247]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/expeditious',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"expeditious\"},stored_color:[14037247]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/feathery.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/feathery.json index 505c4e0465..0f8f16dda9 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/feathery.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/feathery.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420214,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"feathery\"},stored_color:[14806509]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/feathery',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"feathery\"},stored_color:[14806509]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/feigning.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/feigning.json index 40306cf8ae..644d9a37e8 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/feigning.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/feigning.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420234,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"feigning\"},stored_color:[16406506]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/feigning',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"feigning\"},stored_color:[16406506]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/freezing.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/freezing.json index 262f37a1cd..4a0c8f83df 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/freezing.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/freezing.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420233,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"freezing\"},stored_color:[5559779]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/freezing',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"freezing\"},stored_color:[5559779]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/gazing.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/gazing.json index d9faca27cb..62864864a2 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/gazing.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/gazing.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420215,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"gazing\"},stored_color:[6814213]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/gazing',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"gazing\"},stored_color:[6814213]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/gliding.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/gliding.json index 4efb9a3e47..069d9530d5 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/gliding.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/gliding.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420216,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"gliding\"},stored_color:[3108845]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/gliding',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"gliding\"},stored_color:[3108845]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/hawkeye.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/hawkeye.json index 99c279fd56..5f957de7e1 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/hawkeye.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/hawkeye.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420217,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"hawkeye\"},stored_color:[15548437]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/hawkeye',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"hawkeye\"},stored_color:[15548437]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/incombustible.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/incombustible.json index a4a305d4cf..765f1ccbfe 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/incombustible.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/incombustible.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420218,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"incombustible\"},stored_color:[15238935]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/incombustible',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"incombustible\"},stored_color:[15238935]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/lifeless.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/lifeless.json index 16db4db064..df5f9ecb80 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/lifeless.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/lifeless.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420219,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"lifeless\"},stored_color:[12761127]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/lifeless',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"lifeless\"},stored_color:[12761127]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/neutralizing.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/neutralizing.json index 98619b4e96..64e18b867d 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/neutralizing.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/neutralizing.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420220,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"neutralizing\"},stored_color:[6365875]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/neutralizing',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"neutralizing\"},stored_color:[6365875]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/phasing.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/phasing.json index ac55cd57b0..4eb06c790e 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/phasing.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/phasing.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420221,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"phasing\"},stored_color:[11202779]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/phasing',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"phasing\"},stored_color:[11202779]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/pricking.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/pricking.json index 466623f722..1a064e936e 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/pricking.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/pricking.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420222,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"pricking\"},stored_enchantments:[{id:\"minecraft:thorns\",lvl:5}],stored_color:[8375363]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/pricking',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"pricking\"},stored_enchantments:[{id:\"minecraft:thorns\",lvl:5}],stored_color:[8375363]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/retreating.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/retreating.json index 084f194554..bf37995293 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/retreating.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/retreating.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420223,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"retreating\"},stored_color:[13381501]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/retreating',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"retreating\"},stored_color:[13381501]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/rushing.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/rushing.json index ccf90fcc65..44ba079866 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/rushing.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/rushing.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420224,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"rushing\"},stored_color:[14245691]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/rushing',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"rushing\"},stored_color:[14245691]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/scaling.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/scaling.json index f3ffc37732..b787c7f982 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/scaling.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/scaling.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420225,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"scaling\"},stored_color:[8587519]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/scaling',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"scaling\"},stored_color:[8587519]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/shrieking.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/shrieking.json index 5e30eccc8a..4c03e6c418 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/shrieking.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/shrieking.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420235,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"shrieking\"},stored_color:[831664]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/shrieking',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"shrieking\"},stored_color:[831664]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/sniffing.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/sniffing.json index 25a9046cd0..c9bfd22725 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/sniffing.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/sniffing.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420237,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"sniffing\"},stored_color:[5482509]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/sniffing',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"sniffing\"},stored_color:[5482509]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/soaring.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/soaring.json index e43e11eaa5..5b3e5b13c9 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/soaring.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/soaring.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420226,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"soaring\"},stored_attributes:[{AttributeName:\"generic.max_health\",Name:\"generic.max_health\",Amount:-.2,Operation:1,UUID:[I;0,972157,0,324820],Slot:\"offhand\"}],stored_color:[9295344]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/soaring',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"soaring\"},stored_attributes:[{AttributeName:\"generic.max_health\",Name:\"generic.max_health\",Amount:-.2,Operation:1,UUID:[I;0,972157,0,324820],Slot:\"offhand\"}],stored_color:[9295344]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/striding.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/striding.json index 416148b78d..6c56c15f79 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/striding.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/striding.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420232,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"striding\"},stored_color:[15223575]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/striding',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"striding\"},stored_color:[15223575]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/synergetic.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/synergetic.json index df51c0841b..46fdd43699 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/synergetic.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/synergetic.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420227,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"synergetic\"},stored_color:[15790159]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/synergetic',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"synergetic\"},stored_color:[15790159]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/vanishing.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/vanishing.json index e57a2ad58e..b26787ddcf 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/vanishing.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/vanishing.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420228,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"vanishing\"},stored_color:[8864176]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/vanishing',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"vanishing\"},stored_color:[8864176]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/venomous.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/venomous.json index 40851a75e7..11fc1c1981 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/venomous.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/venomous.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420229,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"venomous\"},stored_color:[5424161]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/venomous',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"venomous\"},stored_color:[5424161]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/volatile.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/volatile.json index 278307227a..9113d1523c 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/volatile.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/volatile.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420230,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"volatile\"},stored_color:[2474538]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/volatile',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"volatile\"},stored_color:[2474538]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/withering.json b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/withering.json index 6ec222a17a..38e96c1d21 100755 --- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/withering.json +++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/loot_tables/items/soul_essence/withering.json @@ -30,7 +30,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420231,gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"withering\"},stored_color:[4067968]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'pneuma/withering',gm4_orb_of_ankou:{item:\"soul_essence\",stored_pneuma:{id:\"withering\"},stored_color:[4067968]},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" } ] } diff --git a/gm4_orb_of_ankou/generate_pneumas.py b/gm4_orb_of_ankou/generate_pneumas.py index 9958f88b35..c88b765c35 100644 --- a/gm4_orb_of_ankou/generate_pneumas.py +++ b/gm4_orb_of_ankou/generate_pneumas.py @@ -138,7 +138,7 @@ def read_csv(): updated_csv.append(entry) # update calculated info - with open('gm4_orb_of_ankou/soul_essence.csv', mode ='w') as file: + with open('gm4_orb_of_ankou/soul_essence.csv', mode ='w', newline='') as file: csv_file = csv.writer(file) # skip first two rows diff --git a/gm4_orb_of_ankou/overlay_18/data/gm4_orb_of_ankou/functions/soul_forge/entities/fire_sprite.mcfunction b/gm4_orb_of_ankou/overlay_18/data/gm4_orb_of_ankou/functions/soul_forge/entities/fire_sprite.mcfunction index 8831acdf77..2c34cfbf56 100644 --- a/gm4_orb_of_ankou/overlay_18/data/gm4_orb_of_ankou/functions/soul_forge/entities/fire_sprite.mcfunction +++ b/gm4_orb_of_ankou/overlay_18/data/gm4_orb_of_ankou/functions/soul_forge/entities/fire_sprite.mcfunction @@ -2,7 +2,7 @@ # run from both soul_forge/entities/summon_powder_sprite and soul_forge/entities/summon_glowstone_sprite # spawn zombie -summon minecraft:zombie ~ ~0.2 ~ {Fire:1000000,Motion:[0.0,0.6,0.0],Silent:1b,CustomNameVisible:0b,DeathLootTable:"minecraft:empty",Health:10.0f,IsBaby:1b,CanBreakDoors:0b,CanPickUpLoot:0b,Tags:["gm4_oa_unset","gm4_oa_ignore","gm4_oa_fire_sprite"],CustomName:'{"translate":"entity.gm4.fire_sprite","fallback":"Fire Sprite§"}',Team:"gm4_hide_name",ArmorItems:[{},{},{},{id:"minecraft:golden_helmet",Count:1b,tag:{CustomModelData:3420006,Enchantments:[{id:"minecraft:protection",lvl:0s}],HideFlags:1}}],ArmorDropChances:[0.0F,0.0F,0.0F,-327.670F],active_effects:[{id:'minecraft:invisibility',amplifier:0b,duration:1000000,show_particles:0b}],Attributes:[{Name:"generic.follow_range",Base:8},{Name:"generic.attack_damage",Base:1},{Name:"generic.attack_knockback",Base:0},{Name:"zombie.spawn_reinforcements",Base:0}]} +summon minecraft:zombie ~ ~0.2 ~ {Fire:1000000,Motion:[0.0,0.6,0.0],Silent:1b,CustomNameVisible:0b,DeathLootTable:"minecraft:empty",Health:10.0f,IsBaby:1b,CanBreakDoors:0b,CanPickUpLoot:0b,Tags:["gm4_oa_unset","gm4_oa_ignore","gm4_oa_fire_sprite"],CustomName:'{"translate":"entity.gm4.fire_sprite","fallback":"Fire Sprite§"}',Team:"gm4_hide_name",ArmorItems:[{},{},{},{id:"minecraft:golden_helmet",Count:1b,tag:{CustomModelData:"entity/fire_sprite",Enchantments:[{id:"minecraft:protection",lvl:0s}],HideFlags:1}}],ArmorDropChances:[0.0F,0.0F,0.0F,-327.670F],active_effects:[{id:'minecraft:invisibility',amplifier:0b,duration:1000000,show_particles:0b}],Attributes:[{Name:"generic.follow_range",Base:8},{Name:"generic.attack_damage",Base:1},{Name:"generic.attack_knockback",Base:0},{Name:"zombie.spawn_reinforcements",Base:0}]} # randomize motion in x and z execute as @e[type=zombie,tag=gm4_oa_unset,limit=1] run function gm4_orb_of_ankou:soul_forge/entities/randomize_motion diff --git a/gm4_orb_of_ankou/overlay_18/data/gm4_orb_of_ankou/functions/soul_forge/entities/summon_extra_orb.mcfunction b/gm4_orb_of_ankou/overlay_18/data/gm4_orb_of_ankou/functions/soul_forge/entities/summon_extra_orb.mcfunction index 9052488f17..2370c47dc1 100644 --- a/gm4_orb_of_ankou/overlay_18/data/gm4_orb_of_ankou/functions/soul_forge/entities/summon_extra_orb.mcfunction +++ b/gm4_orb_of_ankou/overlay_18/data/gm4_orb_of_ankou/functions/soul_forge/entities/summon_extra_orb.mcfunction @@ -2,7 +2,7 @@ # run from soul_forge/destroy # spawn silverfish -summon silverfish ~ ~0.2 ~ {CustomName:'{"translate":"entity.gm4.living_orb","fallback":"Living Orb"}',CustomNameVisible:0,Team:"gm4_hide_name",DeathLootTable:"minecraft:empty",PersistenceRequired:1b,Tags:["gm4_oa_unset","gm4_oa_living_orb","gm4_oa_ignore"],HandDropChances:[2.0f,1.0f],Motion:[0.0,0.6,0.0],active_effects:[{id:'minecraft:fire_resistance',amplifier:0b,duration:1000000,show_particles:0b}]} +summon silverfish ~ ~0.2 ~ {CustomName:'{"translate":"entity.gm4.living_orb","fallback":"Living Orb§"}',CustomNameVisible:0,Team:"gm4_hide_name",DeathLootTable:"minecraft:empty",PersistenceRequired:1b,Tags:["gm4_oa_unset","gm4_oa_living_orb","gm4_oa_ignore"],HandDropChances:[2.0f,1.0f],Motion:[0.0,0.6,0.0],active_effects:[{id:'minecraft:fire_resistance',amplifier:0b,duration:1000000,show_particles:0b}]} # set loot drop to orb of ankou data modify entity @e[type=silverfish,tag=gm4_oa_unset,limit=1] HandItems[0] set from storage gm4_orb_of_ankou:temp ArmorItems[3] diff --git a/gm4_orb_of_ankou/pneuma_model_template.py b/gm4_orb_of_ankou/pneuma_model_template.py new file mode 100644 index 0000000000..17e7d8e138 --- /dev/null +++ b/gm4_orb_of_ankou/pneuma_model_template.py @@ -0,0 +1,30 @@ +from beet import Model, NamespaceProxy, Context +from gm4.plugins.resource_pack import ModelData, TemplateOptions +from gm4.utils import MapOption + +def beet_default(ctx: Context): + pass + +class PneumaTemplate(TemplateOptions): + """model template to generate the models for shards and essences""" + name = "pneuma" + + def process(self, config: ModelData, models_container: NamespaceProxy[Model]): + pneuma = config.reference.split("/")[-1] # eg agile, anchoring ect... + shard = models_container[f"gm4_orb_of_ankou:item/shards/{pneuma}"] = Model({ + "parent": "item/generated", + "textures": { + "layer0": f"gm4_orb_of_ankou:item/shards/{pneuma}" + } + }) + essence = models_container[f"gm4_orb_of_ankou:item/essences/{pneuma}"] = Model({ + "parent": "item/generated", + "textures": { + "layer0": f"gm4_orb_of_ankou:item/essences/{pneuma}" + } + }) + config.model = MapOption(__root__={ + "flint": f"gm4_orb_of_ankou:item/shards/{pneuma}", + "black_dye": f"gm4_orb_of_ankou:item/essences/{pneuma}" + }) + return [shard, essence] diff --git a/gm4_particles_pack/data/gm4_particles_pack/guidebook/particles_pack.json b/gm4_particles_pack/data/gm4_particles_pack/guidebook/particles_pack.json index eea9026ad1..f74b1fef3f 100644 --- a/gm4_particles_pack/data/gm4_particles_pack/guidebook/particles_pack.json +++ b/gm4_particles_pack/data/gm4_particles_pack/guidebook/particles_pack.json @@ -4,8 +4,7 @@ "module_type": "expansion", "base_module": "better_armour_stands", "icon": { - "item": "minecraft:armor_stand", - "nbt": "{CustomModelData:3420004}" + "item": "minecraft:armor_stand" }, "criteria": { "modify_armor_stand": { diff --git a/gm4_particles_pack/translations.csv b/gm4_particles_pack/translations.csv new file mode 100644 index 0000000000..590c918c3a --- /dev/null +++ b/gm4_particles_pack/translations.csv @@ -0,0 +1,3 @@ +key,en_us +text.gm4.guidebook.module_desc.particles_pack,"Fireflies to flames, add some pezazz to your projects! Allows you to turn Armour Stands into particle sources that you control!" +text.gm4.guidebook.particles_pack.description,The following codes will turn the armour stand into an invisible particle emitter: diff --git a/gm4_percurro_shamir/assets/translations.csv b/gm4_percurro_shamir/assets/translations.csv new file mode 100644 index 0000000000..fdb40f40c2 --- /dev/null +++ b/gm4_percurro_shamir/assets/translations.csv @@ -0,0 +1,5 @@ +key,en_us +item.gm4.shamir.percurro,Percurro +text.gm4.guidebook.module_desc.percurro_shamir,Adds the 'Percurro' Shamir to Metallurgy! Weapons with Percurro let you teleport past your enemies in the blink of an eye! +text.gm4.guidebook.percurro_shamir.description,Percurro teleports the user behind their target when attacking. +text.gm4.guidebook.percurro_shamir.usage,"The Percurro Shamir is found on Curie's Bismium Bands. It can be placed onto swords, axes, and tridents.\n\nAttacking a mob teleports the user up to 6 blocks behind the target, turning to face the target." diff --git a/gm4_percurro_shamir/beet.yaml b/gm4_percurro_shamir/beet.yaml index e6bb128edc..a1db300ebd 100644 --- a/gm4_percurro_shamir/beet.yaml +++ b/gm4_percurro_shamir/beet.yaml @@ -5,7 +5,11 @@ version: 1.2.X data_pack: load: . +resource_pack: + load: ../gm4_metallurgy + pipeline: + - gm4_metallurgy.shamir_model_template - gm4.plugins.extend.module meta: @@ -13,6 +17,13 @@ meta: versioning: required: gm4_metallurgy: 1.2.0 + model_data: + - item: weapons + reference: shamir/percurro + template: + name: shamir + metal: curies_bismium + textures_path: gm4_metallurgy:item/shamir/curies_bismium website: description: Adds the 'Percurro' Shamir to Metallurgy! Weapons with Percurro let you teleport past your enemies in the blink of an eye! recommended: [] diff --git a/gm4_percurro_shamir/data/gm4_percurro_shamir/functions/init.mcfunction b/gm4_percurro_shamir/data/gm4_percurro_shamir/functions/init.mcfunction index 57dfcae51e..903df5a50d 100644 --- a/gm4_percurro_shamir/data/gm4_percurro_shamir/functions/init.mcfunction +++ b/gm4_percurro_shamir/data/gm4_percurro_shamir/functions/init.mcfunction @@ -6,7 +6,7 @@ scoreboard players set percurro_shamir gm4_modules 1 data remove storage gm4_player_heads:register heads[{id:"gm4_percurro_shamir:band/v0"}] # register shamir with lib_player_heads -execute unless data storage gm4_player_heads:register heads[{id:"gm4_percurro_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_percurro_shamir:band/v1",name:"[Drop to Fix Item] gm4_percurro_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"percurro",metal:{type:"curies_bismium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/curies_bismium",CustomModelData:3420117,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#467A1B","translate":"item.gm4.metallurgy.band","fallback":"Curie\'s Bismium Band","with":[{"translate":"item.gm4.metallurgy.curies_bismium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.percurro","fallback":"Percurro"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_percurro_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_percurro_shamir:band/v1",name:"[Drop to Fix Item] gm4_percurro_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"percurro",metal:{type:"curies_bismium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/curies_bismium",CustomModelData:"shamir/percurro",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#467A1B","translate":"item.gm4.metallurgy.band","fallback":"Curie\'s Bismium Band","with":[{"translate":"item.gm4.metallurgy.curies_bismium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.percurro","fallback":"Percurro"}']}}} diff --git a/gm4_percurro_shamir/data/gm4_percurro_shamir/guidebook/percurro_shamir.json b/gm4_percurro_shamir/data/gm4_percurro_shamir/guidebook/percurro_shamir.json index fdfc5372f5..b7ebb69e5a 100644 --- a/gm4_percurro_shamir/data/gm4_percurro_shamir/guidebook/percurro_shamir.json +++ b/gm4_percurro_shamir/data/gm4_percurro_shamir/guidebook/percurro_shamir.json @@ -4,8 +4,7 @@ "module_type": "expansion", "base_module": "metallurgy", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420117}" + "item": "minecraft:anvil" }, "criteria": { "obtain_percurro_shamir": { diff --git a/gm4_percurro_shamir/data/gm4_percurro_shamir/loot_tables/band.json b/gm4_percurro_shamir/data/gm4_percurro_shamir/loot_tables/band.json index e5955c7f92..7eecad776a 100644 --- a/gm4_percurro_shamir/data/gm4_percurro_shamir/loot_tables/band.json +++ b/gm4_percurro_shamir/data/gm4_percurro_shamir/loot_tables/band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420117,SkullOwner:{Name:\"[Drop to Fix Item] gm4_percurro_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"percurro\"}}" + "tag": "{CustomModelData:'shamir/percurro',SkullOwner:{Name:\"[Drop to Fix Item] gm4_percurro_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"percurro\"}}" }, { "function": "minecraft:set_lore", diff --git a/gm4_phantom_scarecrows/assets/translations.csv b/gm4_phantom_scarecrows/assets/translations.csv new file mode 100644 index 0000000000..d08f10cb36 --- /dev/null +++ b/gm4_phantom_scarecrows/assets/translations.csv @@ -0,0 +1,6 @@ +key,en_us +advancement.gm4.phantom_scarecrows.title,Not so smart defenses +advancement.gm4.phantom_scarecrows.description,Get hit by a Phantom Scarecrow +text.gm4.guidebook.module_desc.phantom_scarecrows,Set up Scarecrows that shoot homing rockets at Phantoms! +text.gm4.guidebook.phantom_scarecrows.creation,Placing a skull or zombie head on an armour stand and equipping it with a cursed chestplate will transform it into a phantom scarecrow. +text.gm4.guidebook.phantom_scarecrows.usage,"Phantom scarecrows will shoot fireworks at phantoms above them.\n\nPhantoms shot by these projectiles will instantly die, but if the firework projectile hits a block, it will explode." diff --git a/gm4_phantom_scarecrows/beet.yaml b/gm4_phantom_scarecrows/beet.yaml index bc63ade883..71b0315233 100644 --- a/gm4_phantom_scarecrows/beet.yaml +++ b/gm4_phantom_scarecrows/beet.yaml @@ -14,6 +14,10 @@ meta: schedule_loops: - main - tick + model_data: + - item: firework_rocket + reference: gui/advancement/phantom_scarecrows + template: advancement website: description: Set up Scarecrows that shoot homing rockets at Phantoms! recommended: [] diff --git a/gm4_phantom_scarecrows/data/gm4/advancements/phantom_scarecrows.json b/gm4_phantom_scarecrows/data/gm4/advancements/phantom_scarecrows.json index ef9a25cfaf..035514b01a 100644 --- a/gm4_phantom_scarecrows/data/gm4/advancements/phantom_scarecrows.json +++ b/gm4_phantom_scarecrows/data/gm4/advancements/phantom_scarecrows.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:firework_rocket", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/phantom_scarecrows'}" }, "title": { "translate": "advancement.gm4.phantom_scarecrows.title", diff --git a/gm4_phantom_scarecrows/data/gm4_phantom_scarecrows/guidebook/phantom_scarecrows.json b/gm4_phantom_scarecrows/data/gm4_phantom_scarecrows/guidebook/phantom_scarecrows.json index 1b4d6c12cd..84350f57ff 100644 --- a/gm4_phantom_scarecrows/data/gm4_phantom_scarecrows/guidebook/phantom_scarecrows.json +++ b/gm4_phantom_scarecrows/data/gm4_phantom_scarecrows/guidebook/phantom_scarecrows.json @@ -3,8 +3,7 @@ "name": "Phantom Scarecrows", "module_type": "module", "icon": { - "item": "minecraft:skeleton_skull", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:skeleton_skull" }, "criteria": { "obtain_skull": { diff --git a/gm4_pig_tractors/assets/translations.csv b/gm4_pig_tractors/assets/translations.csv new file mode 100644 index 0000000000..426ff6c04f --- /dev/null +++ b/gm4_pig_tractors/assets/translations.csv @@ -0,0 +1,7 @@ +key,en_us +advancement.gm4.pig_tractors.title,Oink Tractors +advancement.gm4.pig_tractors.description,Till some ground by holding a hoe on a Pig Tractor! +text.gm4.guidebook.module_desc.pig_tractors,"Ride pigs through fields to quickly harvest and plant crops! Who knows, maybe you will even dig up some useful things in the process." +text.gm4.guidebook.pig_tractors.tilling,"Riding a pig while holding a hoe will till grass, dirt, or coarse dirt below the pig, with a chance to drop some loot." +text.gm4.guidebook.pig_tractors.harvesting,"Driving over crops with a Pig Tractor will harvest them.\n\nIf the farmer has seeds or crops in their inventory, the crops will be automatically replanted." +text.gm4.guidebook.pig_tractors.planting_on_empty,"Driving over empty farmland will plant any crops in the farmer's inventory, prioritizing crops in hand." diff --git a/gm4_pig_tractors/beet.yaml b/gm4_pig_tractors/beet.yaml index f29c634cbb..f06b4e1d25 100644 --- a/gm4_pig_tractors/beet.yaml +++ b/gm4_pig_tractors/beet.yaml @@ -14,6 +14,10 @@ meta: description: Ride pigs through fields to quickly harvest and plant crops! Who knows, maybe you will even dig up some useful things in the process. recommended: [] notes: [] + model_data: + - item: saddle + reference: gui/advancement/pig_tractors + template: advancement video: https://www.youtube.com/watch?v=7i0WFHUfBXs wiki: https://wiki.gm4.co/wiki/Pig_Tractors credits: diff --git a/gm4_pig_tractors/data/gm4/advancements/pig_tractors.json b/gm4_pig_tractors/data/gm4/advancements/pig_tractors.json index 48a1ce3672..59677ca85f 100644 --- a/gm4_pig_tractors/data/gm4/advancements/pig_tractors.json +++ b/gm4_pig_tractors/data/gm4/advancements/pig_tractors.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "saddle", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/pig_tractors'}" }, "title": { "translate": "advancement.gm4.pig_tractors.title", diff --git a/gm4_pig_tractors/data/gm4_pig_tractors/guidebook/pig_tractors.json b/gm4_pig_tractors/data/gm4_pig_tractors/guidebook/pig_tractors.json index 84f94160a6..5c1ad67ca1 100644 --- a/gm4_pig_tractors/data/gm4_pig_tractors/guidebook/pig_tractors.json +++ b/gm4_pig_tractors/data/gm4_pig_tractors/guidebook/pig_tractors.json @@ -3,8 +3,7 @@ "name": "Pig Tractors", "module_type": "module", "icon": { - "item": "minecraft:iron_hoe", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:iron_hoe" }, "criteria": { "ride_pig": { diff --git a/gm4_podzol_rooting_soil/data/gm4_podzol_rooting_soil/guidebook/podzol_rooting_soil.json b/gm4_podzol_rooting_soil/data/gm4_podzol_rooting_soil/guidebook/podzol_rooting_soil.json index f6b9fd017d..2a6ae89e05 100644 --- a/gm4_podzol_rooting_soil/data/gm4_podzol_rooting_soil/guidebook/podzol_rooting_soil.json +++ b/gm4_podzol_rooting_soil/data/gm4_podzol_rooting_soil/guidebook/podzol_rooting_soil.json @@ -3,8 +3,7 @@ "name": "Podzol Rooting Soil", "module_type": "module", "icon": { - "item": "minecraft:spruce_sapling", - "nbt": "{CustomModelData:3420005}" + "item": "minecraft:spruce_sapling" }, "criteria": { "obtain_sapling": { diff --git a/gm4_podzol_rooting_soil/translations.csv b/gm4_podzol_rooting_soil/translations.csv new file mode 100644 index 0000000000..e2465b2670 --- /dev/null +++ b/gm4_podzol_rooting_soil/translations.csv @@ -0,0 +1,3 @@ +key,en_us +text.gm4.guidebook.module_desc.podzol_rooting_soil,Allows saplings to self-plant when on Podzol. The perfect choice for auto-treefarms! +text.gm4.guidebook.podzol_rooting_soil.description,Saplings dropped on podzol will replant themselves over time. diff --git a/gm4_poses_pack/assets/translations.csv b/gm4_poses_pack/assets/translations.csv new file mode 100644 index 0000000000..b8a240c1db --- /dev/null +++ b/gm4_poses_pack/assets/translations.csv @@ -0,0 +1,10 @@ +key,en_us +advancement.gm4.poses_pack.title,Plenty O' Posing +advancement.gm4.poses_pack.description,Apply a preset pose to your armour stand +text.gm4.guidebook.module_desc.poses_pack,Adds a bunch of preset poses to the Better Armour Stands Module. This can be really hand for applying common poses like 'walking' or raised arms! +text.gm4.guidebook.poses_pack.description,The following codes can be used to put a preset pose onto an armour stand: +text.gm4.guidebook.poses_pack.head,Head +text.gm4.guidebook.poses_pack.body_part,%1$s: +text.gm4.guidebook.better_armour_stands.copy_code,Click to copy +text.gm4.guidebook.poses_pack.arms,Arms +text.gm4.guidebook.poses_pack.legs,Legs diff --git a/gm4_poses_pack/beet.yaml b/gm4_poses_pack/beet.yaml index 5cce0a02cb..73ca4ba86f 100644 --- a/gm4_poses_pack/beet.yaml +++ b/gm4_poses_pack/beet.yaml @@ -13,6 +13,10 @@ meta: versioning: required: gm4_better_armour_stands: 2.0.0 + model_data: + - item: armor_stand + reference: gui/advancement/poses_pack + template: advancement website: description: Adds a bunch of preset poses to the Better Armour Stands Module. This can be really hand for applying common poses like 'walking' or raised arms! recommended: diff --git a/gm4_poses_pack/data/gm4/advancements/poses_pack.json b/gm4_poses_pack/data/gm4/advancements/poses_pack.json index 297f3795ae..d61d26d5ae 100644 --- a/gm4_poses_pack/data/gm4/advancements/poses_pack.json +++ b/gm4_poses_pack/data/gm4/advancements/poses_pack.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "armor_stand", - "nbt": "{CustomModelData:3420002}" + "nbt": "{CustomModelData:'gui/advancement/poses_pack'}" }, "title": { "translate": "advancement.gm4.poses_pack.title", diff --git a/gm4_poses_pack/data/gm4_poses_pack/guidebook/poses_pack.json b/gm4_poses_pack/data/gm4_poses_pack/guidebook/poses_pack.json index 7b0e156f9f..2713f3b58c 100644 --- a/gm4_poses_pack/data/gm4_poses_pack/guidebook/poses_pack.json +++ b/gm4_poses_pack/data/gm4_poses_pack/guidebook/poses_pack.json @@ -4,8 +4,7 @@ "module_type": "expansion", "base_module": "better_armour_stands", "icon": { - "item": "minecraft:armor_stand", - "nbt": "{CustomModelData:3420003}" + "item": "minecraft:armor_stand" }, "criteria": { "modify_armor_stand": { diff --git a/gm4_potion_liquids/beet.yaml b/gm4_potion_liquids/beet.yaml index 7ea63f9f27..76e303f3b1 100644 --- a/gm4_potion_liquids/beet.yaml +++ b/gm4_potion_liquids/beet.yaml @@ -15,6 +15,10 @@ meta: required: gm4_liquid_tanks: 2.1.0 lib_brewing: 1.0.0 + model_data: + - item: potion + reference: gui/advancement/potion_liquids + template: advancement website: description: Adds the ability to store potions in Liquid Tanks! You can also use a potion by walking beneath a potion-filled Liquid Tank. recommended: [] diff --git a/gm4_potion_liquids/data/gm4/advancements/potion_liquids.json b/gm4_potion_liquids/data/gm4/advancements/potion_liquids.json index 7987f2a427..10634ad802 100644 --- a/gm4_potion_liquids/data/gm4/advancements/potion_liquids.json +++ b/gm4_potion_liquids/data/gm4/advancements/potion_liquids.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "potion", - "nbt": "{CustomModelData:3420002,CustomPotionColor:13631487}" + "nbt": "{CustomModelData:'gui/advancement/potion_liquids',CustomPotionColor:13631487}" }, "title": { "translate": "advancement.gm4.potion_liquids.title", diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/guidebook/potion_liquids.json b/gm4_potion_liquids/data/gm4_potion_liquids/guidebook/potion_liquids.json index 761af5e572..e93e8c86e6 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/guidebook/potion_liquids.json +++ b/gm4_potion_liquids/data/gm4_potion_liquids/guidebook/potion_liquids.json @@ -5,7 +5,7 @@ "base_module": "liquid_tanks", "icon": { "item": "minecraft:potion", - "nbt": "{CustomModelData:3420005,Potion:\"minecraft:swiftness\"}" + "nbt": "{Potion:\"minecraft:swiftness\"}" }, "criteria": { "obtain_liquid_tank": { diff --git a/gm4_potion_liquids/translations.csv b/gm4_potion_liquids/translations.csv new file mode 100644 index 0000000000..d4fa763656 --- /dev/null +++ b/gm4_potion_liquids/translations.csv @@ -0,0 +1,36 @@ +key,en_us +advancement.gm4.potion_liquids.description,"Come on in, the air's fine" +advancement.gm4.potion_liquids.title,Fizzy Lifting Drink +container.gm4.liquid_tank.fire_resistance,Fire Resistance Potion Tank +container.gm4.liquid_tank.floating,Floating Potion Tank +container.gm4.liquid_tank.harming,Harming Potion Tank +container.gm4.liquid_tank.healing,Healing Potion Tank +container.gm4.liquid_tank.invisibility,Invisibility Potion Tank +container.gm4.liquid_tank.leaping,Leaping Potion Tank +container.gm4.liquid_tank.luck,Luck Potion Tank +container.gm4.liquid_tank.night_vision,Night Vision Potion Tank +container.gm4.liquid_tank.poison,Poison Potion Tank +container.gm4.liquid_tank.regeneration,Regeneration Potion Tank +container.gm4.liquid_tank.slow_falling,Slow Falling Potion Tank +container.gm4.liquid_tank.slowness,Slowness Potion Tank +container.gm4.liquid_tank.strength,Strength Potion Tank +container.gm4.liquid_tank.strong_harming,Strong Harming Potion Tank +container.gm4.liquid_tank.strong_healing,Strong Healing Potion Tank +container.gm4.liquid_tank.strong_leaping,Strong Leaping Potion Tank +container.gm4.liquid_tank.strong_turtle_master,Strong Turtle Master Potion Tank +container.gm4.liquid_tank.strong_poison,Strong Poison Potion Tank +container.gm4.liquid_tank.strong_regeneration,Strong Regeneration Potion Tank +container.gm4.liquid_tank.strong_slowness,Strong Slowness Potion Tank +container.gm4.liquid_tank.strong_strength,Strong Strength Potion Tank +container.gm4.liquid_tank.strong_swiftness,Strong Swiftness Potion Tank +container.gm4.liquid_tank.swiftness,Swiftness Potion Tank +container.gm4.liquid_tank.turtle_master,Turtle Master Potion Tank +container.gm4.liquid_tank.water_breathing,Water Breathing Potion Tank +container.gm4.liquid_tank.weakness,Weakness Potion Tank +item.gm4.floating_potion,Potion of Floating +item.gm4.lingering_floating_potion,Lingering Potion of Floating +item.gm4.splash_floating_potion,Splash Potion of Floating +text.gm4.guidebook.module_desc.potion_liquids,Adds the ability to store potions in Liquid Tanks! You can also use a potion by walking beneath a potion-filled Liquid Tank. +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." diff --git a/gm4_potion_swords/assets/translations.csv b/gm4_potion_swords/assets/translations.csv new file mode 100644 index 0000000000..a3d2d2a486 --- /dev/null +++ b/gm4_potion_swords/assets/translations.csv @@ -0,0 +1,7 @@ +key,en_us +advancement.gm4.potion_swords.title,Instant Regret +advancement.gm4.potion_swords.description,Wither-ize a skeleton with potion swords +text.gm4.guidebook.module_desc.potion_swords,"As if getting stabbed isn't enough... support your friends, terrify your enemies, make gold great again using Golden Swords and potions!" +text.gm4.guidebook.potion_swords.description,"Attacking with a golden sword whilst a potion is in the inventory will cause an effect based on the potion.\n\nThe potions are never consumed, but only certain potions work." +text.gm4.guidebook.potion_swords.defensive_potions,The following potions can be used with Potion Swords:\n\nExtended Invisibility applies invisibility for 8 seconds to allies.\n\nInstant Health II applies Absorption I for 8 seconds to allies. +text.gm4.guidebook.potion_swords.offensive_potions,Poison II withers nearby mobs for 4 seconds and transforms skeletons into wither skeletons without loot.\n\nExtended Slowness causes nearby mobs to be unable to move for 4 seconds. diff --git a/gm4_potion_swords/beet.yaml b/gm4_potion_swords/beet.yaml index b1881b405f..98ea129a5c 100644 --- a/gm4_potion_swords/beet.yaml +++ b/gm4_potion_swords/beet.yaml @@ -12,6 +12,10 @@ meta: gm4: versioning: schedule_loops: [tick] + model_data: + - item: golden_sword + reference: gui/advancement/potion_swords + template: advancement website: description: As if getting stabbed isn't enough... support your friends, terrify your enemies, make gold great again using Golden Swords and potions! recommended: [] diff --git a/gm4_potion_swords/data/gm4/advancements/potion_swords.json b/gm4_potion_swords/data/gm4/advancements/potion_swords.json index c8b4458bce..b78b33384b 100644 --- a/gm4_potion_swords/data/gm4/advancements/potion_swords.json +++ b/gm4_potion_swords/data/gm4/advancements/potion_swords.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "golden_sword", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/potion_swords'}" }, "title": { "translate": "advancement.gm4.potion_swords.title", diff --git a/gm4_potion_swords/data/gm4_potion_swords/guidebook/potion_swords.json b/gm4_potion_swords/data/gm4_potion_swords/guidebook/potion_swords.json index 262131935f..e90e0d2d39 100644 --- a/gm4_potion_swords/data/gm4_potion_swords/guidebook/potion_swords.json +++ b/gm4_potion_swords/data/gm4_potion_swords/guidebook/potion_swords.json @@ -3,8 +3,7 @@ "name": "Potion Swords", "module_type": "module", "icon": { - "item": "minecraft:golden_sword", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:golden_sword" }, "criteria": { "obtain_potion": { diff --git a/gm4_record_crafting/assets/translations.csv b/gm4_record_crafting/assets/translations.csv new file mode 100644 index 0000000000..b17fd87fa4 --- /dev/null +++ b/gm4_record_crafting/assets/translations.csv @@ -0,0 +1,8 @@ +key,en_us +advancement.gm4.record_crafting.title,Getting Groovy +advancement.gm4.record_crafting.description,Craft all 12 records yourself +text.gm4.guidebook.module_desc.record_crafting,A crafting recipe pack that lets you craft all the records in a Custom Crafter. +text.gm4.guidebook.record_crafting.description,Music Discs can be crafted with eight flint and a center item. +text.gm4.guidebook.record_crafting.crafting,Records are crafted with a different center item: +text.gm4.guidebook.record_crafting.items,Below is a list of items and their resulting disc:\n\nYellow Dye––------13\nGreen Dye—------Cat\nOrange Dye----Blocks\nRed Dye--------Chirp\nLime Dye---------Far +text.gm4.guidebook.record_crafting.items_1,Purple Dye—–----Mall\nMagenta Dye---Mellohi\nBlack Dye—------Stal\nWhite Dye—-----Strad\nEye of Ender--- Ward\nCoal—------------11\nLight Blue Dye----Wait diff --git a/gm4_record_crafting/beet.yaml b/gm4_record_crafting/beet.yaml index b1685f06bb..762684b1e7 100644 --- a/gm4_record_crafting/beet.yaml +++ b/gm4_record_crafting/beet.yaml @@ -14,6 +14,10 @@ meta: versioning: required: lib_custom_crafters: 3.0.0 + model_data: + - item: music_disc_13 + reference: gui/advancement/record_crafting + template: advancement website: description: A crafting recipe pack that lets you craft all the records in a Custom Crafter. recommended: diff --git a/gm4_record_crafting/data/gm4/advancements/record_crafting.json b/gm4_record_crafting/data/gm4/advancements/record_crafting.json index 5f994e4df8..2b49c0b895 100644 --- a/gm4_record_crafting/data/gm4/advancements/record_crafting.json +++ b/gm4_record_crafting/data/gm4/advancements/record_crafting.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "music_disc_13", - "nbt": "{CustomModelData:3420003}" + "nbt": "{CustomModelData:'gui/advancement/record_crafting'}" }, "title": { "translate": "advancement.gm4.record_crafting.title", diff --git a/gm4_record_crafting/data/gm4_record_crafting/guidebook/record_crafting.json b/gm4_record_crafting/data/gm4_record_crafting/guidebook/record_crafting.json index a7dd8d7671..c7f9677b72 100644 --- a/gm4_record_crafting/data/gm4_record_crafting/guidebook/record_crafting.json +++ b/gm4_record_crafting/data/gm4_record_crafting/guidebook/record_crafting.json @@ -4,8 +4,7 @@ "module_type": "expansion", "base_module": "custom_crafters", "icon": { - "item": "minecraft:music_disc_11", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:music_disc_11" }, "criteria": { "open_custom_crafter": { diff --git a/gm4_record_crafting/overlay_26/data/gm4_record_crafting/guidebook/record_crafting.json b/gm4_record_crafting/overlay_26/data/gm4_record_crafting/guidebook/record_crafting.json index ed37c48b7b..599a69e20c 100644 --- a/gm4_record_crafting/overlay_26/data/gm4_record_crafting/guidebook/record_crafting.json +++ b/gm4_record_crafting/overlay_26/data/gm4_record_crafting/guidebook/record_crafting.json @@ -4,8 +4,7 @@ "module_type": "expansion", "base_module": "custom_crafters", "icon": { - "item": "minecraft:music_disc_11", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:music_disc_11" }, "criteria": { "open_custom_crafter": { diff --git a/gm4_relocators/assets/gm4_relocators/models/item/relocator_base.json b/gm4_relocators/assets/gm4_relocators/models/item/relocator_base.json new file mode 100644 index 0000000000..ee1e4abccc --- /dev/null +++ b/gm4_relocators/assets/gm4_relocators/models/item/relocator_base.json @@ -0,0 +1,32 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "elements": [ + { + "name": "outer", + "from": [2, 2, 2], + "to": [14, 14, 14], + "faces": { + "north": {"uv": [2, 2, 14, 14], "texture": "#outer", "cullface": "north"}, + "east": {"uv": [2, 2, 14, 14], "texture": "#outer", "cullface": "east"}, + "south": {"uv": [2, 2, 14, 14], "texture": "#outer", "cullface": "south"}, + "west": {"uv": [2, 2, 14, 14], "texture": "#outer", "cullface": "west"}, + "up": {"uv": [2, 2, 14, 14], "texture": "#outer", "cullface": "up"}, + "down": {"uv": [2, 2, 14, 14], "texture": "#outer", "cullface": "down"} + } + }, + { + "name": "core", + "from": [4, 4, 4], + "to": [12, 12, 12], + "faces": { + "north": {"uv": [4, 4, 12, 12], "texture": "#core", "cullface": "north"}, + "east": {"uv": [4, 4, 12, 12], "texture": "#core", "cullface": "east"}, + "south": {"uv": [4, 4, 12, 12], "texture": "#core", "cullface": "south"}, + "west": {"uv": [4, 4, 12, 12], "texture": "#core", "cullface": "west"}, + "up": {"uv": [4, 4, 12, 12], "texture": "#core", "cullface": "up"}, + "down": {"uv": [4, 4, 12, 12], "texture": "#core", "cullface": "down"} + } + } + ] +} diff --git a/gm4_relocators/assets/gm4_relocators/models/item/relocator_empty.json b/gm4_relocators/assets/gm4_relocators/models/item/relocator_empty.json new file mode 100644 index 0000000000..f9c4302a97 --- /dev/null +++ b/gm4_relocators/assets/gm4_relocators/models/item/relocator_empty.json @@ -0,0 +1,7 @@ +{ + "parent": "gm4_relocators:item/relocator_base", + "textures": { + "outer": "gm4_relocators:item/relocator_outer", + "core": "gm4_relocators:item/relocator_core" + } +} diff --git a/gm4_relocators/assets/gm4_relocators/models/item/relocator_full.json b/gm4_relocators/assets/gm4_relocators/models/item/relocator_full.json new file mode 100644 index 0000000000..4cd726de81 --- /dev/null +++ b/gm4_relocators/assets/gm4_relocators/models/item/relocator_full.json @@ -0,0 +1,7 @@ +{ + "parent": "gm4_relocators:item/relocator_base", + "textures": { + "outer": "gm4_relocators:item/relocator_outer", + "core": "gm4_relocators:item/relocator_core_full" + } +} diff --git a/gm4_relocators/assets/gm4_relocators/textures/item/relocator_core.png b/gm4_relocators/assets/gm4_relocators/textures/item/relocator_core.png new file mode 100644 index 0000000000..bd3022cd0a Binary files /dev/null and b/gm4_relocators/assets/gm4_relocators/textures/item/relocator_core.png differ diff --git a/gm4_relocators/assets/gm4_relocators/textures/item/relocator_core_full.png b/gm4_relocators/assets/gm4_relocators/textures/item/relocator_core_full.png new file mode 100644 index 0000000000..d1956231fb Binary files /dev/null and b/gm4_relocators/assets/gm4_relocators/textures/item/relocator_core_full.png differ diff --git a/gm4_relocators/assets/gm4_relocators/textures/item/relocator_outer.png b/gm4_relocators/assets/gm4_relocators/textures/item/relocator_outer.png new file mode 100644 index 0000000000..e606e12826 Binary files /dev/null and b/gm4_relocators/assets/gm4_relocators/textures/item/relocator_outer.png differ diff --git a/gm4_relocators/assets/translations.csv b/gm4_relocators/assets/translations.csv new file mode 100644 index 0000000000..0cd2ea0129 --- /dev/null +++ b/gm4_relocators/assets/translations.csv @@ -0,0 +1,10 @@ +key,en_us +item.gm4.relocator,Relocator +advancement.gm4.relocators.title,It's Moving Day! +advancement.gm4.relocators.description,Pick up a container with the relocator +text.gm4.guidebook.module_desc.relocators,Craft Relocators to pick up and move containers such as chests and Custom Crafters. +text.gm4.guidebook.relocators.description,Relocators can be used to move machine blocks. They can be crafted in a Custom Crafter with end game materials. +text.gm4.guidebook.relocators.crafting,Relocators can be crafted with the following recipe: +text.gm4.guidebook.relocators.crafting_with_silk_page,A silk touch page can be used instead of a book. +text.gm4.guidebook.relocators.usage_pick_up,"Placing an empty relocator on a container will pick up it up, along with all of its contents.\n\nMachines such as custom crafters can also be picked up with no loss of items." +text.gm4.guidebook.relocators.usage_place_down,Placing a filled relocator on the ground will empty the relocator and place the block there.\n\nThe empty relocator will be returned. diff --git a/gm4_relocators/beet.yaml b/gm4_relocators/beet.yaml index aad5e46ecb..6c9bfd2727 100644 --- a/gm4_relocators/beet.yaml +++ b/gm4_relocators/beet.yaml @@ -5,6 +5,9 @@ version: 2.2.X data_pack: load: . +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module - gm4.plugins.include.lib_machines @@ -16,6 +19,16 @@ meta: required: lib_machines: 1.1.0 lib_custom_crafters: 3.0.0 + model_data: + - item: player_head + reference: item/relocator_empty + - item: player_head + reference: item/relocator_full + - item: player_head + reference: gui/advancement/relocators + template: + name: advancement + forward: item/relocator_empty website: description: Craft Relocators to pick up and move containers such as chests and Custom Crafters. recommended: @@ -37,4 +50,4 @@ meta: Icon Design: - Hozz Textures By: - - kyrkis + - Kyrius diff --git a/gm4_relocators/data/gm4/advancements/relocators.json b/gm4_relocators/data/gm4/advancements/relocators.json index 984ebda6b7..ea01daebef 100644 --- a/gm4_relocators/data/gm4/advancements/relocators.json +++ b/gm4_relocators/data/gm4/advancements/relocators.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:player_head", - "nbt": "{CustomModelData:3420037,SkullOwner:\"$gm4_relocators:relocator_empty\"}" + "nbt": "{CustomModelData:'gui/advancement/relocators',SkullOwner:\"$gm4_relocators:relocator_empty\"}" }, "title": { "translate": "advancement.gm4.relocators.title", diff --git a/gm4_relocators/data/gm4_custom_crafters/functions/relocate/place_down.mcfunction b/gm4_relocators/data/gm4_custom_crafters/functions/relocate/place_down.mcfunction index ea8f229e12..89838cfc8c 100644 --- a/gm4_relocators/data/gm4_custom_crafters/functions/relocate/place_down.mcfunction +++ b/gm4_relocators/data/gm4_custom_crafters/functions/relocate/place_down.mcfunction @@ -8,4 +8,4 @@ execute if block ~ ~ ~ command_block[facing=north] run setblock ~ ~ ~ dropper[fa execute if block ~ ~ ~ command_block[facing=down] run setblock ~ ~ ~ dropper[facing=up] data merge block ~ ~ ~ {CustomName:'{"translate":"block.gm4.custom_crafter","fallback":"Custom Crafter"}'} -summon armor_stand ~ ~-.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,DisabledSlots:2039552,Tags:["gm4_no_edit","gm4_custom_crafter"],HasVisualFire:1,CustomName:'"gm4_custom_crafter"',ArmorItems:[{},{},{},{id:"crafting_table",Count:1,tag:{CustomModelData:3420001}}]} +summon armor_stand ~ ~-.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,DisabledSlots:2039552,Tags:["gm4_no_edit","gm4_custom_crafter"],HasVisualFire:1,CustomName:'"gm4_custom_crafter"',ArmorItems:[{},{},{},{id:"crafting_table",Count:1,tag:{CustomModelData:"gm4_custom_crafters:block/custom_crafter"}}]} diff --git a/gm4_relocators/data/gm4_relocators/functions/custom_crafter_relocating/set_pick_up_data.mcfunction b/gm4_relocators/data/gm4_relocators/functions/custom_crafter_relocating/set_pick_up_data.mcfunction index a2ce491f49..c7f97f9bb6 100644 --- a/gm4_relocators/data/gm4_relocators/functions/custom_crafter_relocating/set_pick_up_data.mcfunction +++ b/gm4_relocators/data/gm4_relocators/functions/custom_crafter_relocating/set_pick_up_data.mcfunction @@ -5,8 +5,8 @@ data modify storage gm4_relocators:temp merge_data set value {custom_block:"gm4_custom_crafter",lore:'{"translate":"block.gm4.custom_crafter","fallback":"Custom Crafter","color":"gray","italic":true}'} data modify storage gm4_relocators:temp merge_data.entity_data.Rotation set from entity @s Rotation -data modify storage gm4_relocators:temp merge_data.entity_data.ArmorItems set from entity @e[type=armor_stand,tag=gm4_custom_crafter_stand,distance=..0.5,limit=1] ArmorItems +data modify storage gm4_relocators:temp merge_data.entity_data.item set from entity @e[type=item_display,tag=gm4_custom_crafter_display,distance=..0.5,limit=1] item -execute at @s positioned ~ ~-0.4 ~ run kill @e[type=armor_stand,tag=gm4_custom_crafter_stand,limit=1,distance=..0.01] +execute at @s positioned ~ ~0.5 ~ run kill @e[type=item_display,tag=gm4_custom_crafter_display,limit=1,distance=..0.01] kill @s scoreboard players set $found_marker gm4_rl_data 1 diff --git a/gm4_relocators/data/gm4_relocators/functions/custom_crafter_relocating/summon_block_markers.mcfunction b/gm4_relocators/data/gm4_relocators/functions/custom_crafter_relocating/summon_block_markers.mcfunction index c33023233a..0c976dfcc5 100644 --- a/gm4_relocators/data/gm4_relocators/functions/custom_crafter_relocating/summon_block_markers.mcfunction +++ b/gm4_relocators/data/gm4_relocators/functions/custom_crafter_relocating/summon_block_markers.mcfunction @@ -5,11 +5,12 @@ scoreboard players set $placed_block gm4_rl_data 1 -summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_custom_crafter_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_custom_crafter_stand"',ArmorItems:[{},{},{},{id:"crafting_table",Count:1,tag:{CustomModelData:3420001}}],Rotation:[0.0f,0.0f]} +# summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_custom_crafter_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_custom_crafter_stand"',ArmorItems:[{},{},{},{id:"crafting_table",Count:1,tag:{CustomModelData:3420001}}],Rotation:[0.0f,0.0f]} +summon item_display ~ ~0.5 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_display","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_display"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:"gm4_custom_crafters:block/custom_crafter"}},item_display:head,brightness:{sky:15,block:15},Rotation:[180.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} summon marker ~ ~ ~ {Tags:["gm4_custom_crafter","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter"',Rotation:[0.0f,0.0f]} execute as @e[tag=gm4_new_machine,distance=..2] run data modify entity @s Rotation set from storage gm4_relocators:temp gm4_relocation.entity_data.Rotation 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 ArmorItems set from storage gm4_relocators:temp gm4_relocation.entity_data.ArmorItems -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 item set from storage gm4_relocators:temp gm4_relocation.entity_data.item +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_relocators/data/gm4_relocators/guidebook/relocators.json b/gm4_relocators/data/gm4_relocators/guidebook/relocators.json index 0efde35b80..afd07a8b45 100644 --- a/gm4_relocators/data/gm4_relocators/guidebook/relocators.json +++ b/gm4_relocators/data/gm4_relocators/guidebook/relocators.json @@ -3,8 +3,7 @@ "name": "Relocators", "module_type": "module", "icon": { - "item": "minecraft:shulker_box", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:shulker_box" }, "criteria": { "open_custom_crafter": { diff --git a/gm4_relocators/data/gm4_relocators/loot_tables/items/relocator_empty.json b/gm4_relocators/data/gm4_relocators/loot_tables/items/relocator_empty.json index 74d5071664..f74117e1aa 100644 --- a/gm4_relocators/data/gm4_relocators/loot_tables/items/relocator_empty.json +++ b/gm4_relocators/data/gm4_relocators/loot_tables/items/relocator_empty.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420027,gm4_machines:{id:\"relocator_empty\"},SkullOwner:{Name:\"gm4_relocator_empty\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$relocator_empty\"}]}}}" + "tag": "{CustomModelData:'item/relocator_empty',gm4_machines:{id:\"relocator_empty\"},SkullOwner:{Name:\"gm4_relocator_empty\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$relocator_empty\"}]}}}" }, { "function": "set_name", diff --git a/gm4_relocators/data/gm4_relocators/loot_tables/items/relocator_full.json b/gm4_relocators/data/gm4_relocators/loot_tables/items/relocator_full.json index 29fd1e16b5..1fb9a9d73f 100644 --- a/gm4_relocators/data/gm4_relocators/loot_tables/items/relocator_full.json +++ b/gm4_relocators/data/gm4_relocators/loot_tables/items/relocator_full.json @@ -10,7 +10,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420061,gm4_machines:{id:\"relocator_full\"},SkullOwner:{Name:\"gm4_relocator_full\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$relocator_full\"}]}}}" + "tag": "{CustomModelData:'item/relocator_full',gm4_machines:{id:\"relocator_full\"},SkullOwner:{Name:\"gm4_relocator_full\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$relocator_full\"}]}}}" }, { "function": "minecraft:set_name", diff --git a/gm4_relocators/overlay_26/data/gm4_relocators/guidebook/relocators.json b/gm4_relocators/overlay_26/data/gm4_relocators/guidebook/relocators.json index 10a2344f84..5498c78bad 100644 --- a/gm4_relocators/overlay_26/data/gm4_relocators/guidebook/relocators.json +++ b/gm4_relocators/overlay_26/data/gm4_relocators/guidebook/relocators.json @@ -3,8 +3,7 @@ "name": "Relocators", "module_type": "module", "icon": { - "item": "minecraft:shulker_box", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:shulker_box" }, "criteria": { "open_custom_crafter": { diff --git a/gm4_rope_ladders/beet.yaml b/gm4_rope_ladders/beet.yaml index 527c545c31..10c7eb67d9 100644 --- a/gm4_rope_ladders/beet.yaml +++ b/gm4_rope_ladders/beet.yaml @@ -14,6 +14,10 @@ meta: schedule_loops: - main - tick + model_data: + - item: ladder + reference: gui/advancement/rope_ladders + template: advancement website: description: Climbing downward has never been easier! recommended: [] diff --git a/gm4_rope_ladders/data/gm4/advancements/rope_ladders.json b/gm4_rope_ladders/data/gm4/advancements/rope_ladders.json index 827aca2e8f..3ace5dc324 100644 --- a/gm4_rope_ladders/data/gm4/advancements/rope_ladders.json +++ b/gm4_rope_ladders/data/gm4/advancements/rope_ladders.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "ladder", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/rope_ladders'}" }, "title": { "translate": "advancement.gm4.rope_ladders.title", diff --git a/gm4_rope_ladders/data/gm4_rope_ladders/guidebook/rope_ladders.json b/gm4_rope_ladders/data/gm4_rope_ladders/guidebook/rope_ladders.json index 4250ca06bb..287fb9f23b 100644 --- a/gm4_rope_ladders/data/gm4_rope_ladders/guidebook/rope_ladders.json +++ b/gm4_rope_ladders/data/gm4_rope_ladders/guidebook/rope_ladders.json @@ -3,8 +3,7 @@ "name": "Rope Ladders", "module_type": "module", "icon": { - "item": "minecraft:ladder", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:ladder" }, "criteria": { "place_ladder": { diff --git a/gm4_rope_ladders/translations.csv b/gm4_rope_ladders/translations.csv new file mode 100644 index 0000000000..6a503f8ef9 --- /dev/null +++ b/gm4_rope_ladders/translations.csv @@ -0,0 +1,7 @@ +key,en_us +advancement.gm4.rope_ladders.title,How's It Hanging? +advancement.gm4.rope_ladders.description,Place a Rope Ladder +text.gm4.guidebook.module_desc.rope_ladders,Climbing downward has never been easier! +text.gm4.guidebook.rope_ladders.description,Ladders can be placed on other ladders to extend the ladder downward. +text.gm4.guidebook.rope_ladders.extend_downwards,Looking at a ladder while holding ladders will cause particles to appear. Placing ladders on this particle will extend the ladder downwards.\n\nRope ladders will break if there are no other ladders above them. +text.gm4.guidebook.potion_swords.breaking,"Breaking a ladder at the top of a rope ladder will break all other rope ladders below, causing the items to appear at the top of the ladder that was broken." diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/optifine/cit/flippers.properties b/gm4_scuba_gear/assets/gm4_scuba_gear/optifine/cit/flippers.properties new file mode 100644 index 0000000000..78ace69e25 --- /dev/null +++ b/gm4_scuba_gear/assets/gm4_scuba_gear/optifine/cit/flippers.properties @@ -0,0 +1,5 @@ +type=armor +matchItems=leather_boots +texture.leather_layer_1=flippers_layer_1 +texture.leather_layer_1_overlay=flippers_layer_1_overlay +nbt.CustomModelData=$item/flippers diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/optifine/cit/flippers_layer_1.png b/gm4_scuba_gear/assets/gm4_scuba_gear/optifine/cit/flippers_layer_1.png new file mode 100644 index 0000000000..af5d704a38 Binary files /dev/null and b/gm4_scuba_gear/assets/gm4_scuba_gear/optifine/cit/flippers_layer_1.png differ diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/optifine/cit/flippers_layer_1_overlay.png b/gm4_scuba_gear/assets/gm4_scuba_gear/optifine/cit/flippers_layer_1_overlay.png new file mode 100644 index 0000000000..74a59f809b Binary files /dev/null and b/gm4_scuba_gear/assets/gm4_scuba_gear/optifine/cit/flippers_layer_1_overlay.png differ diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/optifine/cit/scuba_tank.properties b/gm4_scuba_gear/assets/gm4_scuba_gear/optifine/cit/scuba_tank.properties new file mode 100644 index 0000000000..95df21c39c --- /dev/null +++ b/gm4_scuba_gear/assets/gm4_scuba_gear/optifine/cit/scuba_tank.properties @@ -0,0 +1,4 @@ +type=armor +matchItems=golden_chestplate +texture.gold_layer_1=scuba_tank_layer_1 +nbt.CustomModelData=$item/scuba_tank diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/optifine/cit/scuba_tank_layer_1.png b/gm4_scuba_gear/assets/gm4_scuba_gear/optifine/cit/scuba_tank_layer_1.png new file mode 100644 index 0000000000..24af20361e Binary files /dev/null and b/gm4_scuba_gear/assets/gm4_scuba_gear/optifine/cit/scuba_tank_layer_1.png differ diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/flippers.png b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/flippers.png new file mode 100644 index 0000000000..77b97ce6d9 Binary files /dev/null and b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/flippers.png differ diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/flippers_overlay.png b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/flippers_overlay.png new file mode 100644 index 0000000000..8fca7781bb Binary files /dev/null and b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/flippers_overlay.png differ diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/scuba_helmet.png b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/scuba_helmet.png new file mode 100644 index 0000000000..1fd07b8c6b Binary files /dev/null and b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/scuba_helmet.png differ diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/scuba_tank.png b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/scuba_tank.png new file mode 100644 index 0000000000..3df3e0af3f Binary files /dev/null and b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/scuba_tank.png differ diff --git a/gm4_scuba_gear/assets/translations.csv b/gm4_scuba_gear/assets/translations.csv new file mode 100644 index 0000000000..4a1251fbe6 --- /dev/null +++ b/gm4_scuba_gear/assets/translations.csv @@ -0,0 +1,14 @@ +key,en_us +item.gm4.flippers,Flippers +item.gm4.scuba_helmet,SCUBA Helmet +item.gm4.scuba_tank,SCUBA Tank +advancement.gm4.scuba_gear.title,Things Are Going Swimmingly! +advancement.gm4.scuba_gear.description,Suit up with a full set of SCUBA gear +text.gm4.guidebook.module_desc.scuba_gear,Ease ocean exploration with craftable scuba gear! +text.gm4.guidebook.scuba_gear.description,SCUBA Gear can be crafted in a Custom Crafter to aid in ocean travel.\n\nScutes and gold are main components for each piece. +text.gm4.guidebook.scuba_gear.crafting_flippers,Flippers can be crafted with the following recipe: +text.gm4.guidebook.scuba_gear.crafting_scuba_helmet,The SCUBA Helmet can be crafted with the following recipe: +text.gm4.guidebook.scuba_gear.crafting_scuba_tank,The SCUBA Tank can be crafted with the following recipe: +text.gm4.guidebook.scuba_gear.scuba_tank_extended,"An extended water breathing potion can be used to craft the tank, but it won't provide any extra benefits.\n\nA SCUBA tank and helmet must be used in conjunction." +text.gm4.guidebook.scuba_gear.usage_flippers,"Flippers allow the user to swim much faster, but land traversal is greatly slowed." +text.gm4.guidebook.scuba_gear.usage_scuba_tank,Wearing both the scuba tank and helmet will grant 4 minutes of Conduit Power when underwater. diff --git a/gm4_scuba_gear/beet.yaml b/gm4_scuba_gear/beet.yaml index 861604e8eb..bb31f40579 100644 --- a/gm4_scuba_gear/beet.yaml +++ b/gm4_scuba_gear/beet.yaml @@ -5,6 +5,9 @@ version: 1.3.X data_pack: load: . +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module - gm4.plugins.include.lib_player_heads @@ -31,3 +34,18 @@ meta: - BluePsychoRanger Icon Design: - DuckJr + model_data: + - item: leather_boots + reference: item/flippers + template: generated_overlay + - item: golden_chestplate + reference: item/scuba_tank + template: generated + - item: player_head + reference: item/scuba_helmet + template: generated + - item: player_head + reference: gui/advancement/scuba_gear + template: + name: advancement + forward: item/scuba_helmet diff --git a/gm4_scuba_gear/data/gm4/advancements/scuba_gear.json b/gm4_scuba_gear/data/gm4/advancements/scuba_gear.json index 313b836bfd..3b89b4b57b 100644 --- a/gm4_scuba_gear/data/gm4/advancements/scuba_gear.json +++ b/gm4_scuba_gear/data/gm4/advancements/scuba_gear.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:player_head", - "nbt": "{CustomModelData:3420048,SkullOwner:\"$scuba_helmet\"}" + "nbt": "{CustomModelData:'gui/advancement/scuba_gear',SkullOwner:\"$scuba_helmet\"}" }, "title": { "translate": "advancement.gm4.scuba_gear.title", diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/functions/init.mcfunction b/gm4_scuba_gear/data/gm4_scuba_gear/functions/init.mcfunction index 5dfbe0436f..9287d9fa28 100644 --- a/gm4_scuba_gear/data/gm4_scuba_gear/functions/init.mcfunction +++ b/gm4_scuba_gear/data/gm4_scuba_gear/functions/init.mcfunction @@ -3,8 +3,8 @@ scoreboard objectives add gm4_sg_swim minecraft.custom:minecraft.swim_one_cm # This module includes the gm4_player_heads library. If you didn't get this pack from our website, make sure you have the gm4_player_heads library installed! # register skulls -execute unless data storage gm4_player_heads:register heads[{id:"gm4_scuba_gear:scuba_helmet/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_scuba_gear:scuba_helmet/v0",value:'eyJ0aW1lc3RhbXAiOjE1NDMxNjc2MjM1NzMsInByb2ZpbGVJZCI6IjVjN2ZiNzhhMmQxMzQ5NTZhNWE1M2EyNGQ5NWY1YjRmIiwicHJvZmlsZU5hbWUiOiJQZWFyc29uSW5tYW4iLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzc1OWY1NmU3MDc4NDkzYzEzMDZlZWI2YmQxM2UwYmQ1NTZlYjAxOGUzZGRjMDAzMGE1NzFhYjg4YzRjZGNlNGUifX19',item:{CustomModelData:3420009,gm4_scuba_gear:{item:"helmet"},display:{Name:'{"italic":false,"color":"white","translate":"item.gm4.scuba_helmet","fallback":"SCUBA Helmet"}'},AttributeModifiers:[{AttributeName:"generic.armor",Name:"generic.armor",Amount:2,Operation:0,UUID:[I;0,190244,0,554768],Slot:"head"},{AttributeName:"generic.attack_speed",Name:"generic.attack_speed",Amount:-.5,Operation:0,UUID:[I;0,193195,0,454101],Slot:"head"}],SkullOwner:{Name:"[Drop to Fix Item] gm4_scuba_gear:scuba_helmet",Id:[I;-68336571,19415274,-1818733955,-1859858872],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODUzNDg1MTY2MCwKICAicHJvZmlsZUlkIiA6ICJmMGIzYmRkMjEwNDg0Y2VlYjZhNTQyYmZiOGEyNTdiMiIsCiAgInByb2ZpbGVOYW1lIiA6ICJBbm9uaW1ZVFQiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDExZTAyOTJlZTgzZDUwZTQzM2MxNTkxNzE5OGZhNDRjYjZkMTMyODhiNmFhNjZmYmUzY2QxZTZkZjY1OGRhNCIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9"}]}}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_scuba_gear:scuba_helmet/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_scuba_gear:scuba_helmet/v1",name:"[Drop to Fix Item] gm4_scuba_gear:scuba_helmet",value:'ewogICJ0aW1lc3RhbXAiIDogMTYyODUzNDg1MTY2MCwKICAicHJvZmlsZUlkIiA6ICJmMGIzYmRkMjEwNDg0Y2VlYjZhNTQyYmZiOGEyNTdiMiIsCiAgInByb2ZpbGVOYW1lIiA6ICJBbm9uaW1ZVFQiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDExZTAyOTJlZTgzZDUwZTQzM2MxNTkxNzE5OGZhNDRjYjZkMTMyODhiNmFhNjZmYmUzY2QxZTZkZjY1OGRhNCIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9',item:{CustomModelData:3420009,gm4_scuba_gear:{item:"helmet"},display:{Name:'{"italic":false,"color":"white","translate":"item.gm4.scuba_helmet","fallback":"SCUBA Helmet"}'},AttributeModifiers:[{AttributeName:"generic.armor",Name:"generic.armor",Amount:2,Operation:0,UUID:[I;0,190244,0,554768],Slot:"head"},{AttributeName:"generic.attack_speed",Name:"generic.attack_speed",Amount:-.5,Operation:0,UUID:[I;0,193195,0,454101],Slot:"head"}]}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_scuba_gear:scuba_helmet/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_scuba_gear:scuba_helmet/v0",value:'eyJ0aW1lc3RhbXAiOjE1NDMxNjc2MjM1NzMsInByb2ZpbGVJZCI6IjVjN2ZiNzhhMmQxMzQ5NTZhNWE1M2EyNGQ5NWY1YjRmIiwicHJvZmlsZU5hbWUiOiJQZWFyc29uSW5tYW4iLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzc1OWY1NmU3MDc4NDkzYzEzMDZlZWI2YmQxM2UwYmQ1NTZlYjAxOGUzZGRjMDAzMGE1NzFhYjg4YzRjZGNlNGUifX19',item:{CustomModelData:"item/scuba_helmet",gm4_scuba_gear:{item:"helmet"},display:{Name:'{"italic":false,"color":"white","translate":"item.gm4.scuba_helmet","fallback":"SCUBA Helmet"}'},AttributeModifiers:[{AttributeName:"generic.armor",Name:"generic.armor",Amount:2,Operation:0,UUID:[I;0,190244,0,554768],Slot:"head"},{AttributeName:"generic.attack_speed",Name:"generic.attack_speed",Amount:-.5,Operation:0,UUID:[I;0,193195,0,454101],Slot:"head"}],SkullOwner:{Name:"[Drop to Fix Item] gm4_scuba_gear:scuba_helmet",Id:[I;-68336571,19415274,-1818733955,-1859858872],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODUzNDg1MTY2MCwKICAicHJvZmlsZUlkIiA6ICJmMGIzYmRkMjEwNDg0Y2VlYjZhNTQyYmZiOGEyNTdiMiIsCiAgInByb2ZpbGVOYW1lIiA6ICJBbm9uaW1ZVFQiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDExZTAyOTJlZTgzZDUwZTQzM2MxNTkxNzE5OGZhNDRjYjZkMTMyODhiNmFhNjZmYmUzY2QxZTZkZjY1OGRhNCIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9"}]}}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_scuba_gear:scuba_helmet/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_scuba_gear:scuba_helmet/v1",name:"[Drop to Fix Item] gm4_scuba_gear:scuba_helmet",value:'ewogICJ0aW1lc3RhbXAiIDogMTYyODUzNDg1MTY2MCwKICAicHJvZmlsZUlkIiA6ICJmMGIzYmRkMjEwNDg0Y2VlYjZhNTQyYmZiOGEyNTdiMiIsCiAgInByb2ZpbGVOYW1lIiA6ICJBbm9uaW1ZVFQiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDExZTAyOTJlZTgzZDUwZTQzM2MxNTkxNzE5OGZhNDRjYjZkMTMyODhiNmFhNjZmYmUzY2QxZTZkZjY1OGRhNCIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9',item:{CustomModelData:"item/scuba_helmet",gm4_scuba_gear:{item:"helmet"},display:{Name:'{"italic":false,"color":"white","translate":"item.gm4.scuba_helmet","fallback":"SCUBA Helmet"}'},AttributeModifiers:[{AttributeName:"generic.armor",Name:"generic.armor",Amount:2,Operation:0,UUID:[I;0,190244,0,554768],Slot:"head"},{AttributeName:"generic.attack_speed",Name:"generic.attack_speed",Amount:-.5,Operation:0,UUID:[I;0,193195,0,454101],Slot:"head"}]}} execute unless score scuba_gear gm4_modules matches 1 run data modify storage gm4:log queue append value {type:"install",module:"Scuba Gear"} execute unless score scuba_gear gm4_earliest_version < scuba_gear gm4_modules run scoreboard players operation scuba_gear gm4_earliest_version = scuba_gear gm4_modules diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/guidebook/scuba_gear.json b/gm4_scuba_gear/data/gm4_scuba_gear/guidebook/scuba_gear.json index e8d0d8137a..3a0cdead4f 100644 --- a/gm4_scuba_gear/data/gm4_scuba_gear/guidebook/scuba_gear.json +++ b/gm4_scuba_gear/data/gm4_scuba_gear/guidebook/scuba_gear.json @@ -3,8 +3,7 @@ "name": "SCUBA Gear", "module_type": "module", "icon": { - "item": "minecraft:horn_coral", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:horn_coral" }, "criteria": { "obtain_scute": { diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/loot_tables/items/flippers.json b/gm4_scuba_gear/data/gm4_scuba_gear/loot_tables/items/flippers.json index f6129c713d..fe8f2e422e 100644 --- a/gm4_scuba_gear/data/gm4_scuba_gear/loot_tables/items/flippers.json +++ b/gm4_scuba_gear/data/gm4_scuba_gear/loot_tables/items/flippers.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{HideFlags:64,CustomModelData:3420002,gm4_scuba_gear:{item:\"flippers\"},display:{color:11009871},AttributeModifiers:[{AttributeName:\"generic.armor\",Name:\"generic.armor\",Amount:1,Operation:0,UUID:[I;0,881952,0,167143],Slot:\"feet\"},{AttributeName:\"generic.movement_speed\",Name:\"generic.movement_speed\",Amount:-.4,Operation:1,UUID:[I;0,579389,0,942428],Slot:\"feet\"}]}" + "tag": "{HideFlags:64,CustomModelData:'item/flippers',gm4_scuba_gear:{item:\"flippers\"},display:{color:11009871},AttributeModifiers:[{AttributeName:\"generic.armor\",Name:\"generic.armor\",Amount:1,Operation:0,UUID:[I;0,881952,0,167143],Slot:\"feet\"},{AttributeName:\"generic.movement_speed\",Name:\"generic.movement_speed\",Amount:-.4,Operation:1,UUID:[I;0,579389,0,942428],Slot:\"feet\"}]}" }, { "function": "minecraft:set_name", diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/loot_tables/items/scuba_helmet.json b/gm4_scuba_gear/data/gm4_scuba_gear/loot_tables/items/scuba_helmet.json index e8e8b88e2d..8493128e84 100644 --- a/gm4_scuba_gear/data/gm4_scuba_gear/loot_tables/items/scuba_helmet.json +++ b/gm4_scuba_gear/data/gm4_scuba_gear/loot_tables/items/scuba_helmet.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420009,gm4_scuba_gear:{item:\"helmet\"},AttributeModifiers:[{AttributeName:\"generic.armor\",Name:\"generic.armor\",Amount:2,Operation:0,UUID:[I;0,190244,0,554768],Slot:\"head\"},{AttributeName:\"generic.attack_speed\",Name:\"generic.attack_speed\",Amount:-.5,Operation:0,UUID:[I;0,193195,0,454101],Slot:\"head\"}],SkullOwner:{Name:\"[Drop to Fix Item] gm4_scuba_gear:scuba_helmet\",Properties:{textures:[{Value:\"$scuba_helmet\"}]}}}" + "tag": "{CustomModelData:'item/scuba_helmet',gm4_scuba_gear:{item:\"helmet\"},AttributeModifiers:[{AttributeName:\"generic.armor\",Name:\"generic.armor\",Amount:2,Operation:0,UUID:[I;0,190244,0,554768],Slot:\"head\"},{AttributeName:\"generic.attack_speed\",Name:\"generic.attack_speed\",Amount:-.5,Operation:0,UUID:[I;0,193195,0,454101],Slot:\"head\"}],SkullOwner:{Name:\"[Drop to Fix Item] gm4_scuba_gear:scuba_helmet\",Properties:{textures:[{Value:\"$scuba_helmet\"}]}}}" }, { "function": "minecraft:set_name", diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/loot_tables/items/scuba_tank.json b/gm4_scuba_gear/data/gm4_scuba_gear/loot_tables/items/scuba_tank.json index b3cea59ea1..a2b423b97c 100644 --- a/gm4_scuba_gear/data/gm4_scuba_gear/loot_tables/items/scuba_tank.json +++ b/gm4_scuba_gear/data/gm4_scuba_gear/loot_tables/items/scuba_tank.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_scuba_gear:{item:\"tank\"},AttributeModifiers:[{AttributeName:\"generic.movement_speed\",Name:\"generic.movement_speed\",Amount:-.1,Operation:1,UUID:[I;0,911382,0,189444],Slot:\"chest\"},{AttributeName:\"generic.armor\",Name:\"generic.armor\",Amount:4,Operation:0,UUID:[I;0,847530,0,778609],Slot:\"chest\"}]}" + "tag": "{CustomModelData:'item/scuba_tank',gm4_scuba_gear:{item:\"tank\"},AttributeModifiers:[{AttributeName:\"generic.movement_speed\",Name:\"generic.movement_speed\",Amount:-.1,Operation:1,UUID:[I;0,911382,0,189444],Slot:\"chest\"},{AttributeName:\"generic.armor\",Name:\"generic.armor\",Amount:4,Operation:0,UUID:[I;0,847530,0,778609],Slot:\"chest\"}]}" }, { "function": "minecraft:set_name", diff --git a/gm4_shapeless_portals/data/gm4_shapeless_portals/guidebook/shapeless_portals.json b/gm4_shapeless_portals/data/gm4_shapeless_portals/guidebook/shapeless_portals.json index 0cdaba441c..344b9a1224 100644 --- a/gm4_shapeless_portals/data/gm4_shapeless_portals/guidebook/shapeless_portals.json +++ b/gm4_shapeless_portals/data/gm4_shapeless_portals/guidebook/shapeless_portals.json @@ -3,8 +3,7 @@ "name": "Shapeless Portals", "module_type": "module", "icon": { - "item": "minecraft:crying_obsidian", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:crying_obsidian" }, "criteria": { "light_portal": { diff --git a/gm4_shapeless_portals/translations.csv b/gm4_shapeless_portals/translations.csv new file mode 100644 index 0000000000..4a2696ab08 --- /dev/null +++ b/gm4_shapeless_portals/translations.csv @@ -0,0 +1,3 @@ +key,en_us +text.gm4.guidebook.module_desc.shapeless_portals,Say goodbye to your boring old rectangular portals! +text.gm4.guidebook.shapeless_portals.description,Portals can be of all shapes and sizes as long as it is an enclosed loop of obsidian.\n\nCrying obsidian also works to create a portal. diff --git a/gm4_shroomites/beet.yaml b/gm4_shroomites/beet.yaml index 89e885a6ee..beda9e2ef6 100644 --- a/gm4_shroomites/beet.yaml +++ b/gm4_shroomites/beet.yaml @@ -27,3 +27,7 @@ meta: - Bloo Icon Design: - DuckJr + model_data: + - item: red_mushroom + reference: gui/advancement/shroomites + template: advancement diff --git a/gm4_shroomites/data/gm4_shroomites/guidebook/shroomites.json b/gm4_shroomites/data/gm4_shroomites/guidebook/shroomites.json index f0cae0eea9..4a339f5478 100644 --- a/gm4_shroomites/data/gm4_shroomites/guidebook/shroomites.json +++ b/gm4_shroomites/data/gm4_shroomites/guidebook/shroomites.json @@ -3,8 +3,7 @@ "name": "Shroomites", "module_type": "module", "icon": { - "item": "minecraft:mycelium", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:mycelium" }, "criteria": { "step_on_mycelium": { diff --git a/gm4_shroomites/translations.csv b/gm4_shroomites/translations.csv new file mode 100644 index 0000000000..44a2757d90 --- /dev/null +++ b/gm4_shroomites/translations.csv @@ -0,0 +1,4 @@ +key,en_us +text.gm4.guidebook.module_desc.shroomites,Ever wondered why all the Mooshrooms are locked up on islands? This Module makes Mooshrooms spread mycelium and mushrooms wherever they go. +text.gm4.guidebook.shroomites.description,"Mooshrooms have a rare chance to spawn a shroomite mushroom.\n\nA shroomite will spawn spores that spread mycelium to nearby dirt, and convert cows to mooshrooms." +text.gm4.guidebook.shroomites.spreading,"Spores will float in the air and can produce new shroomites.\n\nBlocks with collision, water, lava, cobwebs, powdered snow, and sunflowers can block shroomite spores from spreading." diff --git a/gm4_smelteries/assets/gm4_smelteries/models/block/ore_display.json b/gm4_smelteries/assets/gm4_smelteries/models/block/ore_display.json new file mode 100644 index 0000000000..8f864938f0 --- /dev/null +++ b/gm4_smelteries/assets/gm4_smelteries/models/block/ore_display.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "from": [4, 12, 4], + "to": [12, 19, 12], + "faces": { + "north": {"uv": [0, 0, 16, 14], "texture": "#side", "cullface": "north"}, + "east": {"uv": [0, 0, 16, 14], "texture": "#side", "cullface": "east"}, + "south": {"uv": [0, 0, 16, 14], "texture": "#side", "cullface": "south"}, + "west": {"uv": [0, 0, 16, 14], "texture": "#side", "cullface": "west"}, + "up": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#top", "cullface": "up"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#top", "cullface": "down"} + } + } + ] +} diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/chorus_fruit_side.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/chorus_fruit_side.png new file mode 100644 index 0000000000..ae81c9aaaf Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/chorus_fruit_side.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/chorus_fruit_top.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/chorus_fruit_top.png new file mode 100644 index 0000000000..aff422f254 Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/chorus_fruit_top.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/copper_ore_side.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/copper_ore_side.png new file mode 100644 index 0000000000..a904356541 Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/copper_ore_side.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/copper_ore_top.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/copper_ore_top.png new file mode 100644 index 0000000000..2f975ea9a3 Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/copper_ore_top.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/deepslate_copper_ore_side.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/deepslate_copper_ore_side.png new file mode 100644 index 0000000000..df67d9ed56 Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/deepslate_copper_ore_side.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/deepslate_copper_ore_top.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/deepslate_copper_ore_top.png new file mode 100644 index 0000000000..222a1554e6 Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/deepslate_copper_ore_top.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/deepslate_gold_ore_side.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/deepslate_gold_ore_side.png new file mode 100644 index 0000000000..d80afdfe0c Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/deepslate_gold_ore_side.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/deepslate_gold_ore_top.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/deepslate_gold_ore_top.png new file mode 100644 index 0000000000..3a960e9ecf Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/deepslate_gold_ore_top.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/deepslate_iron_ore_side.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/deepslate_iron_ore_side.png new file mode 100644 index 0000000000..3ef9345e26 Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/deepslate_iron_ore_side.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/deepslate_iron_ore_top.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/deepslate_iron_ore_top.png new file mode 100644 index 0000000000..9ed2526951 Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/deepslate_iron_ore_top.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/gold_ore_side.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/gold_ore_side.png new file mode 100644 index 0000000000..f3ac273335 Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/gold_ore_side.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/gold_ore_top.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/gold_ore_top.png new file mode 100644 index 0000000000..5eb82c09c3 Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/gold_ore_top.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/iron_ore_side.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/iron_ore_side.png new file mode 100644 index 0000000000..43adf44cc7 Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/iron_ore_side.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/iron_ore_top.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/iron_ore_top.png new file mode 100644 index 0000000000..92973b6d24 Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/iron_ore_top.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/nether_gold_ore_side.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/nether_gold_ore_side.png new file mode 100644 index 0000000000..742f6dcdf0 Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/nether_gold_ore_side.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/nether_gold_ore_top.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/nether_gold_ore_top.png new file mode 100644 index 0000000000..7184298848 Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/nether_gold_ore_top.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/raw_copper_side.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/raw_copper_side.png new file mode 100644 index 0000000000..b0ab9e19b6 Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/raw_copper_side.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/raw_copper_top.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/raw_copper_top.png new file mode 100644 index 0000000000..b4fae8f431 Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/raw_copper_top.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/raw_gold_side.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/raw_gold_side.png new file mode 100644 index 0000000000..dde0322bbd Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/raw_gold_side.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/raw_gold_top.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/raw_gold_top.png new file mode 100644 index 0000000000..5a1c311d32 Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/raw_gold_top.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/raw_iron_side.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/raw_iron_side.png new file mode 100644 index 0000000000..9db7defb51 Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/raw_iron_side.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/raw_iron_top.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/raw_iron_top.png new file mode 100644 index 0000000000..737b66b71d Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/raw_iron_top.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/red_sand_side.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/red_sand_side.png new file mode 100644 index 0000000000..a464592fce Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/red_sand_side.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/red_sand_top.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/red_sand_top.png new file mode 100644 index 0000000000..c8aaaeaabb Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/red_sand_top.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/sand_side.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/sand_side.png new file mode 100644 index 0000000000..76f4581e24 Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/sand_side.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/sand_top.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/sand_top.png new file mode 100644 index 0000000000..77d809760e Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/ore_display/sand_top.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/smeltery_bottom.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/smeltery_bottom.png new file mode 100644 index 0000000000..404316c0c7 Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/smeltery_bottom.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/smeltery_front.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/smeltery_front.png new file mode 100644 index 0000000000..a52f027ab0 Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/smeltery_front.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/smeltery_front_lit.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/smeltery_front_lit.png new file mode 100644 index 0000000000..a819af2137 Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/smeltery_front_lit.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/smeltery_side.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/smeltery_side.png new file mode 100644 index 0000000000..f737fd43bc Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/smeltery_side.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/block/smeltery_top.png b/gm4_smelteries/assets/gm4_smelteries/textures/block/smeltery_top.png new file mode 100644 index 0000000000..71e8a1b9bc Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/block/smeltery_top.png differ diff --git a/gm4_smelteries/assets/gm4_smelteries/textures/gui/container/smeltery.png b/gm4_smelteries/assets/gm4_smelteries/textures/gui/container/smeltery.png new file mode 100644 index 0000000000..ab5667bc03 Binary files /dev/null and b/gm4_smelteries/assets/gm4_smelteries/textures/gui/container/smeltery.png differ diff --git a/gm4_smelteries/assets/model_data.yaml b/gm4_smelteries/assets/model_data.yaml new file mode 100644 index 0000000000..7339eedefa --- /dev/null +++ b/gm4_smelteries/assets/model_data.yaml @@ -0,0 +1,68 @@ +model_data: + - item: player_head + reference: item/smeltery + model: block/smeltery_unlit + - item: iron_block + template: block + broadcast: + - reference: block/smeltery_unlit + textures: + top: block/smeltery_top + front: block/smeltery_front + side: block/smeltery_side + bottom: block/smeltery_bottom + - reference: block/smeltery_lit + textures: + top: block/smeltery_top + front: block/smeltery_front_lit + side: block/smeltery_side + bottom: block/smeltery_bottom + transforms: + - name: item_display + origin: [0.5, 1, 0.5] + scale: [0.438, 0.438, 0.438] + translation: [0, 0.1, 0] + - item: chorus_flower + template: smelteries:ore_display + reference: block/ore_display/chorus_fruit + - item: copper_ore + template: smelteries:ore_display + reference: block/ore_display/copper_ore + - item: deepslate_copper_ore + template: smelteries:ore_display + reference: block/ore_display/deepslate_copper_ore + - item: deepslate_gold_ore + template: smelteries:ore_display + reference: block/ore_display/deepslate_gold_ore + - item: deepslate_iron_ore + template: smelteries:ore_display + reference: block/ore_display/deepslate_iron_ore + - item: gold_ore + template: smelteries:ore_display + reference: block/ore_display/gold_ore + - item: iron_ore + template: smelteries:ore_display + reference: block/ore_display/iron_ore + - item: nether_gold_ore + template: smelteries:ore_display + reference: block/ore_display/nether_gold_ore + - item: raw_copper_block + template: smelteries:ore_display + reference: block/ore_display/raw_copper + - item: raw_gold_block + template: smelteries:ore_display + reference: block/ore_display/raw_gold + - item: raw_iron_block + template: smelteries:ore_display + reference: block/ore_display/raw_iron + - item: red_sand + template: smelteries:ore_display + reference: block/ore_display/red_sand + - item: sand + template: smelteries:ore_display + reference: block/ore_display/sand + - item: furnace + reference: gui/advancement/smelteries + template: + name: advancement + forward: block/smeltery_unlit diff --git a/gm4_smelteries/assets/translations.csv b/gm4_smelteries/assets/translations.csv new file mode 100644 index 0000000000..2507962d50 --- /dev/null +++ b/gm4_smelteries/assets/translations.csv @@ -0,0 +1,11 @@ +key,en_us +block.gm4.smeltery,Smeltery +container.gm4.smeltery,Smeltery +advancement.gm4.smelteries.title,Serious Smelter +advancement.gm4.smelteries.description,Construct a Smeltery +text.gm4.guidebook.module_desc.smelteries,Build a Smeltery and double your ore output with this multi-block structure. +text.gm4.guidebook.smelteries.description,"Smelteries can refine certain furnace recipes.\n\nMetal ores, sand, and chorus fruit can be doubled with Smelteries." +text.gm4.guidebook.smelteries.crafting,A Smeltery can be crafted in a Custom Crafter: +text.gm4.guidebook.smelteries.multi_block,"The smeltery requires a multi-block structure to work.\n\nBehind the smeltery must be a cauldron. The rest of the 3x3 grid must be filled with iron blocks, then another layer of iron blocks above the first." +text.gm4.guidebook.smelteries.doubling,"Once the multi-block is set up, the smeltery will produce double the normal result.\n\nSmelting metal ores, raw metals, sand, red sand, or chorus fruit will result in doubled outputs." +text.gm4.guidebook.smelteries.lava,"When something is smelted in the smeltery there is a chance that the cauldron behind it will fill with lava.\n\nWith a continuous smelting process, it's possible to keep a smeltery fueled with the extra lava." diff --git a/gm4_smelteries/beet.yaml b/gm4_smelteries/beet.yaml index 1d87a7a9d1..eadfea1764 100644 --- a/gm4_smelteries/beet.yaml +++ b/gm4_smelteries/beet.yaml @@ -5,7 +5,11 @@ version: 1.5.X data_pack: load: . +resource_pack: + load: . + pipeline: + - gm4_smelteries.ore_display - gm4.plugins.extend.module - gm4.plugins.include.lib_machines - gm4.plugins.include.lib_custom_crafters @@ -17,6 +21,11 @@ meta: lib_custom_crafters: 3.0.0 lib_machines: 1.1.0 schedule_loops: [main] + + gui_fonts: + - translation: gui.gm4.smeltery + container: furnace + texture: gui/container/smeltery website: description: Build a Smeltery and double your ore output with this multi-block structure. recommended: @@ -34,6 +43,6 @@ meta: - SpecialBuilder32 - BluePsychoRanger Textures By: - - kyrkis + - Kyrius Icon Design: - Hozz diff --git a/gm4_smelteries/data/gm4/advancements/smelteries.json b/gm4_smelteries/data/gm4/advancements/smelteries.json index c4db243444..b3ea13eb6f 100644 --- a/gm4_smelteries/data/gm4/advancements/smelteries.json +++ b/gm4_smelteries/data/gm4/advancements/smelteries.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "furnace", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/smelteries'}" }, "title": { "translate": "advancement.gm4.smelteries.title", diff --git a/gm4_smelteries/data/gm4_smelteries/functions/furnace_lit.mcfunction b/gm4_smelteries/data/gm4_smelteries/functions/furnace_lit.mcfunction index 7b577fc54b..c4d52ce8fb 100644 --- a/gm4_smelteries/data/gm4_smelteries/functions/furnace_lit.mcfunction +++ b/gm4_smelteries/data/gm4_smelteries/functions/furnace_lit.mcfunction @@ -2,7 +2,7 @@ # @s = smeltery marker # run from process -execute unless entity @s[tag=gm4_smeltery_lit] positioned ~ ~-0.3 ~ run item replace entity @e[type=armor_stand,tag=gm4_smeltery_stand,distance=..0.1,limit=1] armor.head with iron_block{CustomModelData:3420003} +execute unless entity @s[tag=gm4_smeltery_lit] positioned ~ ~-0.3 ~ run item replace entity @e[type=armor_stand,tag=gm4_smeltery_stand,distance=..0.1,limit=1] armor.head with iron_block{CustomModelData:"block/smeltery_lit"} tag @s add gm4_smeltery_lit particle large_smoke ~ ~ ~ 0 0.3 0 0 5 normal @a diff --git a/gm4_smelteries/data/gm4_smelteries/functions/furnace_unlit.mcfunction b/gm4_smelteries/data/gm4_smelteries/functions/furnace_unlit.mcfunction index d4453838b1..04d1452916 100644 --- a/gm4_smelteries/data/gm4_smelteries/functions/furnace_unlit.mcfunction +++ b/gm4_smelteries/data/gm4_smelteries/functions/furnace_unlit.mcfunction @@ -2,6 +2,6 @@ # @s = smeltery marker # run from process -execute positioned ~ ~-0.3 ~ run item replace entity @e[type=armor_stand,tag=gm4_smeltery_stand,distance=..0.1,limit=1] armor.head with iron_block{CustomModelData:3420002} +execute positioned ~ ~-0.3 ~ run item replace entity @e[type=armor_stand,tag=gm4_smeltery_stand,distance=..0.1,limit=1] armor.head with iron_block{CustomModelData:"block/smeltery_unlit"} execute positioned ^ ^-1.5 ^-1 run item replace entity @e[type=armor_stand,tag=gm4_smeltery_cauldron,distance=..0.1,limit=1] armor.head with air tag @s remove gm4_smeltery_lit diff --git a/gm4_smelteries/data/gm4_smelteries/functions/machine/rotate/east.mcfunction b/gm4_smelteries/data/gm4_smelteries/functions/machine/rotate/east.mcfunction index 478a46c5c3..66f740c3ee 100644 --- a/gm4_smelteries/data/gm4_smelteries/functions/machine/rotate/east.mcfunction +++ b/gm4_smelteries/data/gm4_smelteries/functions/machine/rotate/east.mcfunction @@ -10,5 +10,5 @@ setblock ~ ~ ~ furnace[facing=east]{CustomName:'{"translate":"gm4.second","fallb summon armor_stand ~-1 ~-1.5 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_smeltery_cauldron","gm4_machine_display","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_smeltery_cauldron"',ArmorItems:[{},{},{},{}],Rotation:[-90.0f,0.0f]} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.3 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_smeltery_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_smeltery_stand"',ArmorItems:[{},{},{},{id:"minecraft:iron_block",Count:1b,tag:{CustomModelData:3420002}}],Rotation:[-90.0f,0.0f]} +summon armor_stand ~ ~-0.3 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_smeltery_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_smeltery_stand"',ArmorItems:[{},{},{},{id:"minecraft:iron_block",Count:1b,tag:{CustomModelData:"block/smeltery_unlit"}}],Rotation:[-90.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_smeltery","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_smeltery"',Rotation:[-90.0f,0.0f]} diff --git a/gm4_smelteries/data/gm4_smelteries/functions/machine/rotate/north.mcfunction b/gm4_smelteries/data/gm4_smelteries/functions/machine/rotate/north.mcfunction index d291e9d6a4..08c91173f3 100644 --- a/gm4_smelteries/data/gm4_smelteries/functions/machine/rotate/north.mcfunction +++ b/gm4_smelteries/data/gm4_smelteries/functions/machine/rotate/north.mcfunction @@ -10,5 +10,5 @@ setblock ~ ~ ~ furnace[facing=north]{CustomName:'{"translate":"gm4.second","fall summon armor_stand ~ ~-1.5 ~1 {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_smeltery_cauldron","gm4_machine_display","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_smeltery_cauldron"',ArmorItems:[{},{},{},{}],Rotation:[180.0f,0.0f]} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.3 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_smeltery_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_smeltery_stand"',ArmorItems:[{},{},{},{id:"minecraft:iron_block",Count:1b,tag:{CustomModelData:3420002}}],Rotation:[180.0f,0.0f]} +summon armor_stand ~ ~-0.3 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_smeltery_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_smeltery_stand"',ArmorItems:[{},{},{},{id:"minecraft:iron_block",Count:1b,tag:{CustomModelData:"block/smeltery_unlit"}}],Rotation:[180.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_smeltery","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_smeltery"',Rotation:[180.0f,0.0f]} diff --git a/gm4_smelteries/data/gm4_smelteries/functions/machine/rotate/south.mcfunction b/gm4_smelteries/data/gm4_smelteries/functions/machine/rotate/south.mcfunction index 7c4613769d..47ecc9452c 100644 --- a/gm4_smelteries/data/gm4_smelteries/functions/machine/rotate/south.mcfunction +++ b/gm4_smelteries/data/gm4_smelteries/functions/machine/rotate/south.mcfunction @@ -10,5 +10,5 @@ setblock ~ ~ ~ furnace[facing=south]{CustomName:'{"translate":"gm4.second","fall summon armor_stand ~ ~-1.5 ~-1 {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_smeltery_cauldron","gm4_machine_display","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_smeltery_cauldron"',ArmorItems:[{},{},{},{}],Rotation:[0.0f,0.0f]} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.3 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_smeltery_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_smeltery_stand"',ArmorItems:[{},{},{},{id:"minecraft:iron_block",Count:1b,tag:{CustomModelData:3420002}}],Rotation:[0.0f,0.0f]} +summon armor_stand ~ ~-0.3 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_smeltery_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_smeltery_stand"',ArmorItems:[{},{},{},{id:"minecraft:iron_block",Count:1b,tag:{CustomModelData:"block/smeltery_unlit"}}],Rotation:[0.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_smeltery","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_smeltery"',Rotation:[0.0f,0.0f]} diff --git a/gm4_smelteries/data/gm4_smelteries/functions/machine/rotate/west.mcfunction b/gm4_smelteries/data/gm4_smelteries/functions/machine/rotate/west.mcfunction index 0732a0220e..d845b9fb8a 100644 --- a/gm4_smelteries/data/gm4_smelteries/functions/machine/rotate/west.mcfunction +++ b/gm4_smelteries/data/gm4_smelteries/functions/machine/rotate/west.mcfunction @@ -10,5 +10,5 @@ setblock ~ ~ ~ furnace[facing=west]{CustomName:'{"translate":"gm4.second","fallb summon armor_stand ~1 ~-1.5 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_smeltery_cauldron","gm4_machine_display","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_smeltery_cauldron"',ArmorItems:[{},{},{},{}],Rotation:[90.0f,0.0f]} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.3 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_smeltery_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_smeltery_stand"',ArmorItems:[{},{},{},{id:"minecraft:iron_block",Count:1b,tag:{CustomModelData:3420002}}],Rotation:[90.0f,0.0f]} +summon armor_stand ~ ~-0.3 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_smeltery_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_smeltery_stand"',ArmorItems:[{},{},{},{id:"minecraft:iron_block",Count:1b,tag:{CustomModelData:"block/smeltery_unlit"}}],Rotation:[90.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_smeltery","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_smeltery"',Rotation:[90.0f,0.0f]} diff --git a/gm4_smelteries/data/gm4_smelteries/functions/relocate/summon_block_markers.mcfunction b/gm4_smelteries/data/gm4_smelteries/functions/relocate/summon_block_markers.mcfunction index 14b74cffb7..314ca40bea 100644 --- a/gm4_smelteries/data/gm4_smelteries/functions/relocate/summon_block_markers.mcfunction +++ b/gm4_smelteries/data/gm4_smelteries/functions/relocate/summon_block_markers.mcfunction @@ -5,7 +5,7 @@ scoreboard players set $placed_block gm4_rl_data 1 -summon armor_stand ~ ~-0.3 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_smeltery_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_smeltery_stand"',ArmorItems:[{},{},{},{id:"minecraft:iron_block",Count:1b,tag:{CustomModelData:3420002}}],Rotation:[180.0f,0.0f]} +summon armor_stand ~ ~-0.3 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_smeltery_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_smeltery_stand"',ArmorItems:[{},{},{},{id:"minecraft:iron_block",Count:1b,tag:{CustomModelData:"block/smeltery_unlit"}}],Rotation:[180.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_smeltery","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_smeltery"',Rotation:[180.0f,0.0f]} execute as @e[tag=gm4_new_machine,distance=..2] run data modify entity @s Rotation set from storage gm4_relocators:temp gm4_relocation.entity_data.Rotation execute as @e[type=armor_stand,tag=gm4_new_machine,distance=..2] run data modify entity @s ArmorItems set from storage gm4_relocators:temp gm4_relocation.entity_data.ArmorItems diff --git a/gm4_smelteries/data/gm4_smelteries/guidebook/smelteries.json b/gm4_smelteries/data/gm4_smelteries/guidebook/smelteries.json index b92f8dce18..15ea954205 100644 --- a/gm4_smelteries/data/gm4_smelteries/guidebook/smelteries.json +++ b/gm4_smelteries/data/gm4_smelteries/guidebook/smelteries.json @@ -3,8 +3,7 @@ "name": "Smelteries", "module_type": "module", "icon": { - "item": "minecraft:furnace", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:furnace" }, "criteria": { "open_custom_crafter": { diff --git a/gm4_smelteries/data/gm4_smelteries/loot_tables/items/smeltery.json b/gm4_smelteries/data/gm4_smelteries/loot_tables/items/smeltery.json index f070db9a15..db97601d2c 100644 --- a/gm4_smelteries/data/gm4_smelteries/loot_tables/items/smeltery.json +++ b/gm4_smelteries/data/gm4_smelteries/loot_tables/items/smeltery.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420133,gm4_machines:{id:\"smeltery\"},SkullOwner:{Name:\"gm4_smeltery\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$smeltery\"}]}}}" + "tag": "{CustomModelData:'item/smeltery',gm4_machines:{id:\"smeltery\"},SkullOwner:{Name:\"gm4_smeltery\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$smeltery\"}]}}}" }, { "function": "set_name", diff --git a/gm4_smelteries/data/gm4_smelteries/loot_tables/technical/smeltable_display.json b/gm4_smelteries/data/gm4_smelteries/loot_tables/technical/smeltable_display.json index 1d06e00872..6710dfba3b 100644 --- a/gm4_smelteries/data/gm4_smelteries/loot_tables/technical/smeltable_display.json +++ b/gm4_smelteries/data/gm4_smelteries/loot_tables/technical/smeltable_display.json @@ -13,7 +13,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001}" + "tag": "{CustomModelData:'block/ore_display/gold_ore'}" } ], "conditions": [ @@ -33,7 +33,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001}" + "tag": "{CustomModelData:'block/ore_display/nether_gold_ore'}" } ], "conditions": [ @@ -53,7 +53,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001}" + "tag": "{CustomModelData:'block/ore_display/deepslate_gold_ore'}" } ], "conditions": [ @@ -73,7 +73,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001}" + "tag": "{CustomModelData:'block/ore_display/raw_gold'}" } ], "conditions": [ @@ -93,7 +93,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420002}" + "tag": "{CustomModelData:'block/ore_display/iron_ore'}" } ], "conditions": [ @@ -113,7 +113,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001}" + "tag": "{CustomModelData:'block/ore_display/deepslate_iron_ore'}" } ], "conditions": [ @@ -133,7 +133,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001}" + "tag": "{CustomModelData:'block/ore_display/raw_iron'}" } ], "conditions": [ @@ -153,7 +153,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420002}" + "tag": "{CustomModelData:'block/ore_display/copper_ore'}" } ], "conditions": [ @@ -173,7 +173,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001}" + "tag": "{CustomModelData:'block/ore_display/deepslate_copper_ore'}" } ], "conditions": [ @@ -193,7 +193,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001}" + "tag": "{CustomModelData:'block/ore_display/raw_copper'}" } ], "conditions": [ @@ -213,7 +213,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001}" + "tag": "{CustomModelData:'block/ore_display/sand'}" } ], "conditions": [ @@ -233,7 +233,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001}" + "tag": "{CustomModelData:'block/ore_display/red_sand'}" } ], "conditions": [ @@ -253,7 +253,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001}" + "tag": "{CustomModelData:'block/ore_display/chorus_fruit'}" } ], "conditions": [ diff --git a/gm4_smelteries/ore_display.py b/gm4_smelteries/ore_display.py new file mode 100644 index 0000000000..46c63aa09e --- /dev/null +++ b/gm4_smelteries/ore_display.py @@ -0,0 +1,33 @@ +from beet import NamespaceProxy, Model, Context +from gm4.plugins.resource_pack import TemplateOptions, ModelData, ItemDisplayModel, ensure_single_model_config, ContainerGuiOptions, CenteredContainerGui + +class OreDisplayTemplate(TemplateOptions): + """setup a model template for the smeltable ores displayed by smeltries""" + name = "smelteries:ore_display" + texture_map = ["top", "side"] + + default_transforms = [ + ItemDisplayModel( + origin=[0.5, 0.5, 0.5], + scale=[0.624, 0.624, 0.624], + translation=[0, 0.19, 0] + ) + ] + + def process(self, config: ModelData, models_container: NamespaceProxy[Model]): + model_name = ensure_single_model_config(self.name, config) + reference = config.reference.split('/')[-1] + m = models_container[model_name] = Model({ + "parent": "gm4_smelteries:block/ore_display", + "textures":{ + "top": f"gm4_smelteries:block/ore_display/{reference}_top", + "side": f"gm4_smelteries:block/ore_display/{reference}_side", + } + }) + return [m] + +class FurnaceContainerGui(CenteredContainerGui, ContainerGuiOptions): + container = "furnace" + +def beet_default(ctx: Context): + pass diff --git a/gm4_smelteries/overlay_26/data/gm4_smelteries/guidebook/smelteries.json b/gm4_smelteries/overlay_26/data/gm4_smelteries/guidebook/smelteries.json index b547b67250..b131fe1ea9 100644 --- a/gm4_smelteries/overlay_26/data/gm4_smelteries/guidebook/smelteries.json +++ b/gm4_smelteries/overlay_26/data/gm4_smelteries/guidebook/smelteries.json @@ -3,8 +3,7 @@ "name": "Smelteries", "module_type": "module", "icon": { - "item": "minecraft:furnace", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:furnace" }, "criteria": { "open_custom_crafter": { diff --git a/gm4_soul_glass/assets/translations.csv b/gm4_soul_glass/assets/translations.csv new file mode 100644 index 0000000000..06975c1c1c --- /dev/null +++ b/gm4_soul_glass/assets/translations.csv @@ -0,0 +1,8 @@ +key,en_us +item.gm4.soul_glass,Soul Glass +advancement.gm4.soul_glass.title,Corruption at its Finest +advancement.gm4.soul_glass.description,Corrupt the effects of a beacon +text.gm4.guidebook.module_desc.soul_glass,"Reverse the effects of beacons with corrupting glass! But be careful, a poison Beacon may sound great at first, but is incredibly painful in pratice." +text.gm4.guidebook.soul_glass.description,"Soul Sand can be smelted in a blast furnace to get Soul Glass.\n\nWhen placed directly over a beacon, soul glass will corrupt the effects." +text.gm4.guidebook.soul_glass.usage,If soul glass is moved from its original location it will lose its properties.\n\nThe exception is moving it with a sticky piston up to one block away. +text.gm4.guidebook.soul_glass.corrupted_effects,Corrupted Effects: diff --git a/gm4_soul_glass/beet.yaml b/gm4_soul_glass/beet.yaml index ccb76bee24..7f68893aa0 100644 --- a/gm4_soul_glass/beet.yaml +++ b/gm4_soul_glass/beet.yaml @@ -17,6 +17,13 @@ meta: schedule_loops: - main - beacon_clock + model_data: + - item: brown_stained_glass + reference: item/soul_glass + template: vanilla + - item: brown_stained_glass + reference: gui/advancement/soul_glass + template: advancement website: description: Reverse the effects of beacons with corrupting glass! But be careful, a poison Beacon may sound great at first, but is incredibly painful in pratice. recommended: [] diff --git a/gm4_soul_glass/data/gm4/advancements/soul_glass.json b/gm4_soul_glass/data/gm4/advancements/soul_glass.json index 90a0aee5cd..9ce57b190f 100644 --- a/gm4_soul_glass/data/gm4/advancements/soul_glass.json +++ b/gm4_soul_glass/data/gm4/advancements/soul_glass.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "brown_stained_glass", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/soul_glass'}" }, "title": { "translate": "advancement.gm4.soul_glass.title", diff --git a/gm4_soul_glass/data/gm4_soul_glass/functions/destroy.mcfunction b/gm4_soul_glass/data/gm4_soul_glass/functions/destroy.mcfunction index 6eb08d84a9..5ed254a284 100644 --- a/gm4_soul_glass/data/gm4_soul_glass/functions/destroy.mcfunction +++ b/gm4_soul_glass/data/gm4_soul_glass/functions/destroy.mcfunction @@ -2,7 +2,7 @@ #run from process setblock ~ ~ ~ air -summon item ~ ~ ~ {Motion:[0.0,0.2,0.0],PickupDelay:10s,Item:{id:"minecraft:brown_stained_glass",Count:1b,tag:{CustomModelData:3420002,gm4_soul_glass:1b,Enchantments:[{id:"minecraft:protection",lvl:0s}],HideFlags:1,display:{Name:'{"translate":"item.gm4.soul_glass","fallback":"Soul Glass","italic":false}'}}}} +summon item ~ ~ ~ {Motion:[0.0,0.2,0.0],PickupDelay:10s,Item:{id:"minecraft:brown_stained_glass",Count:1b,tag:{CustomModelData:"item/soul_glass",gm4_soul_glass:1b,Enchantments:[{id:"minecraft:protection",lvl:0s}],HideFlags:1,display:{Name:'{"translate":"item.gm4.soul_glass","fallback":"Soul Glass","italic":false}'}}}} playsound minecraft:block.fire.extinguish block @a[distance=..10] ~ ~ ~ .4 kill @s diff --git a/gm4_soul_glass/data/gm4_soul_glass/functions/furnace/modify_output.mcfunction b/gm4_soul_glass/data/gm4_soul_glass/functions/furnace/modify_output.mcfunction index 10c3ea2649..7bdcd16ddb 100644 --- a/gm4_soul_glass/data/gm4_soul_glass/functions/furnace/modify_output.mcfunction +++ b/gm4_soul_glass/data/gm4_soul_glass/functions/furnace/modify_output.mcfunction @@ -1,5 +1,5 @@ #@s = none #run from finish_smelt -execute at @e[tag=gm4_sg_smelted] run data modify block ~ ~ ~ Items[{Slot:2b}].tag set value {CustomModelData:3420002,gm4_soul_glass:1b,Enchantments:[{id:"minecraft:protection",lvl:0s}],HideFlags:1,display:{Name:'{"translate":"item.gm4.soul_glass","fallback":"Soul Glass","italic":false}'}} +execute at @e[tag=gm4_sg_smelted] run data modify block ~ ~ ~ Items[{Slot:2b}].tag set value {CustomModelData:"item/soul_glass",gm4_soul_glass:1b,Enchantments:[{id:"minecraft:protection",lvl:0s}],HideFlags:1,display:{Name:'{"translate":"item.gm4.soul_glass","fallback":"Soul Glass","italic":false}'}} execute as @e[tag=gm4_sg_disabled] run data merge entity @s {Enabled:1b,Tags:[]} diff --git a/gm4_soul_glass/data/gm4_soul_glass/guidebook/soul_glass.json b/gm4_soul_glass/data/gm4_soul_glass/guidebook/soul_glass.json index 0b90c8226d..6751f64f34 100644 --- a/gm4_soul_glass/data/gm4_soul_glass/guidebook/soul_glass.json +++ b/gm4_soul_glass/data/gm4_soul_glass/guidebook/soul_glass.json @@ -4,7 +4,7 @@ "module_type": "module", "icon": { "item": "minecraft:brown_stained_glass", - "nbt": "{CustomModelData:3420002,Enchantments:[{id:\"minecraft:protection\",lvl:0s}]}" + "nbt": "{Enchantments:[{id:\"minecraft:protection\",lvl:0s}]}" }, "criteria": { "obtain_soul_sand": { diff --git a/gm4_soul_glass/data/gm4_soul_glass/loot_tables/items/soul_glass.json b/gm4_soul_glass/data/gm4_soul_glass/loot_tables/items/soul_glass.json index 7aa2b43712..7351fddb9c 100644 --- a/gm4_soul_glass/data/gm4_soul_glass/loot_tables/items/soul_glass.json +++ b/gm4_soul_glass/data/gm4_soul_glass/loot_tables/items/soul_glass.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420002,gm4_soul_glass:1b,Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'item/soul_glass',gm4_soul_glass:1b,Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" }, { "function": "minecraft:set_name", diff --git a/gm4_spawner_minecarts/assets/translations.csv b/gm4_spawner_minecarts/assets/translations.csv new file mode 100644 index 0000000000..9af6708a48 --- /dev/null +++ b/gm4_spawner_minecarts/assets/translations.csv @@ -0,0 +1,8 @@ +key,en_us +advancement.gm4.spawner_minecarts.title,Don't Go Breaking My Cart +advancement.gm4.spawner_minecarts.description,Capture a Monster Spawner +text.gm4.guidebook.module_desc.spawner_minecarts,Pick up Spawners and move them wherever you want with Minecarts. +text.gm4.guidebook.spawner_minecarts.description,Spawners can be picked up with Minecarts.\n\nOnce a spawner is in a minecart it cannot be ejected and requires charging to spawn mobs. +text.gm4.guidebook.spawner_minecarts.pick_up,"To capture a spawner, place a minecart under it, then a downwards piston above the spawner, and finally a redstone block above the piston." +text.gm4.guidebook.spawner_minecarts.recharging,"Spawner minecarts require charge to spawn mobs. They passively charge over time.\n\nWhen on a powered rail, it will stop spawning mobs and start actively charging by consuming flowers in a 9x9 area." +text.gm4.guidebook.spawner_minecarts.recharging_1,"Some flowers charge the spawner minecart twice as fast as others; this differs in each world.\n\nWhen a spawner minecart fully recharges, it will activate any detector rails it is on." diff --git a/gm4_spawner_minecarts/beet.yaml b/gm4_spawner_minecarts/beet.yaml index 0cfda5fa01..45242d1fda 100644 --- a/gm4_spawner_minecarts/beet.yaml +++ b/gm4_spawner_minecarts/beet.yaml @@ -12,6 +12,10 @@ meta: gm4: versioning: schedule_loops: [main] + model_data: + - item: spawner + reference: gui/advancement/spawner_minecarts + template: advancement website: description: Pick up Spawners and move them wherever you want with Minecarts. recommended: [] diff --git a/gm4_spawner_minecarts/data/gm4/advancements/spawner_minecarts.json b/gm4_spawner_minecarts/data/gm4/advancements/spawner_minecarts.json index 48a9c54e19..c818755c24 100644 --- a/gm4_spawner_minecarts/data/gm4/advancements/spawner_minecarts.json +++ b/gm4_spawner_minecarts/data/gm4/advancements/spawner_minecarts.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "spawner", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/spawner_minecarts'}" }, "title": { "translate": "advancement.gm4.spawner_minecarts.title", diff --git a/gm4_spawner_minecarts/data/gm4_spawner_minecarts/guidebook/spawner_minecarts.json b/gm4_spawner_minecarts/data/gm4_spawner_minecarts/guidebook/spawner_minecarts.json index f6027bdde3..96e37ebc76 100644 --- a/gm4_spawner_minecarts/data/gm4_spawner_minecarts/guidebook/spawner_minecarts.json +++ b/gm4_spawner_minecarts/data/gm4_spawner_minecarts/guidebook/spawner_minecarts.json @@ -3,8 +3,7 @@ "name": "Spawner Minecarts", "module_type": "module", "icon": { - "item": "minecraft:spawner", - "nbt": "{CustomModelData:3420003}" + "item": "minecraft:spawner" }, "criteria": { "obtain_piston": { diff --git a/gm4_speed_paths/data/gm4_speed_paths/guidebook/speed_paths.json b/gm4_speed_paths/data/gm4_speed_paths/guidebook/speed_paths.json index 11109d5657..0ddd1452a7 100644 --- a/gm4_speed_paths/data/gm4_speed_paths/guidebook/speed_paths.json +++ b/gm4_speed_paths/data/gm4_speed_paths/guidebook/speed_paths.json @@ -3,8 +3,7 @@ "name": "Speed Paths", "module_type": "module", "icon": { - "item": "minecraft:dirt_path", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:dirt_path" }, "criteria": { "stand_in_path": { diff --git a/gm4_speed_paths/translations.csv b/gm4_speed_paths/translations.csv new file mode 100644 index 0000000000..0333231e1a --- /dev/null +++ b/gm4_speed_paths/translations.csv @@ -0,0 +1,3 @@ +key,en_us +text.gm4.guidebook.module_desc.speed_paths,Gives you a speed effect when you walk on path blocks. +text.gm4.guidebook.speed_paths.description,Dirt paths increase movement speed by 20%.\n\nThis will stack with other speed effects such as that from beacons and potions. diff --git a/gm4_standard_crafting/data/gm4_standard_crafting/guidebook/standard_crafting.json b/gm4_standard_crafting/data/gm4_standard_crafting/guidebook/standard_crafting.json index 46793d0d6c..e68601ee3d 100644 --- a/gm4_standard_crafting/data/gm4_standard_crafting/guidebook/standard_crafting.json +++ b/gm4_standard_crafting/data/gm4_standard_crafting/guidebook/standard_crafting.json @@ -4,8 +4,7 @@ "module_type": "expansion", "base_module": "custom_crafters", "icon": { - "item": "minecraft:crafting_table", - "nbt": "{CustomModelData:3420005}" + "item": "minecraft:crafting_table" }, "criteria": { "open_custom_crafter": { diff --git a/gm4_standard_crafting/overlay_26/data/gm4_standard_crafting/guidebook/standard_crafting.json b/gm4_standard_crafting/overlay_26/data/gm4_standard_crafting/guidebook/standard_crafting.json index 28871fe712..e5d4ec8030 100644 --- a/gm4_standard_crafting/overlay_26/data/gm4_standard_crafting/guidebook/standard_crafting.json +++ b/gm4_standard_crafting/overlay_26/data/gm4_standard_crafting/guidebook/standard_crafting.json @@ -4,8 +4,7 @@ "module_type": "expansion", "base_module": "custom_crafters", "icon": { - "item": "minecraft:crafting_table", - "nbt": "{CustomModelData:3420005}" + "item": "minecraft:crafting_table" }, "criteria": { "open_custom_crafter": { diff --git a/gm4_standard_crafting/translations.csv b/gm4_standard_crafting/translations.csv new file mode 100644 index 0000000000..c5a6d5e5f6 --- /dev/null +++ b/gm4_standard_crafting/translations.csv @@ -0,0 +1,9 @@ +key,en_us +text.gm4.guidebook.module_desc.standard_crafting,A crafting recipe pack that adds some nifty new recipes to the game. +text.gm4.guidebook.standard_crafting.recipes,The custom crafter can be used to perform some simple crafting operations.\n\nThe following recipes have been added. +text.gm4.guidebook.standard_crafting.stair_decraft,Stairs can be reverted to their base block +text.gm4.guidebook.standard_crafting.slab_decraft,Slabs can be reverted to their base block +text.gm4.guidebook.standard_crafting.sandstone_decraft,Any sandstone can be converted into sand +text.gm4.guidebook.standard_crafting.red_sandstone_decraft,Any red sandstone can be converted into red sand +text.gm4.guidebook.standard_crafting.string_craft,Any wool can be ripped into string +text.gm4.guidebook.standard_crafting.horse_armor,"Diamond, iron, and golden armor can be crafted" diff --git a/gm4_sunken_treasure/assets/gm4_sunken_treasure/optifine/cit/waders.properties b/gm4_sunken_treasure/assets/gm4_sunken_treasure/optifine/cit/waders.properties new file mode 100644 index 0000000000..310991d888 --- /dev/null +++ b/gm4_sunken_treasure/assets/gm4_sunken_treasure/optifine/cit/waders.properties @@ -0,0 +1,4 @@ +type=armor +matchItems=golden_boots +texture.gold_layer_1=waders_layer_1 +nbt.CustomModelData=$item/waders diff --git a/gm4_sunken_treasure/assets/gm4_sunken_treasure/optifine/cit/waders_layer_1.png b/gm4_sunken_treasure/assets/gm4_sunken_treasure/optifine/cit/waders_layer_1.png new file mode 100644 index 0000000000..897a766895 Binary files /dev/null and b/gm4_sunken_treasure/assets/gm4_sunken_treasure/optifine/cit/waders_layer_1.png differ diff --git a/gm4_sunken_treasure/assets/gm4_sunken_treasure/textures/item/message_in_a_bottle.png b/gm4_sunken_treasure/assets/gm4_sunken_treasure/textures/item/message_in_a_bottle.png new file mode 100644 index 0000000000..926dcd411f Binary files /dev/null and b/gm4_sunken_treasure/assets/gm4_sunken_treasure/textures/item/message_in_a_bottle.png differ diff --git a/gm4_sunken_treasure/assets/gm4_sunken_treasure/textures/item/waders.png b/gm4_sunken_treasure/assets/gm4_sunken_treasure/textures/item/waders.png new file mode 100644 index 0000000000..ec3427a197 Binary files /dev/null and b/gm4_sunken_treasure/assets/gm4_sunken_treasure/textures/item/waders.png differ diff --git a/gm4_sunken_treasure/assets/translations.csv b/gm4_sunken_treasure/assets/translations.csv new file mode 100644 index 0000000000..1fef120dfa --- /dev/null +++ b/gm4_sunken_treasure/assets/translations.csv @@ -0,0 +1,88 @@ +key,en_us +advancement.gm4.sunken_treasure.description,Find all Dearest Audrey messages in a bottle +advancement.gm4.sunken_treasure.title,All My Audreys +block.gm4.treasure_chest,Treasure Chest +block.gm4.shipwreck_treasure_chest,Shipwreck Treasure Chest +block.gm4.shipwreck_supply_chest,Shipwreck Supply Chest +item.gm4.message_in_a_bottle,Message in a Bottle +item.gm4.waders,Waders +text.gm4.dearest_audrey.1,I drank all my beer +text.gm4.dearest_audrey.10.1,What's your +text.gm4.dearest_audrey.10.2,phone number; bottled messages +text.gm4.dearest_audrey.10.3,are hard to make! +text.gm4.dearest_audrey.11.1,I find myself stranded +text.gm4.dearest_audrey.11.2,on a barren island. +text.gm4.dearest_audrey.11.3,"An enderdragon took me here," +text.gm4.dearest_audrey.11.4,please rescue me. +text.gm4.dearest_audrey.12,Put the money in the bag. +text.gm4.dearest_audrey.13.1,The compass you sent me +text.gm4.dearest_audrey.13.2,"seems to only point in the direction of our love," +text.gm4.dearest_audrey.13.3,but that seems to have vanished long ago. +text.gm4.dearest_audrey.13.4,"Please, get help, even if it's the last thing you do." +text.gm4.dearest_audrey.14.1,I fear this may +text.gm4.dearest_audrey.14.2,be my last attempt at finding help. +text.gm4.dearest_audrey.14.3,I just want you to know... I always... loved... +text.gm4.dearest_audrey.14.4,your sister. +text.gm4.dearest_audrey.15.1,I've been here for 3 months +text.gm4.dearest_audrey.15.2,"and after several attempts to find food," +text.gm4.dearest_audrey.15.3,"shelter, or even enough water... I'm giving up." +text.gm4.dearest_audrey.15.4,"Tell my family I love them, but most importantly," +text.gm4.dearest_audrey.15.5,"Audrey, I love you." +text.gm4.dearest_audrey.16.1,I know exactly who +text.gm4.dearest_audrey.16.2,you are - play along. I don't have any +text.gm4.dearest_audrey.16.3,money. I burned it all trying to make a +text.gm4.dearest_audrey.16.4,fire. But I can tell you I've developed +text.gm4.dearest_audrey.16.5,a very particular set of skills. Skills +text.gm4.dearest_audrey.16.6,that'll make Bear Grylls quake in his boots. +text.gm4.dearest_audrey.17.1,I'm in the sink sand. +text.gm4.dearest_audrey.17.2,"If you find my head, hang it on the" +text.gm4.dearest_audrey.17.3,wall of fame. +text.gm4.dearest_audrey.18.1,Each day that passes +text.gm4.dearest_audrey.18.2,"is immensely terrible, painful and sad." +text.gm4.dearest_audrey.18.3,Getting away from you just didn't +text.gm4.dearest_audrey.18.4,improve anything. +text.gm4.dearest_audrey.19.1,I write this on paper +text.gm4.dearest_audrey.19.2,made from native plants and ink +text.gm4.dearest_audrey.19.3,from a squid I wrangled. I like it here. +text.gm4.dearest_audrey.19.4,I found a dungeon. I'm setting up a mob +text.gm4.dearest_audrey.19.5,grinder and never coming home. +text.gm4.dearest_audrey.2.1,My boat was +text.gm4.dearest_audrey.2.2,sunk by a lily-pad and now I'm +text.gm4.dearest_audrey.2.3,stuck on this island. +text.gm4.dearest_audrey.20.1,punching wood +text.gm4.dearest_audrey.20.2,for logs doesn't work in real life. +text.gm4.dearest_audrey.3.1,I don't know how to spell +text.gm4.dearest_audrey.3.2,"your name, nor do I know you, but I" +text.gm4.dearest_audrey.3.3,"do know that I love you, I feel like I" +text.gm4.dearest_audrey.3.4,have a mutual connection. After +text.gm4.dearest_audrey.3.5,you ordered the pizza with cheezy +text.gm4.dearest_audrey.3.6,crust and pinapple I just lost it. Oh +text.gm4.dearest_audrey.3.7,no Clair you got shot... I mean Audrey. +text.gm4.dearest_audrey.3.8,I don't mind that you're chunky +text.gm4.dearest_audrey.4.1,when I listen +text.gm4.dearest_audrey.4.2,"to the ocean, all I hear is your" +text.gm4.dearest_audrey.4.3,snoring and I can't sleep. Please +text.gm4.dearest_audrey.4.4,"silence your snoring... please, I" +text.gm4.dearest_audrey.4.5,need sleep. +text.gm4.dearest_audrey.5.1,How's your +text.gm4.dearest_audrey.5.2,"day going? I'm good, BUT I'VE" +text.gm4.dearest_audrey.5.3,BEEN STRANDED FOR 20 YEARS! +text.gm4.dearest_audrey.5.4,Thanks for your response. +text.gm4.dearest_audrey.6.1,I'm stranded +text.gm4.dearest_audrey.6.2,"in the middle of nowhere," +text.gm4.dearest_audrey.6.3,surrounded by things that +text.gm4.dearest_audrey.6.4,aren't cubic. +text.gm4.dearest_audrey.7.1,I mean Hannah... +text.gm4.dearest_audrey.7.2,"wait, no... is it Denise? ...Anyway," +text.gm4.dearest_audrey.7.3,I love you. +text.gm4.dearest_audrey.8.1,I seem to have +text.gm4.dearest_audrey.8.2,"run out of clean water, if you could" +text.gm4.dearest_audrey.8.3,return this bottle with something to +text.gm4.dearest_audrey.8.4,drink that would be wonderful. +text.gm4.dearest_audrey.9.1,I have no +text.gm4.dearest_audrey.9.2,internet so I am sending you +text.gm4.dearest_audrey.9.3,a bottle. +text.gm4.dearest_audrey.prefix,"Dearest Audrey, " +text.gm4.guidebook.module_desc.sunken_treasure,"Digging sand underwater with a fortune tool can uncover buried treasures, or a nasty surprise! Who knows, maybe you'll even find some old love letters." +text.gm4.guidebook.sunken_treasure.description,Mining sand or gravel deep underwater with a Fortune shovel has a chance of dropping treasure.\n\nMining in different biomes can result in different drops. +text.gm4.guidebook.sunken_treasure.details,"Treasure can only be found if submerged in water at least 4 blocks deep.\n\nGravel and sand contain different loot, but both contain rare treasure chests." diff --git a/gm4_sunken_treasure/beet.yaml b/gm4_sunken_treasure/beet.yaml index 85ddf19864..af9166937b 100644 --- a/gm4_sunken_treasure/beet.yaml +++ b/gm4_sunken_treasure/beet.yaml @@ -5,12 +5,33 @@ version: 1.4.X data_pack: load: . +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module meta: gm4: versioning: schedule_loops: [tick] + model_data: + - item: glass_bottle + reference: item/message_in_a_bottle + template: generated + - item: golden_boots + reference: item/waders + template: generated + - item: chest + template: vanilla + broadcast: + - reference: item/shipwreck_supply + - reference: item/shipwreck_treasure + - reference: item/treasure_chest + - item: glass_bottle + reference: gui/advancement/sunken_treasure + template: + name: advancement + forward: item/message_in_a_bottle website: description: Digging sand underwater with a fortune tool can uncover buried treasures, or a nasty surprise! Who knows, maybe you'll even find some old love letters. recommended: diff --git a/gm4_sunken_treasure/data/gm4/advancements/sunken_treasure.json b/gm4_sunken_treasure/data/gm4/advancements/sunken_treasure.json index 4b8c766959..bfce0b5bd4 100755 --- a/gm4_sunken_treasure/data/gm4/advancements/sunken_treasure.json +++ b/gm4_sunken_treasure/data/gm4/advancements/sunken_treasure.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "glass_bottle", - "nbt": "{CustomModelData:3420002}" + "nbt": "{CustomModelData:'gui/advancement/sunken_treasure'}" }, "title": { "translate": "advancement.gm4.sunken_treasure.title", diff --git a/gm4_sunken_treasure/data/gm4_sunken_treasure/guidebook/sunken_treasure.json b/gm4_sunken_treasure/data/gm4_sunken_treasure/guidebook/sunken_treasure.json index f7a95aeb49..94fc8b2120 100644 --- a/gm4_sunken_treasure/data/gm4_sunken_treasure/guidebook/sunken_treasure.json +++ b/gm4_sunken_treasure/data/gm4_sunken_treasure/guidebook/sunken_treasure.json @@ -3,8 +3,7 @@ "name": "Sunken Treasure", "module_type": "module", "icon": { - "item": "minecraft:golden_shovel", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:golden_shovel" }, "criteria": { "obtain_fortune_shovel": { diff --git a/gm4_sunken_treasure/data/gm4_sunken_treasure/loot_tables/gameplay/treasure_loot/audrey_bottle.json b/gm4_sunken_treasure/data/gm4_sunken_treasure/loot_tables/gameplay/treasure_loot/audrey_bottle.json index ef8f42a198..6c6c82f205 100644 --- a/gm4_sunken_treasure/data/gm4_sunken_treasure/loot_tables/gameplay/treasure_loot/audrey_bottle.json +++ b/gm4_sunken_treasure/data/gm4_sunken_treasure/loot_tables/gameplay/treasure_loot/audrey_bottle.json @@ -11,7 +11,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_audrey:1b}" + "tag": "{CustomModelData:'item/message_in_a_bottle',gm4_audrey:1b}" }, { "function": "minecraft:set_name", @@ -47,7 +47,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_audrey:2b}" + "tag": "{CustomModelData:'item/message_in_a_bottle',gm4_audrey:2b}" }, { "function": "minecraft:set_name", @@ -66,7 +66,7 @@ "extra": [ { "translate": "text.gm4.dearest_audrey.2.1", - "fallback": "My Boat was" + "fallback": "My boat was" } ], "color": "gray", @@ -95,7 +95,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_audrey:3b}" + "tag": "{CustomModelData:'item/message_in_a_bottle',gm4_audrey:3b}" }, { "function": "minecraft:set_name", @@ -173,7 +173,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_audrey:4b}" + "tag": "{CustomModelData:'item/message_in_a_bottle',gm4_audrey:4b}" }, { "function": "minecraft:set_name", @@ -233,7 +233,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_audrey:5b}" + "tag": "{CustomModelData:'item/message_in_a_bottle',gm4_audrey:5b}" }, { "function": "minecraft:set_name", @@ -287,7 +287,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_audrey:6b}" + "tag": "{CustomModelData:'item/message_in_a_bottle',gm4_audrey:6b}" }, { "function": "minecraft:set_name", @@ -341,7 +341,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_audrey:7b}" + "tag": "{CustomModelData:'item/message_in_a_bottle',gm4_audrey:7b}" }, { "function": "minecraft:set_name", @@ -389,7 +389,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_audrey:8b}" + "tag": "{CustomModelData:'item/message_in_a_bottle',gm4_audrey:8b}" }, { "function": "minecraft:set_name", @@ -443,7 +443,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_audrey:9b}" + "tag": "{CustomModelData:'item/message_in_a_bottle',gm4_audrey:9b}" }, { "function": "minecraft:set_name", @@ -491,7 +491,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_audrey:10b}" + "tag": "{CustomModelData:'item/message_in_a_bottle',gm4_audrey:10b}" }, { "function": "minecraft:set_name", @@ -539,7 +539,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_audrey:11b}" + "tag": "{CustomModelData:'item/message_in_a_bottle',gm4_audrey:11b}" }, { "function": "minecraft:set_name", @@ -593,7 +593,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_audrey:12b}" + "tag": "{CustomModelData:'item/message_in_a_bottle',gm4_audrey:12b}" }, { "function": "minecraft:set_name", @@ -629,7 +629,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_audrey:13b}" + "tag": "{CustomModelData:'item/message_in_a_bottle',gm4_audrey:13b}" }, { "function": "minecraft:set_name", @@ -683,7 +683,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_audrey:14b}" + "tag": "{CustomModelData:'item/message_in_a_bottle',gm4_audrey:14b}" }, { "function": "minecraft:set_name", @@ -737,7 +737,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_audrey:15b}" + "tag": "{CustomModelData:'item/message_in_a_bottle',gm4_audrey:15b}" }, { "function": "minecraft:set_name", @@ -797,7 +797,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_audrey:16b}" + "tag": "{CustomModelData:'item/message_in_a_bottle',gm4_audrey:16b}" }, { "function": "minecraft:set_name", @@ -863,7 +863,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_audrey:17b}" + "tag": "{CustomModelData:'item/message_in_a_bottle',gm4_audrey:17b}" }, { "function": "minecraft:set_name", @@ -911,7 +911,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_audrey:18b}" + "tag": "{CustomModelData:'item/message_in_a_bottle',gm4_audrey:18b}" }, { "function": "minecraft:set_name", @@ -965,7 +965,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_audrey:19b}" + "tag": "{CustomModelData:'item/message_in_a_bottle',gm4_audrey:19b}" }, { "function": "minecraft:set_name", @@ -1025,7 +1025,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_audrey:20b}" + "tag": "{CustomModelData:'item/message_in_a_bottle',gm4_audrey:20b}" }, { "function": "minecraft:set_name", diff --git a/gm4_sunken_treasure/data/gm4_sunken_treasure/loot_tables/gameplay/treasure_loot/gravel.json b/gm4_sunken_treasure/data/gm4_sunken_treasure/loot_tables/gameplay/treasure_loot/gravel.json index 45c7dbfdad..876516b20a 100644 --- a/gm4_sunken_treasure/data/gm4_sunken_treasure/loot_tables/gameplay/treasure_loot/gravel.json +++ b/gm4_sunken_treasure/data/gm4_sunken_treasure/loot_tables/gameplay/treasure_loot/gravel.json @@ -90,7 +90,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001}" + "tag": "{CustomModelData:'item/waders'}" } ] }, @@ -201,7 +201,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420004,BlockEntityTag:{LootTable:\"minecraft:chests/shipwreck_supply\"}}" + "tag": "{CustomModelData:'item/shipwreck_supply',BlockEntityTag:{LootTable:\"minecraft:chests/shipwreck_supply\"}}" }, { "function": "minecraft:set_name", @@ -220,7 +220,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420003,BlockEntityTag:{LootTable:\"minecraft:chests/shipwreck_treasure\"}}" + "tag": "{CustomModelData:'item/shipwreck_treasure',BlockEntityTag:{LootTable:\"minecraft:chests/shipwreck_treasure\"}}" }, { "function": "minecraft:set_name", @@ -239,7 +239,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,BlockEntityTag:{LootTable:\"gm4_sunken_treasure:chests/treasure_chest\"}}" + "tag": "{CustomModelData:'item/treasure_chest',BlockEntityTag:{LootTable:\"gm4_sunken_treasure:chests/treasure_chest\"}}" }, { "function": "minecraft:set_name", diff --git a/gm4_sunken_treasure/data/gm4_sunken_treasure/loot_tables/gameplay/treasure_loot/sand.json b/gm4_sunken_treasure/data/gm4_sunken_treasure/loot_tables/gameplay/treasure_loot/sand.json index ba98992b5f..ed3637262a 100644 --- a/gm4_sunken_treasure/data/gm4_sunken_treasure/loot_tables/gameplay/treasure_loot/sand.json +++ b/gm4_sunken_treasure/data/gm4_sunken_treasure/loot_tables/gameplay/treasure_loot/sand.json @@ -95,7 +95,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001}" + "tag": "{CustomModelData:'item/waders'}" } ] }, @@ -211,7 +211,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420004,BlockEntityTag:{LootTable:\"minecraft:chests/shipwreck_supply\"}}" + "tag": "{CustomModelData:'item/shipwreck_supply',BlockEntityTag:{LootTable:\"minecraft:chests/shipwreck_supply\"}}" }, { "function": "minecraft:set_name", @@ -230,7 +230,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420003,BlockEntityTag:{LootTable:\"minecraft:chests/shipwreck_treasure\"}}" + "tag": "{CustomModelData:'item/shipwreck_treasure',BlockEntityTag:{LootTable:\"minecraft:chests/shipwreck_treasure\"}}" }, { "function": "minecraft:set_name", @@ -249,7 +249,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,BlockEntityTag:{LootTable:\"gm4_sunken_treasure:chests/treasure_chest\"}}" + "tag": "{CustomModelData:'item/treasure_chest',BlockEntityTag:{LootTable:\"gm4_sunken_treasure:chests/treasure_chest\"}}" }, { "function": "minecraft:set_name", diff --git a/gm4_sweethearts/assets/translations.csv b/gm4_sweethearts/assets/translations.csv new file mode 100644 index 0000000000..297027b3bf --- /dev/null +++ b/gm4_sweethearts/assets/translations.csv @@ -0,0 +1,5 @@ +key,en_us +advancement.gm4.sweethearts.title,Selfless +advancement.gm4.sweethearts.description,Give your last heart to another +text.gm4.guidebook.module_desc.sweethearts,Transfer your health to another player using flowers. +text.gm4.guidebook.sweethearts.description,Sneaking while holding a small flower will transfer health to a nearby ally in need.\n\nAll small flowers except wither roses work. diff --git a/gm4_sweethearts/beet.yaml b/gm4_sweethearts/beet.yaml index c7284ffb49..6017d4bf5e 100644 --- a/gm4_sweethearts/beet.yaml +++ b/gm4_sweethearts/beet.yaml @@ -12,6 +12,10 @@ meta: gm4: versioning: schedule_loops: [main] + model_data: + - item: poppy + reference: gui/advancement/sweethearts + template: advancement website: description: Transfer your health to another player using flowers. recommended: [] diff --git a/gm4_sweethearts/data/gm4/advancements/sweethearts.json b/gm4_sweethearts/data/gm4/advancements/sweethearts.json index 02273442c8..32d6b6d9ea 100644 --- a/gm4_sweethearts/data/gm4/advancements/sweethearts.json +++ b/gm4_sweethearts/data/gm4/advancements/sweethearts.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "poppy", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/sweethearts'}" }, "title": { "translate": "advancement.gm4.sweethearts.title", diff --git a/gm4_sweethearts/data/gm4_sweethearts/guidebook/sweethearts.json b/gm4_sweethearts/data/gm4_sweethearts/guidebook/sweethearts.json index 57ccd600dc..3d43584e10 100644 --- a/gm4_sweethearts/data/gm4_sweethearts/guidebook/sweethearts.json +++ b/gm4_sweethearts/data/gm4_sweethearts/guidebook/sweethearts.json @@ -3,8 +3,7 @@ "name": "Sweethearts", "module_type": "module", "icon": { - "item": "minecraft:poppy", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:poppy" }, "criteria": { "obtain_flower": { diff --git a/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/models/block/teleportation_jammer.json b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/models/block/teleportation_jammer.json new file mode 100644 index 0000000000..3fa0920854 --- /dev/null +++ b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/models/block/teleportation_jammer.json @@ -0,0 +1,238 @@ +{ + "textures": { + "eye_top": "gm4_teleportation_anchors:block/eye_top", + "eye_side1": "gm4_teleportation_anchors:block/eye_side1", + "eye_side2": "gm4_teleportation_anchors:block/eye_side2", + "eye_side3": "gm4_teleportation_anchors:block/eye_side3", + "eye_side4": "gm4_teleportation_anchors:block/eye_side4", + "top": "gm4_teleportation_anchors:block/teleportation_jammer_top", + "particle": "gm4_teleportation_anchors:block/teleportation_jammer_side", + "side": "gm4_teleportation_anchors:block/teleportation_jammer_side", + "bottom": "minecraft:block/furnace_top" + }, + "elements": [ + { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 16, + 16 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#side" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#side" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#side" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#side" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "rotation": 180, + "texture": "#top" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#bottom" + } + } + }, + { + "from": [ + 5, + 16, + 5 + ], + "to": [ + 11, + 21, + 11 + ], + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 7, + 18, + 7 + ] + }, + "faces": { + "north": { + "uv": [ + 0, + 0, + 12, + 10 + ], + "texture": "#eye_side1" + }, + "east": { + "uv": [ + 0, + 0, + 12, + 10 + ], + "texture": "#eye_side4" + }, + "south": { + "uv": [ + 0, + 0, + 12, + 10 + ], + "texture": "#eye_side3" + }, + "west": { + "uv": [ + 0, + 0, + 12, + 10 + ], + "texture": "#eye_side2" + }, + "up": { + "uv": [ + 12, + 0, + 0, + 12 + ], + "texture": "#eye_top" + } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + 45, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 225, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "ground": { + "translation": [ + 0, + 3, + 0 + ], + "scale": [ + 0.25, + 0.25, + 0.25 + ] + }, + "gui": { + "rotation": [ + 30, + 225, + 0 + ], + "scale": [ + 0.625, + 0.625, + 0.625 + ] + }, + "head": { + "translation": [ + 0, + -18.32, + 0 + ], + "scale": [ + 2.288, + 2.288, + 2.288 + ] + }, + "fixed": { + "scale": [ + 0.5, + 0.5, + 0.5 + ] + } + } +} diff --git a/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side1.png b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side1.png new file mode 100644 index 0000000000..1dc157e5b3 Binary files /dev/null and b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side1.png differ diff --git a/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side1.png.mcmeta b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side1.png.mcmeta new file mode 100644 index 0000000000..3bc847e558 --- /dev/null +++ b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side1.png.mcmeta @@ -0,0 +1,35 @@ +{ + "animation": { + "frametime": 2, + "frames": [ + 0, + { "index": 1, + "time": 10 }, + { "index": 0, + "time": 8 }, + { "index": 1, + "time": 8 }, + 0, + 12, + 11, + { "index": 10, + "time": 32 }, + 11, + 12, + 1, + 2, + 3, + { "index": 4, + "time": 30 }, + 5, + 6, + { "index": 7, + "time": 30 }, + 8, + 9, + 10, + 11, + 12 + ] + } +} diff --git a/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side2.png b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side2.png new file mode 100644 index 0000000000..1dc157e5b3 Binary files /dev/null and b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side2.png differ diff --git a/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side2.png.mcmeta b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side2.png.mcmeta new file mode 100644 index 0000000000..5e981c68cb --- /dev/null +++ b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side2.png.mcmeta @@ -0,0 +1,34 @@ +{ + "animation": { + "frametime": 2, + "frames": [ + { "index": 10, + "time": 30 }, + 9, + 8, + { "index": 7, + "time": 32 }, + 8, + 9, + 10, + 11, + 12, + { "index": 0, + "time": 8 }, + { "index": 1, + "time": 10 }, + { "index": 0, + "time": 10 }, + 1, + 2, + 3, + { "index": 4, + "time": 30 }, + 5, + 6, + 7, + 8, + 9 + ] + } +} diff --git a/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side3.png b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side3.png new file mode 100644 index 0000000000..1dc157e5b3 Binary files /dev/null and b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side3.png differ diff --git a/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side3.png.mcmeta b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side3.png.mcmeta new file mode 100644 index 0000000000..4445ceba36 --- /dev/null +++ b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side3.png.mcmeta @@ -0,0 +1,33 @@ +{ + "animation": { + "frametime": 2, + "frames": [ + { "index": 7, + "time": 30 }, + 6, + 5, + { "index": 4, + "time": 32 }, + 5, + 6, + 7, + 8, + 9, + { "index": 10, + "time": 30 }, + 11, + 12, + 0, + { "index": 1, + "time": 12 }, + { "index": 0, + "time": 14 }, + 1, + 2, + 3, + 4, + 5, + 6 + ] + } +} diff --git a/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side4.png b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side4.png new file mode 100644 index 0000000000..1dc157e5b3 Binary files /dev/null and b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side4.png differ diff --git a/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side4.png.mcmeta b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side4.png.mcmeta new file mode 100644 index 0000000000..4a5d9fee47 --- /dev/null +++ b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_side4.png.mcmeta @@ -0,0 +1,32 @@ +{ + "animation": { + "frametime": 2, + "frames": [ + { "index": 4, + "time": 30 }, + 3, + 2, + { "index": 1, + "time": 14 }, + { "index": 0, + "time": 16 }, + 1, + 2, + 3, + 4, + 5, + 6, + { "index": 7, + "time": 30 }, + 8, + 9, + { "index": 10, + "time": 30 }, + 11, + 12, + 1, + 2, + 3 + ] + } +} diff --git a/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_top.png b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_top.png new file mode 100644 index 0000000000..320763d7a1 Binary files /dev/null and b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/eye_top.png differ diff --git a/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/teleportation_anchor_bottom.png b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/teleportation_anchor_bottom.png new file mode 100644 index 0000000000..08cdd66a96 Binary files /dev/null and b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/teleportation_anchor_bottom.png differ diff --git a/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/teleportation_anchor_side.png b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/teleportation_anchor_side.png new file mode 100644 index 0000000000..d9593faa4d Binary files /dev/null and b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/teleportation_anchor_side.png differ diff --git a/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/teleportation_anchor_top.png b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/teleportation_anchor_top.png new file mode 100644 index 0000000000..4fb1be7013 Binary files /dev/null and b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/teleportation_anchor_top.png differ diff --git a/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/teleportation_jammer_side.png b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/teleportation_jammer_side.png new file mode 100644 index 0000000000..f21ee41562 Binary files /dev/null and b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/teleportation_jammer_side.png differ diff --git a/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/teleportation_jammer_top.png b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/teleportation_jammer_top.png new file mode 100644 index 0000000000..7550cd1c09 Binary files /dev/null and b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/block/teleportation_jammer_top.png differ diff --git a/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/gui/container/teleportation_jammer.png b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/gui/container/teleportation_jammer.png new file mode 100644 index 0000000000..9ca28e5d4c Binary files /dev/null and b/gm4_teleportation_anchors/assets/gm4_teleportation_anchors/textures/gui/container/teleportation_jammer.png differ diff --git a/gm4_teleportation_anchors/assets/translations.csv b/gm4_teleportation_anchors/assets/translations.csv new file mode 100644 index 0000000000..dc5dd26561 --- /dev/null +++ b/gm4_teleportation_anchors/assets/translations.csv @@ -0,0 +1,20 @@ +key,en_us +block.gm4.teleportation_jammer,Teleportation Jammer +block.gm4.teleportation_anchor,Teleportation Anchor +container.gm4.teleportation_jammer,Teleportation Jammer +advancement.gm4.teleportation_anchors_anchor.title,"Pinpoint Location" +advancement.gm4.teleportation_anchors_anchor.description,"Make a teleportation anchor to remove the randomness of chorus" +advancement.gm4.teleportation_anchors_jammer.title,"Make Some Noise" +advancement.gm4.teleportation_anchors_jammer.description,"Create a device to stop chorus in its tracks" +text.gm4.guidebook.module_desc.teleportation_anchors,Suppress and control chorus-based teleportation! +text.gm4.guidebook.teleportation_jammer.description,Teleportation Jammers and Anchors can be used to supress and control chorus-based teleportation.\n\nThey can be crafted in a Custom Crafter. +text.gm4.guidebook.teleportation_anchors.crafting_jammer,A Teleportation Jammer can be crafted in a Custom Crafter: +text.gm4.guidebook.teleportation_anchors.jamming,"A Teleportation Jammer is used to suppress chorus based teleportation.\n\nThis includes endermen, shulkers, chorus fruit, end gateways, and other random teleportation that doesn't require line-of-sight." +text.gm4.guidebook.teleportation_anchors.jammer_effects,"When entities are jammed, any act of teleportation will cause them to jump back to their original location.\n\nWhen endermen are jammed, they are also prevented from picking up blocks." +text.gm4.guidebook.teleportation_anchors.jammer_power,"In order for a TP Jammer to work, it needs to broadcast a signal through an end rod placed on top of it.\n\nChorus fruit must be placed inside the jammer as fuel. Five fruit is enough for two days." +text.gm4.guidebook.teleportation_anchors.jammer_range,"Similar to a beacon, a pyramid of purpur blocks can be build to extend the range of a jammer.\n\nThe range can be either 4, 16, 32, or 64 blocks in radius, acheived by 0-3 layers of a pyramid." +text.gm4.guidebook.teleportation_anchors.crafting_anchor,A Teleportation Jammer can be used to craft an Anchor: +text.gm4.guidebook.teleportation_anchors.anchor_usage,"A Teleportation Anchor is used to control chorus based teleportation.\n\nIf a Jammer is connected to an anchor, teleporters will be teleported to the anchor instead of being jammed to their original location." +text.gm4.guidebook.teleportation_anchors.pupur_wires,A Jammer can be connected to an Anchor using purpur pillars.\n\nThe pillars need to go from the bottom of a TP Jammer and eventually lead into a TP Anchor. +text.gm4.guidebook.teleportation_anchors.pupur_wires_1,"If a purpur pillar points into a T-Junction, it will prioritize moving in the North, West, or Down direction.\n\nThese wires can be at most 64 blocks long." +text.gm4.guidebook.teleportation_anchors.chorus_fruit_cooldown,"If a user eats chorus fruit, they can also be teleported to an anchor, but must wait some time before doing so again.\n\nIf they try to teleport during this cooldown, they will just be jammed." diff --git a/gm4_teleportation_anchors/beet.yaml b/gm4_teleportation_anchors/beet.yaml index 14a345cb5f..e132274dce 100644 --- a/gm4_teleportation_anchors/beet.yaml +++ b/gm4_teleportation_anchors/beet.yaml @@ -5,6 +5,9 @@ version: 1.3.X data_pack: load: . +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module - gm4.plugins.include.lib_machines @@ -19,6 +22,38 @@ meta: schedule_loops: - main - tick + model_data: + - item: player_head + reference: item/teleportation_anchor + model: block/teleportation_anchor + - item: end_portal_frame + reference: block/teleportation_anchor + template: legacy_machine_block + textures: + top: block/teleportation_anchor_top + side: block/teleportation_anchor_side + front: block/teleportation_anchor_side + bottom: block/teleportation_anchor_bottom + - item: player_head + reference: item/teleportation_jammer + model: block/teleportation_jammer + - item: purpur_pillar + reference: block/teleportation_jammer + template: custom + - item: end_rod + reference: gui/advancement/teleportation_jammer + template: + name: advancement + forward: block/teleportation_jammer + - item: lodestone + reference: gui/advancement/teleportation_anchor + template: + name: advancement + forward: block/teleportation_anchor + gui_fonts: + - translation: gui.gm4.teleportation_jammer + container: dropper + texture: gui/container/teleportation_jammer website: description: Suppress and control chorus-based teleportation! recommended: diff --git a/gm4_teleportation_anchors/data/gm4/advancements/teleportation_anchors_anchor.json b/gm4_teleportation_anchors/data/gm4/advancements/teleportation_anchors_anchor.json index 779a3270db..b4fdc299b9 100644 --- a/gm4_teleportation_anchors/data/gm4/advancements/teleportation_anchors_anchor.json +++ b/gm4_teleportation_anchors/data/gm4/advancements/teleportation_anchors_anchor.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:lodestone", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/teleportation_anchor'}" }, "title": { "translate": "advancement.gm4.teleportation_anchors_anchor.title", diff --git a/gm4_teleportation_anchors/data/gm4/advancements/teleportation_anchors_jammer.json b/gm4_teleportation_anchors/data/gm4/advancements/teleportation_anchors_jammer.json index 3e62f6d143..a33e97d4ab 100644 --- a/gm4_teleportation_anchors/data/gm4/advancements/teleportation_anchors_jammer.json +++ b/gm4_teleportation_anchors/data/gm4/advancements/teleportation_anchors_jammer.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:end_rod", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/teleportation_jammer'}" }, "title": { "translate": "advancement.gm4.teleportation_anchors_jammer.title", diff --git a/gm4_teleportation_anchors/data/gm4_teleportation_anchors/functions/blocks/anchor/create.mcfunction b/gm4_teleportation_anchors/data/gm4_teleportation_anchors/functions/blocks/anchor/create.mcfunction index 1d68d9e352..ba78d15b63 100644 --- a/gm4_teleportation_anchors/data/gm4_teleportation_anchors/functions/blocks/anchor/create.mcfunction +++ b/gm4_teleportation_anchors/data/gm4_teleportation_anchors/functions/blocks/anchor/create.mcfunction @@ -2,7 +2,7 @@ # run from recipe_check setblock ~ ~ ~ lodestone -data merge entity @s {CustomName:'"gm4_teleportation_anchor"',ArmorItems:[{},{},{},{id:"end_portal_frame",Count:1b,tag:{CustomModelData:3420001}}]} +data merge entity @s {CustomName:'"gm4_teleportation_anchor"',ArmorItems:[{},{},{},{id:"end_portal_frame",Count:1b,tag:{CustomModelData:'block/teleportation_anchor'}}]} playsound minecraft:block.end_portal.spawn block @a[distance=..8] ~ ~ ~ 0.3 1.8 tag @s add gm4_teleportation_anchor tag @s remove gm4_custom_crafter diff --git a/gm4_teleportation_anchors/data/gm4_teleportation_anchors/functions/blocks/jammer/create.mcfunction b/gm4_teleportation_anchors/data/gm4_teleportation_anchors/functions/blocks/jammer/create.mcfunction index 5aebbc15a4..4def2cfb8f 100644 --- a/gm4_teleportation_anchors/data/gm4_teleportation_anchors/functions/blocks/jammer/create.mcfunction +++ b/gm4_teleportation_anchors/data/gm4_teleportation_anchors/functions/blocks/jammer/create.mcfunction @@ -2,7 +2,7 @@ # run from recipe_check data merge storage gm4_custom_crafters:temp/crafter {Items:[],CustomName:'{"color":"dark_purple","translate":"block.gm4.teleportation_jammer","fallback":"Teleportation Jammer"}'} -data merge entity @s {CustomName:'"gm4_teleportation_jammer"',ArmorItems:[{},{},{},{id:"purpur_pillar",Count:1b,tag:{CustomModelData:3420001}}]} +data merge entity @s {CustomName:'"gm4_teleportation_jammer"',ArmorItems:[{},{},{},{id:"purpur_pillar",Count:1b,tag:{CustomModelData:'block/teleportation_jammer'}}]} playsound minecraft:block.chorus_flower.death block @a[distance=..8] ~ ~ ~ 100 1.3 playsound minecraft:block.beacon.power_select block @a[distance=..8] ~ ~ ~ 0.3 0.3 tag @s add gm4_teleportation_jammer diff --git a/gm4_teleportation_anchors/data/gm4_teleportation_anchors/functions/machine/create_anchor.mcfunction b/gm4_teleportation_anchors/data/gm4_teleportation_anchors/functions/machine/create_anchor.mcfunction index 3f64690862..d2786b96a0 100644 --- a/gm4_teleportation_anchors/data/gm4_teleportation_anchors/functions/machine/create_anchor.mcfunction +++ b/gm4_teleportation_anchors/data/gm4_teleportation_anchors/functions/machine/create_anchor.mcfunction @@ -7,7 +7,7 @@ setblock ~ ~ ~ lodestone # summon display armor stand and marker entity -summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,DisabledSlots:2039552,Tags:["gm4_no_edit","gm4_teleportation_anchor_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_teleportation_anchor_stand"',ArmorItems:[{},{},{},{id:"end_portal_frame",Count:1b,tag:{CustomModelData:3420001}}],Rotation:[0.0f,0.0f]} +summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,DisabledSlots:2039552,Tags:["gm4_no_edit","gm4_teleportation_anchor_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_teleportation_anchor_stand"',ArmorItems:[{},{},{},{id:"end_portal_frame",Count:1b,tag:{CustomModelData:"block/teleportation_anchor"}}],Rotation:[0.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_teleportation_anchor","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_teleportation_anchor"',Rotation:[0.0f,0.0f]} # mark block as placed diff --git a/gm4_teleportation_anchors/data/gm4_teleportation_anchors/functions/machine/create_jammer.mcfunction b/gm4_teleportation_anchors/data/gm4_teleportation_anchors/functions/machine/create_jammer.mcfunction index 301d9de204..2d9e12ddd1 100644 --- a/gm4_teleportation_anchors/data/gm4_teleportation_anchors/functions/machine/create_jammer.mcfunction +++ b/gm4_teleportation_anchors/data/gm4_teleportation_anchors/functions/machine/create_jammer.mcfunction @@ -7,7 +7,7 @@ setblock ~ ~ ~ dropper[facing=up]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.teleportation_jammer","fallback":"Teleportation Jammer"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.teleportation_jammer","fallback":"Teleportation Jammer","font":"gm4:half_invert"},{"translate":"container.gm4.teleportation_jammer","fallback":"Teleportation Jammer","font":"gm4:offscreen"},{"translate":"gui.gm4.teleportation_jammer","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.teleportation_jammer","fallback":"Teleportation Jammer","font":"gm4:half_invert"},{"translate":"container.gm4.teleportation_jammer","fallback":"Teleportation Jammer","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,DisabledSlots:2039552,Tags:["gm4_no_edit","gm4_teleportation_jammer_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_teleportation_jammer_stand"',ArmorItems:[{},{},{},{id:"purpur_pillar",Count:1b,tag:{CustomModelData:3420001}}],Rotation:[0.0f,0.0f]} +summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,DisabledSlots:2039552,Tags:["gm4_no_edit","gm4_teleportation_jammer_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_teleportation_jammer_stand"',ArmorItems:[{},{},{},{id:"purpur_pillar",Count:1b,tag:{CustomModelData:"block/teleportation_jammer"}}],Rotation:[0.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_teleportation_jammer","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_teleportation_jammer"',Rotation:[0.0f,0.0f]} # set id diff --git a/gm4_teleportation_anchors/data/gm4_teleportation_anchors/functions/relocate/summon_block_markers_jammer.mcfunction b/gm4_teleportation_anchors/data/gm4_teleportation_anchors/functions/relocate/summon_block_markers_jammer.mcfunction index dffd9dae86..ae86e29168 100644 --- a/gm4_teleportation_anchors/data/gm4_teleportation_anchors/functions/relocate/summon_block_markers_jammer.mcfunction +++ b/gm4_teleportation_anchors/data/gm4_teleportation_anchors/functions/relocate/summon_block_markers_jammer.mcfunction @@ -6,7 +6,7 @@ scoreboard players set $placed_block gm4_rl_data 1 # summon entities -summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,DisabledSlots:2039552,Tags:["gm4_no_edit","gm4_teleportation_jammer_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_teleportation_jammer_stand"',ArmorItems:[{},{},{},{id:"purpur_pillar",Count:1b,tag:{CustomModelData:3420001}}],Rotation:[0.0f,0.0f]} +summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,DisabledSlots:2039552,Tags:["gm4_no_edit","gm4_teleportation_jammer_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_teleportation_jammer_stand"',ArmorItems:[{},{},{},{id:"purpur_pillar",Count:1b,tag:{CustomModelData:"block/teleportation_jammer"}}],Rotation:[0.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_teleportation_jammer","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_teleportation_jammer"',Rotation:[0.0f,0.0f]} # set id diff --git a/gm4_teleportation_anchors/data/gm4_teleportation_anchors/guidebook/teleportation_anchors.json b/gm4_teleportation_anchors/data/gm4_teleportation_anchors/guidebook/teleportation_anchors.json index 91ce20465a..a689b74163 100644 --- a/gm4_teleportation_anchors/data/gm4_teleportation_anchors/guidebook/teleportation_anchors.json +++ b/gm4_teleportation_anchors/data/gm4_teleportation_anchors/guidebook/teleportation_anchors.json @@ -3,8 +3,7 @@ "name": "Teleportation Anchors", "module_type": "module", "icon": { - "item": "minecraft:furnace", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:furnace" }, "criteria": { "open_custom_crafter": { diff --git a/gm4_teleportation_anchors/data/gm4_teleportation_anchors/loot_tables/items/teleportation_anchor.json b/gm4_teleportation_anchors/data/gm4_teleportation_anchors/loot_tables/items/teleportation_anchor.json index 72ce864cd9..408ba0a398 100644 --- a/gm4_teleportation_anchors/data/gm4_teleportation_anchors/loot_tables/items/teleportation_anchor.json +++ b/gm4_teleportation_anchors/data/gm4_teleportation_anchors/loot_tables/items/teleportation_anchor.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420139,gm4_machines:{id:\"teleportation_anchor\"},SkullOwner:{Name:\"gm4_teleportation_anchor\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$teleportation_anchor\"}]}}}" + "tag": "{CustomModelData:'item/teleportation_anchor',gm4_machines:{id:\"teleportation_anchor\"},SkullOwner:{Name:\"gm4_teleportation_anchor\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$teleportation_anchor\"}]}}}" }, { "function": "set_name", diff --git a/gm4_teleportation_anchors/data/gm4_teleportation_anchors/loot_tables/items/teleportation_jammer.json b/gm4_teleportation_anchors/data/gm4_teleportation_anchors/loot_tables/items/teleportation_jammer.json index c3479b940a..ddeede049a 100644 --- a/gm4_teleportation_anchors/data/gm4_teleportation_anchors/loot_tables/items/teleportation_jammer.json +++ b/gm4_teleportation_anchors/data/gm4_teleportation_anchors/loot_tables/items/teleportation_jammer.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420138,gm4_machines:{id:\"teleportation_jammer\"},SkullOwner:{Name:\"gm4_teleportation_jammer\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$teleportation_jammer\"}]}}}" + "tag": "{CustomModelData:'item/teleportation_jammer',gm4_machines:{id:\"teleportation_jammer\"},SkullOwner:{Name:\"gm4_teleportation_jammer\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$teleportation_jammer\"}]}}}" }, { "function": "set_name", diff --git a/gm4_teleportation_anchors/overlay_26/data/gm4_teleportation_anchors/guidebook/teleportation_anchors.json b/gm4_teleportation_anchors/overlay_26/data/gm4_teleportation_anchors/guidebook/teleportation_anchors.json index dd3c08df3a..5ebe146330 100644 --- a/gm4_teleportation_anchors/overlay_26/data/gm4_teleportation_anchors/guidebook/teleportation_anchors.json +++ b/gm4_teleportation_anchors/overlay_26/data/gm4_teleportation_anchors/guidebook/teleportation_anchors.json @@ -3,8 +3,7 @@ "name": "Teleportation Anchors", "module_type": "module", "icon": { - "item": "minecraft:furnace", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:furnace" }, "criteria": { "open_custom_crafter": { diff --git a/gm4_tinkering_compressors/assets/gm4_tinkering_compressors/models/block/tinkering_compressor_full.json b/gm4_tinkering_compressors/assets/gm4_tinkering_compressors/models/block/tinkering_compressor_full.json new file mode 100644 index 0000000000..57a56482aa --- /dev/null +++ b/gm4_tinkering_compressors/assets/gm4_tinkering_compressors/models/block/tinkering_compressor_full.json @@ -0,0 +1,11 @@ +{ + "parent": "gm4:block/cube_with_plate", + "textures": { + "particle": "gm4_tinkering_compressors:block/tinkering_compressor_side", + "side": "gm4_tinkering_compressors:block/tinkering_compressor_side", + "bottom": "minecraft:block/furnace_top", + "top": "gm4_tinkering_compressors:block/tinkering_compressor_top", + "front": "gm4_tinkering_compressors:block/tinkering_compressor_side", + "plate": "gm4_tinkering_compressors:block/tinkering_compressor_plate" + } +} diff --git a/gm4_tinkering_compressors/assets/gm4_tinkering_compressors/models/block/tinkering_compressor_plate.json b/gm4_tinkering_compressors/assets/gm4_tinkering_compressors/models/block/tinkering_compressor_plate.json new file mode 100644 index 0000000000..62d8e62048 --- /dev/null +++ b/gm4_tinkering_compressors/assets/gm4_tinkering_compressors/models/block/tinkering_compressor_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "gm4:block/plate", + "textures": { + "top": "gm4_tinkering_compressors:block/tinkering_compressor_plate" + } +} diff --git a/gm4_tinkering_compressors/assets/gm4_tinkering_compressors/textures/block/tinkering_compressor_plate.png b/gm4_tinkering_compressors/assets/gm4_tinkering_compressors/textures/block/tinkering_compressor_plate.png new file mode 100644 index 0000000000..4cf415cd12 Binary files /dev/null and b/gm4_tinkering_compressors/assets/gm4_tinkering_compressors/textures/block/tinkering_compressor_plate.png differ diff --git a/gm4_tinkering_compressors/assets/gm4_tinkering_compressors/textures/block/tinkering_compressor_side.png b/gm4_tinkering_compressors/assets/gm4_tinkering_compressors/textures/block/tinkering_compressor_side.png new file mode 100644 index 0000000000..140b2f85e4 Binary files /dev/null and b/gm4_tinkering_compressors/assets/gm4_tinkering_compressors/textures/block/tinkering_compressor_side.png differ diff --git a/gm4_tinkering_compressors/assets/gm4_tinkering_compressors/textures/block/tinkering_compressor_top.png b/gm4_tinkering_compressors/assets/gm4_tinkering_compressors/textures/block/tinkering_compressor_top.png new file mode 100644 index 0000000000..be13fee4c5 Binary files /dev/null and b/gm4_tinkering_compressors/assets/gm4_tinkering_compressors/textures/block/tinkering_compressor_top.png differ diff --git a/gm4_tinkering_compressors/assets/gm4_tinkering_compressors/textures/gui/container/tinkering_compressor.png b/gm4_tinkering_compressors/assets/gm4_tinkering_compressors/textures/gui/container/tinkering_compressor.png new file mode 100644 index 0000000000..48fae33a84 Binary files /dev/null and b/gm4_tinkering_compressors/assets/gm4_tinkering_compressors/textures/gui/container/tinkering_compressor.png differ diff --git a/gm4_tinkering_compressors/assets/translations.csv b/gm4_tinkering_compressors/assets/translations.csv new file mode 100644 index 0000000000..e90f9e709e --- /dev/null +++ b/gm4_tinkering_compressors/assets/translations.csv @@ -0,0 +1,8 @@ +key,en_us +block.gm4.tinkering_compressor,Tinkering Compressor +container.gm4.tinkering_compressor,Tinker Amount +advancement.gm4.tinkering_compressors.title,Automatic Tinkering +advancement.gm4.tinkering_compressors.description,Make yourself a Tinkering Compressor +text.gm4.guidebook.module_desc.tinkering_compressors,"Automatically compress stacks of items into their block form with a tinker shamir as a machine block, and back." +text.gm4.guidebook.tinkering_compressors.creation,A Block Compressor can be upgraded to a Tinkering Compressor.\n\nThis is done by dropping a Tinker Shamir on top of a Compressor and smooshing it with a downwards piston. +text.gm4.guidebook.tinkering_compressors.usage,"A Tinkering Compressor with 64 items inside will tinker compress items on top of it, transforming them into their block form. It supports the all tinkering.\n\nPlacing 1 item inside will instead detinker any items on top of it." diff --git a/gm4_tinkering_compressors/beet.yaml b/gm4_tinkering_compressors/beet.yaml index 479f84420e..0be502363b 100644 --- a/gm4_tinkering_compressors/beet.yaml +++ b/gm4_tinkering_compressors/beet.yaml @@ -5,6 +5,9 @@ version: 1.3.X data_pack: load: . +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module - gm4.plugins.include.lib_machines @@ -19,6 +22,39 @@ meta: schedule_loops: - main - tick + model_data: + - item: oxidized_cut_copper + reference: block/tinkering_compressor_plate + transforms: + - name: item_display + origin: [0.5, 0.5, 0.5] + scale: [0.625, 0.625, 0.625] + translation: [0, -0.225, 0] + rotation: [180, 0, 0] + - item: stone + reference: block/tinkering_compressor + template: block + textures: + top: gm4_tinkering_compressors:block/tinkering_compressor_top + bottom: minecraft:block/furnace_top + front: gm4_tinkering_compressors:block/tinkering_compressor_side + side: gm4_tinkering_compressors:block/tinkering_compressor_side + transforms: + - name: item_display + origin: [0.5, 0.5, 0.5] + scale: [0.5, 0.5, 0.5] + - item: player_head + reference: item/tinkering_compressor + model: block/tinkering_compressor_full + - item: player_head + reference: gui/advancement/tinkering_compressors + template: + name: advancement + forward: block/tinkering_compressor_full + gui_fonts: + - translation: gui.gm4.tinkering_compressor + container: dropper + texture: gui/container/tinkering_compressor website: description: Automatically compress stacks of items into their block form with a tinker shamir as a machine block, and back. recommended: @@ -33,6 +69,6 @@ meta: - MichaelMiner137 - BluePsychoRanger Textures by: - - kyrkis + - Kyrius Icon Design: - Sparks diff --git a/gm4_tinkering_compressors/data/gm4/advancements/tinkering_compressors.json b/gm4_tinkering_compressors/data/gm4/advancements/tinkering_compressors.json index 1f746fe6ec..6647fb1cd3 100644 --- a/gm4_tinkering_compressors/data/gm4/advancements/tinkering_compressors.json +++ b/gm4_tinkering_compressors/data/gm4/advancements/tinkering_compressors.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "player_head", - "nbt": "{CustomModelData:3420015,SkullOwner:\"$gm4_metallurgy:band/curies_bismium\"}" + "nbt": "{CustomModelData:'gui/advancement/tinkering_compressors',SkullOwner:\"$gm4_metallurgy:band/curies_bismium\"}" }, "title": { "translate": "advancement.gm4.tinkering_compressors.title", diff --git a/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/machine/create.mcfunction b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/machine/create.mcfunction index 728ea1b71f..f2c270afc6 100644 --- a/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/machine/create.mcfunction +++ b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/machine/create.mcfunction @@ -7,13 +7,13 @@ setblock ~ ~ ~ dropper[facing=down]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.tinkering_compressor","fallback":"Tinker Amount"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.tinkering_compressor","fallback":"Tinker Amount","font":"gm4:half_invert"},{"translate":"container.gm4.tinkering_compressor","fallback":"Tinker Amount","font":"gm4:offscreen"},{"translate":"gui.gm4.tinkering_compressor","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.tinkering_compressor","fallback":"Tinker Amount","font":"gm4:half_invert"},{"translate":"container.gm4.tinkering_compressor","fallback":"Tinker Amount","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.965 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_tinkering_compressor_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_tinkering_compressor_stand"',ArmorItems:[{},{},{},{id:"minecraft:oxidized_cut_copper",Count:1b,tag:{CustomModelData:3420001}}],Pose:{Head:[180f,0f,0f]},Rotation:[0.0f,0.0f]} -summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_tinkering_compressor_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_tinkering_compressor_display"',HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420002}},{}],Pose:{RightArm:[0.0f,0.0f,0.0f]},Rotation:[0.0f,0.0f]} +summon item_display ~ ~ ~ {Tags:["gm4_tinkering_compressor_plate","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_tinkering_compressor_plate"',item:{id:"minecraft:oxidized_cut_copper",Count:1b,tag:{CustomModelData:"block/tinkering_compressor_plate"}},transformation:{right_rotation:[0f,0f,0f,1f],left_rotation:[1f,0f,0f,0f],translation:[0.0,0.225,0.0],scale:[0.625,0.625,0.625]},brightness:{block:15,sky:15},item_display:"head"} +summon item_display ~ ~ ~ {Tags:["gm4_tinkering_compressor_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_tinkering_compressor_display"',item:{id:"minecraft:stone",Count:1b,tag:{CustomModelData:"block/tinkering_compressor"}},transformation:{right_rotation:[0f,0f,0f,1f],left_rotation:[0f,0f,0f,1f],translation:[0f,0f,0f],scale:[0.5,0.5,0.5]},brightness:{block:15,sky:15},item_display:"head"} summon marker ~ ~ ~ {Tags:["gm4_tinkering_compressor","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_tinkering_compressor"',Rotation:[0.0f,0.0f]} # mark block as placed playsound minecraft:entity.firework_rocket.blast block @a[distance=..5] particle cloud ~ ~ ~ 0.1 0.1 0.1 0.05 10 -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 $placed_block gm4_machine_data 2 +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_tinkering_compressors/data/gm4_tinkering_compressors/functions/machine/destroy.mcfunction b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/machine/destroy.mcfunction index e85e43bd3d..3569abdc49 100644 --- a/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/machine/destroy.mcfunction +++ b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/machine/destroy.mcfunction @@ -4,8 +4,8 @@ # run from gm4_tinkering_compressors:machine/verify_destroy # kill entities related to machine block -execute positioned ~ ~-0.98 ~ run kill @e[type=armor_stand,tag=gm4_tinkering_compressor_stand,limit=1,distance=..0.1] -execute positioned ~ ~-0.4 ~ run kill @e[type=armor_stand,tag=gm4_tinkering_compressor_display,limit=1,distance=..0.1] +execute positioned ~ ~ ~ run kill @e[type=item_display,tag=gm4_tinkering_compressor_plate,limit=1,distance=..0.1] +execute positioned ~ ~ ~ run kill @e[type=item_display,tag=gm4_tinkering_compressor_display,limit=1,distance=..0.1] execute store result score $dropped_item gm4_machine_data run kill @e[type=item,distance=..1,nbt={Age:0s,Item:{id:"minecraft:dropper",Count:1b,tag:{display:{}}}},limit=1,sort=nearest] kill @s diff --git a/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/process.mcfunction b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/process.mcfunction index d66c3244ec..ad49a032d0 100644 --- a/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/process.mcfunction +++ b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/process.mcfunction @@ -7,9 +7,9 @@ execute positioned ~ ~0.9 ~ if entity @e[type=item,tag=!gm4_tc_locked,distance=. particle dust 0.624 0.769 0.671 1 ~ ~0.9 ~ 0 0.15 0 0.01 15 # simulate pressure plate -execute positioned ~ ~-0.995 ~ as @e[type=armor_stand,tag=gm4_tinkering_compressor_stand,tag=gm4_compressor_depressed,distance=..0.01,limit=1] positioned ~-0.5 ~1.495 ~-0.5 unless entity @e[dx=0] at @s run function gm4_tinkering_compressors:pressure_plate_up -execute positioned ~-0.5 ~0.5 ~-0.5 if entity @e[dx=0] positioned ~0.5 ~-1.465 ~0.5 as @e[type=armor_stand,tag=gm4_tinkering_compressor_stand,tag=!gm4_compressor_depressed,distance=..0.01,limit=1] at @s run function gm4_tinkering_compressors:pressure_plate_down -execute if entity @s[tag=gm4_compressor_sound] run playsound block.stone_pressure_plate.click_on block @a[distance=..6] ~ ~0.505 ~ 0.7 0.6 +execute positioned ~ ~-0.03 ~ as @e[type=item_display,tag=gm4_tinkering_compressor_plate,tag=gm4_compressor_depressed,distance=..0.01,limit=1] positioned ~-0.5 ~1.495 ~-0.5 unless entity @e[dx=0] at @s run function gm4_tinkering_compressors:pressure_plate_up +execute positioned ~-0.5 ~0.5 ~-0.5 if entity @e[dx=0] positioned ~0.5 ~-0.5 ~0.5 as @e[type=item_display,tag=gm4_tinkering_compressor_plate,tag=!gm4_compressor_depressed,distance=..0.01,limit=1] at @s run function gm4_tinkering_compressors:pressure_plate_down +execute if entity @s[tag=gm4_compressor_sound] run playsound block.stone_pressure_plate.click_on block @a[distance=..6] ~ ~0.35 ~ 0.7 0.6 # clean up tag @s remove gm4_compressor_sound diff --git a/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/relocate/place_down.mcfunction b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/relocate/place_down.mcfunction index 80b5b90401..4c559732c4 100644 --- a/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/relocate/place_down.mcfunction +++ b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/relocate/place_down.mcfunction @@ -7,7 +7,7 @@ execute if block ~ ~ ~ command_block[facing=south] run setblock ~ ~ ~ dropper[fa execute if block ~ ~ ~ command_block[facing=north] run setblock ~ ~ ~ dropper[facing=south] execute if block ~ ~ ~ command_block[facing=down] run setblock ~ ~ ~ dropper[facing=up] -data merge block ~ ~ ~ {CustomName:'{"translate":"container.gm4.tinkering_compressor","fallback":"Tinkering Compressor"}'} +data merge block ~ ~ ~ {CustomName:'{"translate":"container.gm4.tinkering_compressor","fallback":"Tinker Amount"}'} summon armor_stand ~ ~-.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,DisabledSlots:2039552,Tags:["gm4_no_edit","gm4_tinkering_compressor"],HasVisualFire:1,CustomName:'"gm4_tinkering_compressor"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420001,SkullOwner:"$tinkering_compressor"}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420002}}],Pose:{RightArm:[0f, 0f, 0f]}} playsound minecraft:entity.firework_rocket.blast block @a[distance=..5] particle cloud ~ ~ ~ 0.1 0.1 0.1 0.05 10 diff --git a/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/relocate/set_pick_up_data.mcfunction b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/relocate/set_pick_up_data.mcfunction index e1949f80a7..8d8a0acda1 100644 --- a/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/relocate/set_pick_up_data.mcfunction +++ b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/relocate/set_pick_up_data.mcfunction @@ -5,7 +5,7 @@ data modify storage gm4_relocators:temp merge_data set value {custom_block:"gm4_tinkering_compressor",lore:'{"translate":"block.gm4.tinkering_compressor","fallback":"Tinkering Compressor","color":"gray","italic":true}'} -execute positioned ~ ~-0.98 ~ run kill @e[type=armor_stand,tag=gm4_tinkering_compressor_stand,limit=1,distance=..0.1] -execute positioned ~ ~-0.4 ~ run kill @e[type=armor_stand,tag=gm4_tinkering_compressor_display,limit=1,distance=..0.1] +execute positioned ~ ~ ~ run kill @e[type=item_display,tag=gm4_tinkering_compressor_plate,limit=1,distance=..0.1] +execute positioned ~ ~ ~ run kill @e[type=item_display,tag=gm4_tinkering_compressor_display,limit=1,distance=..0.1] kill @s scoreboard players set $found_marker gm4_rl_data 1 diff --git a/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/relocate/summon_block_markers.mcfunction b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/relocate/summon_block_markers.mcfunction index 37354d81a2..1dd6749fbd 100644 --- a/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/relocate/summon_block_markers.mcfunction +++ b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/relocate/summon_block_markers.mcfunction @@ -5,9 +5,9 @@ scoreboard players set $placed_block gm4_rl_data 1 -summon armor_stand ~ ~-0.965 ~ {NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_tinkering_compressor_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_tinkering_compressor_stand"',ArmorItems:[{},{},{},{id:"minecraft:oxidized_cut_copper",Count:1b,tag:{CustomModelData:3420001}}],Pose:{Head:[180f,0f,0f]},Rotation:[0.0f,0.0f]} -summon armor_stand ~ ~-0.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_tinkering_compressor_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_tinkering_compressor_display"',HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420002}},{}],Pose:{RightArm:[0.0f,0.0f,0.0f]},Rotation:[0.0f,0.0f]} +summon item_display ~ ~ ~ {Tags:["gm4_tinkering_compressor_plate","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_tinkering_compressor_plate"',item:{id:"minecraft:oxidized_cut_copper",Count:1b,tag:{CustomModelData:"block/tinkering_compressor_plate"}},transformation:{right_rotation:[0f,0f,0f,1f],left_rotation:[1f,0f,0f,0f],translation:[0.0,0.225,0.0],scale:[0.625,0.625,0.625]},brightness:{block:15,sky:15},item_display:"head"} +summon item_display ~ ~ ~ {Tags:["gm4_tinkering_compressor_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_tinkering_compressor_display"',item:{id:"minecraft:stone",Count:1b,tag:{CustomModelData:"block/tinkering_compressor"}},transformation:{right_rotation:[0f,0f,0f,1f],left_rotation:[0f,0f,0f,1f],translation:[0f,0f,0f],scale:[0.5,0.5,0.5]},brightness:{block:15,sky:15},item_display:"head"} summon marker ~ ~ ~ {Tags:["gm4_tinkering_compressor","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_tinkering_compressor"',Rotation:[0.0f,0.0f]} -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_tinkering_compressors/data/gm4_tinkering_compressors/functions/smooshing/add_band/check.mcfunction b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/smooshing/add_band/check.mcfunction index b8023ce286..491564f113 100644 --- a/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/smooshing/add_band/check.mcfunction +++ b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/smooshing/add_band/check.mcfunction @@ -8,7 +8,7 @@ function gm4_metallurgy:update_nbt_version/load_band scoreboard players set valid_item gm4_ml_data 0 execute as @e[type=item,dx=0,limit=1,nbt={Item:{Count:1b,tag:{gm4_machines:{id:"block_compressor"}}}}] run function gm4_tinkering_compressors:smooshing/add_band/convert_to_tinkering_compressor -execute if score valid_item gm4_ml_data matches 1 run data merge entity @s {Item:{id:"minecraft:obsidian",tag:{CustomModelData:3420001,display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}},Tags:["gm4_ml_smooshed"]} +execute if score valid_item gm4_ml_data matches 1 run data merge entity @s {Item:{id:"minecraft:obsidian",tag:{CustomModelData:"gm4_metallurgy:item/slightly_damaged_obsidian",display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}},Tags:["gm4_ml_smooshed"]} execute if score valid_item gm4_ml_data matches 1 run data remove entity @s Item.tag.display.Name execute if score valid_item gm4_ml_data matches 1 run data remove entity @s Item.tag.gm4_metallurgy execute if score valid_item gm4_ml_data matches 1 run data remove entity @s Item.tag.SkullOwner diff --git a/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/upgrade_paths/1.4.mcfunction b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/upgrade_paths/1.4.mcfunction new file mode 100644 index 0000000000..1a3f054f99 --- /dev/null +++ b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/upgrade_paths/1.4.mcfunction @@ -0,0 +1,8 @@ +execute as @e[type=armor_stand,tag=gm4_block_compressor_stand] at @s positioned ~ ~0.965 ~ align y run summon item_display ~ ~0.5 ~ {Tags:["gm4_tinkering_compressor_plate","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_tinkering_compressor_plate"',item:{id:"minecraft:oxidized_cut_copper",Count:1b,tag:{CustomModelData:"block/tinkering_compressor_plate"}},transformation:{right_rotation:[0f,0f,0f,1f],left_rotation:[1f,0f,0f,0f],translation:[0.0,0.225,0.0],scale:[0.625,0.625,0.625]},brightness:{block:15,sky:15},item_display:"head"} +execute as @e[type=armor_stand,tag=gm4_block_compressor_display] at @s align y run summon item_display ~ ~0.5 ~ {Tags:["gm4_tinkering_compressor_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_tinkering_compressor_display"',item:{id:"minecraft:stone",Count:1b,tag:{CustomModelData:"block/tinkering_compressor"}},transformation:{right_rotation:[0f,0f,0f,1f],left_rotation:[0f,0f,0f,1f],translation:[0f,0f,0f],scale:[0.5,0.5,0.5]},brightness:{block:15,sky:15},item_display:"head"} + +execute as @e[type=armor_stand,tag=gm4_tinkering_compressor_display] at @s run scoreboard players set @e[distance=..2,tag=gm4_new_machine] gm4_entity_version 2 +execute as @e[type=armor_stand,tag=gm4_tinkering_compressor_display] at @s run tag @e[distance=..2] remove gm4_new_machine + +kill @e[type=armor_stand,tag=gm4_tinkering_compressor_display] +kill @e[type=armor_stand,tag=gm4_tinkering_compressor_stand] diff --git a/gm4_tinkering_compressors/data/gm4_tinkering_compressors/guidebook/tinkering_compressors.json b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/guidebook/tinkering_compressors.json index 2e9f07554d..69321e08b3 100644 --- a/gm4_tinkering_compressors/data/gm4_tinkering_compressors/guidebook/tinkering_compressors.json +++ b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/guidebook/tinkering_compressors.json @@ -3,8 +3,7 @@ "name": "Tinkering Compressors", "module_type": "module", "icon": { - "item": "minecraft:iron_block", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:iron_block" }, "criteria": { "obtain_tinker_shamir": { diff --git a/gm4_tinkering_compressors/data/gm4_tinkering_compressors/loot_tables/items/tinkering_compressor.json b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/loot_tables/items/tinkering_compressor.json index b52802fff5..018ef47105 100644 --- a/gm4_tinkering_compressors/data/gm4_tinkering_compressors/loot_tables/items/tinkering_compressor.json +++ b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/loot_tables/items/tinkering_compressor.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420136,gm4_machines:{id:\"tinkering_compressor\"},gm4_metallurgy:{has_shamir:1b},SkullOwner:{Name:\"gm4_tinkering_compressor\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$tinkering_compressor\"}]}}}" + "tag": "{CustomModelData:'item/tinkering_compressor',gm4_machines:{id:\"tinkering_compressor\"},gm4_metallurgy:{has_shamir:1b},SkullOwner:{Name:\"gm4_tinkering_compressor\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$tinkering_compressor\"}]}}}" }, { "function": "set_name", diff --git a/gm4_tinkering_compressors/overlay_26/data/gm4_tinkering_compressors/guidebook/tinkering_compressors.json b/gm4_tinkering_compressors/overlay_26/data/gm4_tinkering_compressors/guidebook/tinkering_compressors.json index 1afdf2eb56..893c08d30e 100644 --- a/gm4_tinkering_compressors/overlay_26/data/gm4_tinkering_compressors/guidebook/tinkering_compressors.json +++ b/gm4_tinkering_compressors/overlay_26/data/gm4_tinkering_compressors/guidebook/tinkering_compressors.json @@ -3,8 +3,7 @@ "name": "Tinkering Compressors", "module_type": "module", "icon": { - "item": "minecraft:iron_block", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:iron_block" }, "criteria": { "obtain_tinker_shamir": { diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/models/entity/landmine.json b/gm4_tnt_landmines/assets/gm4_tnt_landmines/models/entity/landmine.json new file mode 100644 index 0000000000..66376ceb21 --- /dev/null +++ b/gm4_tnt_landmines/assets/gm4_tnt_landmines/models/entity/landmine.json @@ -0,0 +1,46 @@ +{ + "elements": [ + { + "from": [4, 13, 4], + "to": [12, 17, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.08, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 8], "texture": "#side"}, + "east": {"uv": [0, 0, 16, 8], "texture": "#side"}, + "south": {"uv": [0, 0, 16, 8], "texture": "#side"}, + "west": {"uv": [0, 0, 16, 8], "texture": "#side"}, + "up": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#top"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#bottom"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "head": { + "scale": [2.296, 2.296, 2.296] + }, + "fixed": { + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_bottom.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_bottom.png new file mode 100644 index 0000000000..67740ea666 Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_bottom.png differ diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_crafting_table_side.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_crafting_table_side.png new file mode 100644 index 0000000000..1f11db2aa8 Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_crafting_table_side.png differ diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_crafting_table_top.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_crafting_table_top.png new file mode 100644 index 0000000000..9b10cfbd95 Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_crafting_table_top.png differ diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_crafting_table_top.png.mcmeta b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_crafting_table_top.png.mcmeta new file mode 100644 index 0000000000..19206a29a2 --- /dev/null +++ b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_crafting_table_top.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 15, + "interpolate": true, + "frames": [ + 0, + 1, + 0, + 2, + 3, + 2 + ] + } +} diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_dirt_side.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_dirt_side.png new file mode 100644 index 0000000000..bf8dd83230 Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_dirt_side.png differ diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_dirt_top.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_dirt_top.png new file mode 100644 index 0000000000..90662174bb Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_dirt_top.png differ diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_dirt_top.png.mcmeta b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_dirt_top.png.mcmeta new file mode 100644 index 0000000000..19206a29a2 --- /dev/null +++ b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_dirt_top.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 15, + "interpolate": true, + "frames": [ + 0, + 1, + 0, + 2, + 3, + 2 + ] + } +} diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_grass_side.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_grass_side.png new file mode 100644 index 0000000000..0894ccdf51 Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_grass_side.png differ diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_grass_top.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_grass_top.png new file mode 100644 index 0000000000..0d8841e122 Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_grass_top.png differ diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_grass_top.png.mcmeta b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_grass_top.png.mcmeta new file mode 100644 index 0000000000..19206a29a2 --- /dev/null +++ b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_grass_top.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 15, + "interpolate": true, + "frames": [ + 0, + 1, + 0, + 2, + 3, + 2 + ] + } +} diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_netherrack_side.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_netherrack_side.png new file mode 100644 index 0000000000..647ce36944 Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_netherrack_side.png differ diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_netherrack_top.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_netherrack_top.png new file mode 100644 index 0000000000..d5c18d4cd8 Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_netherrack_top.png differ diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_netherrack_top.png.mcmeta b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_netherrack_top.png.mcmeta new file mode 100644 index 0000000000..19206a29a2 --- /dev/null +++ b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_netherrack_top.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 15, + "interpolate": true, + "frames": [ + 0, + 1, + 0, + 2, + 3, + 2 + ] + } +} diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_side.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_side.png new file mode 100644 index 0000000000..f5e4142b57 Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_side.png differ diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_stone_bricks_side.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_stone_bricks_side.png new file mode 100644 index 0000000000..a0c6c74b6f Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_stone_bricks_side.png differ diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_stone_bricks_top.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_stone_bricks_top.png new file mode 100644 index 0000000000..bdcc929648 Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_stone_bricks_top.png differ diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_stone_bricks_top.png.mcmeta b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_stone_bricks_top.png.mcmeta new file mode 100644 index 0000000000..19206a29a2 --- /dev/null +++ b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_stone_bricks_top.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 15, + "interpolate": true, + "frames": [ + 0, + 1, + 0, + 2, + 3, + 2 + ] + } +} diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_stone_side.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_stone_side.png new file mode 100644 index 0000000000..c303a646b7 Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_stone_side.png differ diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_stone_top.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_stone_top.png new file mode 100644 index 0000000000..65cd4297b3 Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_stone_top.png differ diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_stone_top.png.mcmeta b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_stone_top.png.mcmeta new file mode 100644 index 0000000000..19206a29a2 --- /dev/null +++ b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_stone_top.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 15, + "interpolate": true, + "frames": [ + 0, + 1, + 0, + 2, + 3, + 2 + ] + } +} diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_top.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_top.png new file mode 100644 index 0000000000..6ebf9db547 Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_top.png differ diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_top.png.mcmeta b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_top.png.mcmeta new file mode 100644 index 0000000000..19206a29a2 --- /dev/null +++ b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/entity/tnt_landmine_top.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 15, + "interpolate": true, + "frames": [ + 0, + 1, + 0, + 2, + 3, + 2 + ] + } +} diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/soft_defuser.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/soft_defuser.png new file mode 100644 index 0000000000..45b37836e7 Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/soft_defuser.png differ diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine.png new file mode 100644 index 0000000000..73b99d8fd6 Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine.png differ diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine_crafting_table.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine_crafting_table.png new file mode 100644 index 0000000000..c1ed0881c0 Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine_crafting_table.png differ diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine_dirt.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine_dirt.png new file mode 100644 index 0000000000..8ac29d4661 Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine_dirt.png differ diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine_grass.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine_grass.png new file mode 100644 index 0000000000..b71c20d0bb Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine_grass.png differ diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine_invisible.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine_invisible.png new file mode 100644 index 0000000000..2cadfdd702 Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine_invisible.png differ diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine_netherrack.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine_netherrack.png new file mode 100644 index 0000000000..26ce85a0f1 Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine_netherrack.png differ diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine_stone.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine_stone.png new file mode 100644 index 0000000000..cddb0114bd Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine_stone.png differ diff --git a/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine_stone_bricks.png b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine_stone_bricks.png new file mode 100644 index 0000000000..97adc5d67a Binary files /dev/null and b/gm4_tnt_landmines/assets/gm4_tnt_landmines/textures/item/tnt_landmine_stone_bricks.png differ diff --git a/gm4_tnt_landmines/assets/translations.csv b/gm4_tnt_landmines/assets/translations.csv new file mode 100644 index 0000000000..002a338b4a --- /dev/null +++ b/gm4_tnt_landmines/assets/translations.csv @@ -0,0 +1,16 @@ +key,en_us +advancement.gm4.tnt_landmines.description,Disarm a landmine +advancement.gm4.tnt_landmines.title,Bomb Defused +entity.gm4.tnt_landmine,a landmine +item.gm4.tnt_landmine,Landmine +item.gm4.tnt_landmine.disguised,Disguised as +item.gm4.tnt_landmine.invisible,Invisible +item.gm4.tnt_landmine.upgrade,Soft Defuser +item.gm4.tnt_landmine.use,Drop to use +text.gm4.guidebook.module_desc.tnt_landmines,"Craft 'em up, throw 'em down, blow 'em up! But be careful not to blow yourself up!" +text.gm4.guidebook.tnt_landmines.description,"Landmines can be crafted in a Custom Crafter with tnt and some redstone.\n\nWhen stepping on a landmine or breaking the block it's planted in, it will explode." +text.gm4.guidebook.tnt_landmines.crafting,The recipe for a Landmine is as follows: +text.gm4.guidebook.tnt_landmines.usage,"Landmines can be armed by dropping them on the ground.\n\nThey can be disabled by dropping shears or a Soft Defuser, which will cause the landmine to spray instant damage instead of exploding." +text.gm4.guidebook.tnt_landmines.defusing,A soft defuser can be crafted like so: +text.gm4.guidebook.tnt_landmines.disguised_landmine_crafting,Landmines can also be crafted with disguised materials. +text.gm4.guidebook.tnt_landmines.disguised_landmine_types,"Landmines can be disguised as crafting tables, dirt, grass blocks, netherrack, stone bricks, and stone.\n\nIf diamonds are used as the disguiser, it will be invisible and only display particles." diff --git a/gm4_tnt_landmines/beet.yaml b/gm4_tnt_landmines/beet.yaml index 32713d0c4d..1b8e778c44 100644 --- a/gm4_tnt_landmines/beet.yaml +++ b/gm4_tnt_landmines/beet.yaml @@ -5,7 +5,11 @@ version: 1.5.X data_pack: load: . +resource_pack: + load: . + pipeline: + - gm4_tnt_landmines.landmine_model - gm4.plugins.extend.module - gm4.plugins.include.lib_player_heads - gm4.plugins.include.lib_custom_crafters @@ -17,6 +21,40 @@ meta: lib_custom_crafters: 3.0.0 lib_player_heads: 1.1.0 schedule_loops: [main] + model_data: + - item: player_head + template: generated + broadcast: + - reference: item/tnt_landmine + - reference: item/tnt_landmine_crafting_table + - reference: item/tnt_landmine_dirt + - reference: item/tnt_landmine_grass + - reference: item/tnt_landmine_invisible + - reference: item/tnt_landmine_netherrack + - reference: item/tnt_landmine_stone_bricks + - reference: item/tnt_landmine_stone + - item: gunpowder + template: generated + reference: item/soft_defuser + - template: tnt_landmines:landmine + broadcast: + - item: tnt + reference: entity/tnt_landmine + - item: crafting_table + reference: entity/tnt_landmine_crafting_table + - item: dirt + reference: entity/tnt_landmine_dirt + - item: grass_block + reference: entity/tnt_landmine_grass + - item: netherrack + reference: entity/tnt_landmine_netherrack + - item: stone_bricks + reference: entity/tnt_landmine_stone_bricks + - item: stone + reference: entity/tnt_landmine_stone + - item: shears + reference: gui/advancement/tnt_landmines + template: advancement website: description: Craft 'em up, throw 'em down, blow 'em up! But be careful not to blow yourself up! recommended: [] diff --git a/gm4_tnt_landmines/data/gm4/advancements/tnt_landmines.json b/gm4_tnt_landmines/data/gm4/advancements/tnt_landmines.json index 4767e8dcbb..a92a28a259 100644 --- a/gm4_tnt_landmines/data/gm4/advancements/tnt_landmines.json +++ b/gm4_tnt_landmines/data/gm4/advancements/tnt_landmines.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "shears", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/tnt_landmines'}" }, "title": { "translate": "advancement.gm4.tnt_landmines.title", diff --git a/gm4_tnt_landmines/data/gm4_tnt_landmines/functions/init.mcfunction b/gm4_tnt_landmines/data/gm4_tnt_landmines/functions/init.mcfunction index 2e57ae4abe..9409967b0a 100644 --- a/gm4_tnt_landmines/data/gm4_tnt_landmines/functions/init.mcfunction +++ b/gm4_tnt_landmines/data/gm4_tnt_landmines/functions/init.mcfunction @@ -11,14 +11,14 @@ schedule function gm4_tnt_landmines:main 10t schedule function gm4_tnt_landmines:tick 1t # register skulls -execute unless data storage gm4_player_heads:register heads[{id:"gm4_tnt_landmines:tnt_landmine/default/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_tnt_landmines:tnt_landmine/default/v0",value:'eyJ0aW1lc3RhbXAiOjE1NTQ0NzQxMDExMjEsInByb2ZpbGVJZCI6IjU3MGIwNWJhMjZmMzRhOGViZmRiODBlY2JjZDdlNjIwIiwicHJvZmlsZU5hbWUiOiJMb3JkU29ubnkiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2RkZWM2M2RlNWY4MmYyM2ExNTdmNTVkYTcyMmFiOTI3NDgzZTdkODk4YmU5MDg3MzQwOTE5ODZlNjY1MWQ4YTgifX19',item:{CustomModelData:3420040,gm4_tnt_landmines:{item:"landmine",block:"minecraft:tnt"},display:{Lore:['{"translate":"item.gm4.tnt_landmine.use","fallback":"Drop to use","color":"dark_gray","italic":true}'],Name:'{"italic":false,"translate":"item.gm4.tnt_landmine","fallback":"Landmine"}'}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_tnt_landmines:tnt_landmine/grass_block/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_tnt_landmines:tnt_landmine/grass_block/v0",value:'eyJ0aW1lc3RhbXAiOjE1NTQ0NzQwMDkwMDUsInByb2ZpbGVJZCI6IjNmYzdmZGY5Mzk2MzRjNDE5MTE5OWJhM2Y3Y2MzZmVkIiwicHJvZmlsZU5hbWUiOiJZZWxlaGEiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzZiMzBmZTgxYWZlNTI2NjkxZGM1MDlhYzEwN2EzYjNjYTk1NTdjNDExZmYwZGMyZmNiNWE4YTlkNzc1ZTk0ODMifX19',item:{CustomModelData:3420041,gm4_tnt_landmines:{item:"landmine",block:"minecraft:grass_block"},display:{Lore:['[{"translate":"item.gm4.tnt_landmine.disguised","fallback":"Disguised as ","color":"gray","italic":false},{"translate":"block.minecraft.grass_block","color":"gray","italic":false}]','{"translate":"item.gm4.tnt_landmine.use","fallback":"Drop to use","color":"dark_gray","italic":true}'],Name:'{"italic":false,"translate":"item.gm4.tnt_landmine","fallback":"Landmine"}'}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_tnt_landmines:tnt_landmine/dirt/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_tnt_landmines:tnt_landmine/dirt/v0",value:'eyJ0aW1lc3RhbXAiOjE1NTQ0NzQ0MjA4NDgsInByb2ZpbGVJZCI6IjkxZjA0ZmU5MGYzNjQzYjU4ZjIwZTMzNzVmODZkMzllIiwicHJvZmlsZU5hbWUiOiJTdG9ybVN0b3JteSIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGI1Mzc5ZjE2NWE1Y2M3YmI4YzM4MmZlOTJlMjRlODYwN2NiODU1Y2FjNmU4M2Q4NjJjNjBlZmNlZTA5MTE3NSJ9fX0=',item:{CustomModelData:3420042,gm4_tnt_landmines:{item:"landmine",block:"minecraft:dirt"},display:{Lore:['[{"translate":"item.gm4.tnt_landmine.disguised","fallback":"Disguised as ","color":"gray","italic":false},{"translate":"block.minecraft.dirt","color":"gray","italic":false}]','{"translate":"item.gm4.tnt_landmine.use","fallback":"Drop to use","color":"dark_gray","italic":true}'],Name:'{"italic":false,"translate":"item.gm4.tnt_landmine","fallback":"Landmine"}'}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_tnt_landmines:tnt_landmine/stone/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_tnt_landmines:tnt_landmine/stone/v0",value:'eyJ0aW1lc3RhbXAiOjE1NTQ0NzQxODg2MTMsInByb2ZpbGVJZCI6IjNmYzdmZGY5Mzk2MzRjNDE5MTE5OWJhM2Y3Y2MzZmVkIiwicHJvZmlsZU5hbWUiOiJZZWxlaGEiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzNjNjk4ZTE5MDllMWI4MzMxYmVhOGQ1YzU3N2NkMGM2M2I4YWVjMDFmYjg4ZjY0OWUwMGYwZmU5NjY1NDdjNWIifX19',item:{CustomModelData:3420043,gm4_tnt_landmines:{item:"landmine",block:"minecraft:stone"},display:{Lore:['[{"translate":"item.gm4.tnt_landmine.disguised","fallback":"Disguised as ","color":"gray","italic":false},{"translate":"block.minecraft.stone","color":"gray","italic":false}]','{"translate":"item.gm4.tnt_landmine.use","fallback":"Drop to use","color":"dark_gray","italic":true}'],Name:'{"italic":false,"translate":"item.gm4.tnt_landmine","fallback":"Landmine"}'}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_tnt_landmines:tnt_landmine/stone_bricks/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_tnt_landmines:tnt_landmine/stone_bricks/v0",value:'eyJ0aW1lc3RhbXAiOjE1NTQ0NzQyMjMxMzEsInByb2ZpbGVJZCI6ImIwZDczMmZlMDBmNzQwN2U5ZTdmNzQ2MzAxY2Q5OGNhIiwicHJvZmlsZU5hbWUiOiJPUHBscyIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDJhOGE5NDk5MjE5NTk1NzEyYjI1ODdlZmViMzViMWY2NTU2ZGExMmIzZWU4ODI5NGUwMzk0MDM0YmZjMjhlOCJ9fX0=',item:{CustomModelData:3420044,gm4_tnt_landmines:{item:"landmine",block:"minecraft:stone_bricks"},display:{Lore:['[{"translate":"item.gm4.tnt_landmine.disguised","fallback":"Disguised as ","color":"gray","italic":false},{"translate":"block.minecraft.stone_bricks","color":"gray","italic":false}]','{"translate":"item.gm4.tnt_landmine.use","fallback":"Drop to use","color":"dark_gray","italic":true}'],Name:'{"italic":false,"translate":"item.gm4.tnt_landmine","fallback":"Landmine"}'}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_tnt_landmines:tnt_landmine/crafting_table/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_tnt_landmines:tnt_landmine/crafting_table/v0",value:'eyJ0aW1lc3RhbXAiOjE1NTQ0NzQyODI1NTUsInByb2ZpbGVJZCI6Ijc1MTQ0NDgxOTFlNjQ1NDY4Yzk3MzlhNmUzOTU3YmViIiwicHJvZmlsZU5hbWUiOiJUaGFua3NNb2phbmciLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzY2ODBmZmEyMTE5MzAwZGU2NWQzNjE4ODVkNjE0YjNlYTM3Y2QwODhiODc5OTAzMjc0MzNkNGMxMWU1ZjNjNSJ9fX0=',item:{CustomModelData:3420045,gm4_tnt_landmines:{item:"landmine",block:"minecraft:crafting_table"},display:{Lore:['[{"translate":"item.gm4.tnt_landmine.disguised","fallback":"Disguised as ","color":"gray","italic":false},{"translate":"block.minecraft.crafting_table","color":"gray","italic":false}]','{"translate":"item.gm4.tnt_landmine.use","fallback":"Drop to use","color":"dark_gray","italic":true}'],Name:'{"italic":false,"translate":"item.gm4.tnt_landmine","fallback":"Landmine"}'}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_tnt_landmines:tnt_landmine/netherrack/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_tnt_landmines:tnt_landmine/netherrack/v0",value:'eyJ0aW1lc3RhbXAiOjE1NTQ0NzQzNDQyNzYsInByb2ZpbGVJZCI6IjVkMjRiYTBiMjg4YzQyOTM4YmExMGVjOTkwNjRkMjU5IiwicHJvZmlsZU5hbWUiOiIxbnYzbnQxdjN0NGwzbnQiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzIwYmVlZWE4OTQ1MzAxOGMzNTVmZGZjZTg5YTM1ZTEyOGUwOWQyMzRlNWY5MGU0YzE4ZWE3MDI5NDYxOTFmNjIifX19',item:{CustomModelData:3420046,gm4_tnt_landmines:{item:"landmine",block:"minecraft:netherrack"},display:{Lore:['[{"translate":"item.gm4.tnt_landmine.disguised","fallback":"Disguised as ","color":"gray","italic":false},{"translate":"block.minecraft.netherrack","color":"gray","italic":false}]','{"translate":"item.gm4.tnt_landmine.use","fallback":"Drop to use","color":"dark_gray","italic":true}'],Name:'{"italic":false,"translate":"item.gm4.tnt_landmine","fallback":"Landmine"}'}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_tnt_landmines:tnt_landmine/invisible/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_tnt_landmines:tnt_landmine/invisible/v0",value:'eyJ0aW1lc3RhbXAiOjE1NTQ0NzQzODQ0NTUsInByb2ZpbGVJZCI6IjU3MGIwNWJhMjZmMzRhOGViZmRiODBlY2JjZDdlNjIwIiwicHJvZmlsZU5hbWUiOiJMb3JkU29ubnkiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzVlY2NhZmZlN2UwMWJjNjFiNjdmMDZkNGRmNjU2ZjQxZjdjMGJkODE3NzllNjFkMmEzYjk2YjE0MDVlYWQ1ODYifX19',item:{CustomModelData:3420047,gm4_tnt_landmines:{item:"landmine",block:"minecraft:air"},display:{Lore:['{"translate":"item.gm4.tnt_landmine.invisible","fallback":"Invisible","color":"gray","italic":false}','{"translate":"item.gm4.tnt_landmine.use","fallback":"Drop to use","color":"dark_gray","italic":true}'],Name:'{"italic":false,"translate":"item.gm4.tnt_landmine","fallback":"Landmine"}'}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_tnt_landmines:tnt_landmine/default/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_tnt_landmines:tnt_landmine/default/v0",value:'eyJ0aW1lc3RhbXAiOjE1NTQ0NzQxMDExMjEsInByb2ZpbGVJZCI6IjU3MGIwNWJhMjZmMzRhOGViZmRiODBlY2JjZDdlNjIwIiwicHJvZmlsZU5hbWUiOiJMb3JkU29ubnkiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2RkZWM2M2RlNWY4MmYyM2ExNTdmNTVkYTcyMmFiOTI3NDgzZTdkODk4YmU5MDg3MzQwOTE5ODZlNjY1MWQ4YTgifX19',item:{CustomModelData:"item/tnt_landmine",gm4_tnt_landmines:{item:"landmine",block:"minecraft:tnt"},display:{Lore:['{"translate":"item.gm4.tnt_landmine.use","fallback":"Drop to use","color":"dark_gray","italic":true}'],Name:'{"italic":false,"translate":"item.gm4.tnt_landmine","fallback":"Landmine"}'}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_tnt_landmines:tnt_landmine/grass_block/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_tnt_landmines:tnt_landmine/grass_block/v0",value:'eyJ0aW1lc3RhbXAiOjE1NTQ0NzQwMDkwMDUsInByb2ZpbGVJZCI6IjNmYzdmZGY5Mzk2MzRjNDE5MTE5OWJhM2Y3Y2MzZmVkIiwicHJvZmlsZU5hbWUiOiJZZWxlaGEiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzZiMzBmZTgxYWZlNTI2NjkxZGM1MDlhYzEwN2EzYjNjYTk1NTdjNDExZmYwZGMyZmNiNWE4YTlkNzc1ZTk0ODMifX19',item:{CustomModelData:"item/tnt_landmine_grass",gm4_tnt_landmines:{item:"landmine",block:"minecraft:grass_block"},display:{Lore:['[{"translate":"item.gm4.tnt_landmine.disguised","fallback":"Disguised as ","color":"gray","italic":false},{"translate":"block.minecraft.grass_block","color":"gray","italic":false}]','{"translate":"item.gm4.tnt_landmine.use","fallback":"Drop to use","color":"dark_gray","italic":true}'],Name:'{"italic":false,"translate":"item.gm4.tnt_landmine","fallback":"Landmine"}'}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_tnt_landmines:tnt_landmine/dirt/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_tnt_landmines:tnt_landmine/dirt/v0",value:'eyJ0aW1lc3RhbXAiOjE1NTQ0NzQ0MjA4NDgsInByb2ZpbGVJZCI6IjkxZjA0ZmU5MGYzNjQzYjU4ZjIwZTMzNzVmODZkMzllIiwicHJvZmlsZU5hbWUiOiJTdG9ybVN0b3JteSIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGI1Mzc5ZjE2NWE1Y2M3YmI4YzM4MmZlOTJlMjRlODYwN2NiODU1Y2FjNmU4M2Q4NjJjNjBlZmNlZTA5MTE3NSJ9fX0=',item:{CustomModelData:"item/tnt_landmine_dirt",gm4_tnt_landmines:{item:"landmine",block:"minecraft:dirt"},display:{Lore:['[{"translate":"item.gm4.tnt_landmine.disguised","fallback":"Disguised as ","color":"gray","italic":false},{"translate":"block.minecraft.dirt","color":"gray","italic":false}]','{"translate":"item.gm4.tnt_landmine.use","fallback":"Drop to use","color":"dark_gray","italic":true}'],Name:'{"italic":false,"translate":"item.gm4.tnt_landmine","fallback":"Landmine"}'}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_tnt_landmines:tnt_landmine/stone/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_tnt_landmines:tnt_landmine/stone/v0",value:'eyJ0aW1lc3RhbXAiOjE1NTQ0NzQxODg2MTMsInByb2ZpbGVJZCI6IjNmYzdmZGY5Mzk2MzRjNDE5MTE5OWJhM2Y3Y2MzZmVkIiwicHJvZmlsZU5hbWUiOiJZZWxlaGEiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzNjNjk4ZTE5MDllMWI4MzMxYmVhOGQ1YzU3N2NkMGM2M2I4YWVjMDFmYjg4ZjY0OWUwMGYwZmU5NjY1NDdjNWIifX19',item:{CustomModelData:"item/tnt_landmine_stone",gm4_tnt_landmines:{item:"landmine",block:"minecraft:stone"},display:{Lore:['[{"translate":"item.gm4.tnt_landmine.disguised","fallback":"Disguised as ","color":"gray","italic":false},{"translate":"block.minecraft.stone","color":"gray","italic":false}]','{"translate":"item.gm4.tnt_landmine.use","fallback":"Drop to use","color":"dark_gray","italic":true}'],Name:'{"italic":false,"translate":"item.gm4.tnt_landmine","fallback":"Landmine"}'}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_tnt_landmines:tnt_landmine/stone_bricks/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_tnt_landmines:tnt_landmine/stone_bricks/v0",value:'eyJ0aW1lc3RhbXAiOjE1NTQ0NzQyMjMxMzEsInByb2ZpbGVJZCI6ImIwZDczMmZlMDBmNzQwN2U5ZTdmNzQ2MzAxY2Q5OGNhIiwicHJvZmlsZU5hbWUiOiJPUHBscyIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDJhOGE5NDk5MjE5NTk1NzEyYjI1ODdlZmViMzViMWY2NTU2ZGExMmIzZWU4ODI5NGUwMzk0MDM0YmZjMjhlOCJ9fX0=',item:{CustomModelData:"item/tnt_landmine_stone_bricks",gm4_tnt_landmines:{item:"landmine",block:"minecraft:stone_bricks"},display:{Lore:['[{"translate":"item.gm4.tnt_landmine.disguised","fallback":"Disguised as ","color":"gray","italic":false},{"translate":"block.minecraft.stone_bricks","color":"gray","italic":false}]','{"translate":"item.gm4.tnt_landmine.use","fallback":"Drop to use","color":"dark_gray","italic":true}'],Name:'{"italic":false,"translate":"item.gm4.tnt_landmine","fallback":"Landmine"}'}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_tnt_landmines:tnt_landmine/crafting_table/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_tnt_landmines:tnt_landmine/crafting_table/v0",value:'eyJ0aW1lc3RhbXAiOjE1NTQ0NzQyODI1NTUsInByb2ZpbGVJZCI6Ijc1MTQ0NDgxOTFlNjQ1NDY4Yzk3MzlhNmUzOTU3YmViIiwicHJvZmlsZU5hbWUiOiJUaGFua3NNb2phbmciLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzY2ODBmZmEyMTE5MzAwZGU2NWQzNjE4ODVkNjE0YjNlYTM3Y2QwODhiODc5OTAzMjc0MzNkNGMxMWU1ZjNjNSJ9fX0=',item:{CustomModelData:"item/tnt_landmine_crafting_table",gm4_tnt_landmines:{item:"landmine",block:"minecraft:crafting_table"},display:{Lore:['[{"translate":"item.gm4.tnt_landmine.disguised","fallback":"Disguised as ","color":"gray","italic":false},{"translate":"block.minecraft.crafting_table","color":"gray","italic":false}]','{"translate":"item.gm4.tnt_landmine.use","fallback":"Drop to use","color":"dark_gray","italic":true}'],Name:'{"italic":false,"translate":"item.gm4.tnt_landmine","fallback":"Landmine"}'}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_tnt_landmines:tnt_landmine/netherrack/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_tnt_landmines:tnt_landmine/netherrack/v0",value:'eyJ0aW1lc3RhbXAiOjE1NTQ0NzQzNDQyNzYsInByb2ZpbGVJZCI6IjVkMjRiYTBiMjg4YzQyOTM4YmExMGVjOTkwNjRkMjU5IiwicHJvZmlsZU5hbWUiOiIxbnYzbnQxdjN0NGwzbnQiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzIwYmVlZWE4OTQ1MzAxOGMzNTVmZGZjZTg5YTM1ZTEyOGUwOWQyMzRlNWY5MGU0YzE4ZWE3MDI5NDYxOTFmNjIifX19',item:{CustomModelData:"item/tnt_landmine_netherrack",gm4_tnt_landmines:{item:"landmine",block:"minecraft:netherrack"},display:{Lore:['[{"translate":"item.gm4.tnt_landmine.disguised","fallback":"Disguised as ","color":"gray","italic":false},{"translate":"block.minecraft.netherrack","color":"gray","italic":false}]','{"translate":"item.gm4.tnt_landmine.use","fallback":"Drop to use","color":"dark_gray","italic":true}'],Name:'{"italic":false,"translate":"item.gm4.tnt_landmine","fallback":"Landmine"}'}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_tnt_landmines:tnt_landmine/invisible/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_tnt_landmines:tnt_landmine/invisible/v0",value:'eyJ0aW1lc3RhbXAiOjE1NTQ0NzQzODQ0NTUsInByb2ZpbGVJZCI6IjU3MGIwNWJhMjZmMzRhOGViZmRiODBlY2JjZDdlNjIwIiwicHJvZmlsZU5hbWUiOiJMb3JkU29ubnkiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzVlY2NhZmZlN2UwMWJjNjFiNjdmMDZkNGRmNjU2ZjQxZjdjMGJkODE3NzllNjFkMmEzYjk2YjE0MDVlYWQ1ODYifX19',item:{CustomModelData:"item/tnt_landmine_invisible",gm4_tnt_landmines:{item:"landmine",block:"minecraft:air"},display:{Lore:['{"translate":"item.gm4.tnt_landmine.invisible","fallback":"Invisible","color":"gray","italic":false}','{"translate":"item.gm4.tnt_landmine.use","fallback":"Drop to use","color":"dark_gray","italic":true}'],Name:'{"italic":false,"translate":"item.gm4.tnt_landmine","fallback":"Landmine"}'}}} diff --git a/gm4_tnt_landmines/data/gm4_tnt_landmines/guidebook/tnt_landmines.json b/gm4_tnt_landmines/data/gm4_tnt_landmines/guidebook/tnt_landmines.json index 50028cb753..3cc640a315 100644 --- a/gm4_tnt_landmines/data/gm4_tnt_landmines/guidebook/tnt_landmines.json +++ b/gm4_tnt_landmines/data/gm4_tnt_landmines/guidebook/tnt_landmines.json @@ -3,8 +3,7 @@ "name": "TNT Landmines", "module_type": "module", "icon": { - "item": "minecraft:tnt", - "nbt": "{CustomModelData:3420004}" + "item": "minecraft:tnt" }, "criteria": { "obtain_tnt": { diff --git a/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/crafting_table_landmine.json b/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/crafting_table_landmine.json index 6464afb244..78121fb294 100644 --- a/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/crafting_table_landmine.json +++ b/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/crafting_table_landmine.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420045,gm4_tnt_landmines:{item:\"landmine\",block:\"minecraft:crafting_table\"},SkullOwner:\"$disguised/crafting_table\"}" + "tag": "{CustomModelData:'item/tnt_landmine_crafting_table',gm4_tnt_landmines:{item:\"landmine\",block:\"minecraft:crafting_table\"},SkullOwner:\"$disguised/crafting_table\"}" }, { "function": "minecraft:set_name", diff --git a/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/dirt_landmine.json b/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/dirt_landmine.json index a0c862a8f4..f1a95c775d 100644 --- a/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/dirt_landmine.json +++ b/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/dirt_landmine.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420042,gm4_tnt_landmines:{item:\"landmine\",block:\"minecraft:dirt\"},SkullOwner:\"$disguised/dirt\"}" + "tag": "{CustomModelData:'item/tnt_landmine_dirt',gm4_tnt_landmines:{item:\"landmine\",block:\"minecraft:dirt\"},SkullOwner:\"$disguised/dirt\"}" }, { "function": "minecraft:set_name", diff --git a/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/grass_landmine.json b/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/grass_landmine.json index fecd3f55a7..95bdfd8725 100644 --- a/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/grass_landmine.json +++ b/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/grass_landmine.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420041,gm4_tnt_landmines:{item:\"landmine\",block:\"minecraft:grass_block\"},SkullOwner:\"$disguised/grass\"}" + "tag": "{CustomModelData:'item/tnt_landmine_grass',gm4_tnt_landmines:{item:\"landmine\",block:\"minecraft:grass_block\"},SkullOwner:\"$disguised/grass\"}" }, { "function": "minecraft:set_name", diff --git a/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/invisible_landmine.json b/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/invisible_landmine.json index 4f49ed54b0..554fce82c3 100644 --- a/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/invisible_landmine.json +++ b/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/invisible_landmine.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420047,gm4_tnt_landmines:{item:\"landmine\",block:\"minecraft:air\"},SkullOwner:\"$disguised/invisible\"}" + "tag": "{CustomModelData:'item/tnt_landmine_invisible',gm4_tnt_landmines:{item:\"landmine\",block:\"minecraft:air\"},SkullOwner:\"$disguised/invisible\"}" }, { "function": "minecraft:set_name", diff --git a/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/netherrack_landmine.json b/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/netherrack_landmine.json index d0017a9485..3255f44a04 100644 --- a/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/netherrack_landmine.json +++ b/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/netherrack_landmine.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420046,gm4_tnt_landmines:{item:\"landmine\",block:\"minecraft:netherrack\"},SkullOwner:\"$disguised/netherrack\"}" + "tag": "{CustomModelData:'item/tnt_landmine_netherrack',gm4_tnt_landmines:{item:\"landmine\",block:\"minecraft:netherrack\"},SkullOwner:\"$disguised/netherrack\"}" }, { "function": "minecraft:set_name", diff --git a/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/soft_defuser.json b/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/soft_defuser.json index 872da02adb..4171c225e7 100644 --- a/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/soft_defuser.json +++ b/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/soft_defuser.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420002,gm4_tnt_landmines:{item:\"upgrade\"}}" + "tag": "{CustomModelData:'item/soft_defuser',gm4_tnt_landmines:{item:\"upgrade\"}}" }, { "function": "minecraft:set_name", diff --git a/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/stone_bricks_landmine.json b/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/stone_bricks_landmine.json index 5d51980594..f17d5721e6 100644 --- a/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/stone_bricks_landmine.json +++ b/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/stone_bricks_landmine.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420044,gm4_tnt_landmines:{item:\"landmine\",block:\"minecraft:stone_bricks\"},SkullOwner:\"$disguised/stone_bricks\"}" + "tag": "{CustomModelData:'item/tnt_landmine_stone_bricks',gm4_tnt_landmines:{item:\"landmine\",block:\"minecraft:stone_bricks\"},SkullOwner:\"$disguised/stone_bricks\"}" }, { "function": "minecraft:set_name", diff --git a/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/stone_landmine.json b/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/stone_landmine.json index e270b01aff..56947867d9 100644 --- a/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/stone_landmine.json +++ b/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/stone_landmine.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420043,gm4_tnt_landmines:{item:\"landmine\",block:\"minecraft:stone\"},SkullOwner:\"$disguised/stone\"}" + "tag": "{CustomModelData:'item/tnt_landmine_stone',gm4_tnt_landmines:{item:\"landmine\",block:\"minecraft:stone\"},SkullOwner:\"$disguised/stone\"}" }, { "function": "minecraft:set_name", diff --git a/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/tnt_landmine.json b/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/tnt_landmine.json index 34bf91d621..a6bf5f5d87 100644 --- a/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/tnt_landmine.json +++ b/gm4_tnt_landmines/data/gm4_tnt_landmines/loot_tables/items/tnt_landmine.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420040,gm4_tnt_landmines:{item:\"landmine\",block:\"minecraft:tnt\"},SkullOwner:\"$landmine\"}" + "tag": "{CustomModelData:'item/tnt_landmine',gm4_tnt_landmines:{item:\"landmine\",block:\"minecraft:tnt\"},SkullOwner:\"$landmine\"}" }, { "function": "minecraft:set_name", diff --git a/gm4_tnt_landmines/landmine_model.py b/gm4_tnt_landmines/landmine_model.py new file mode 100644 index 0000000000..bff48aac69 --- /dev/null +++ b/gm4_tnt_landmines/landmine_model.py @@ -0,0 +1,31 @@ +from beet import Context, Model, NamespaceProxy +from gm4.plugins.resource_pack import ModelData, TemplateOptions, ItemDisplayModel, ensure_single_model_config + +class LandmineTempalte(TemplateOptions): + name = "tnt_landmines:landmine" + texture_map = [] + + default_transforms = [ + ItemDisplayModel( + origin=[0.5,0.5,0.5], + scale=[0.438, 0.438, 0.438], + translation=[0,0.4,0] + ) + ] + + @classmethod + def process(cls, config: ModelData, models_container: NamespaceProxy[Model]) -> list[Model]: + model_name = ensure_single_model_config(cls.name, config) + variant = config.reference.split('/')[-1] + m = models_container[model_name] = Model({ + "parent": "gm4_tnt_landmines:entity/landmine", + "textures": { + "side": f"gm4_tnt_landmines:entity/{variant}_side", + "top": f"gm4_tnt_landmines:entity/{variant}_top", + "bottom": f"gm4_tnt_landmines:entity/tnt_landmine_bottom" + } + }) + return [m] + +def beet_default(ctx: Context): + pass diff --git a/gm4_tower_structures/beet.yaml b/gm4_tower_structures/beet.yaml index 8b4afab0ec..06961c23c1 100644 --- a/gm4_tower_structures/beet.yaml +++ b/gm4_tower_structures/beet.yaml @@ -14,6 +14,19 @@ meta: gm4: prefabs: - gm4_orbis + model_data: + - item: bow + reference: item/pirate_bow + template: vanilla + - item: leather_helmet + reference: item/pirate_hat + template: vanilla + - item: stone_sword + reference: item/pirate_sword + template: vanilla + - item: turtle_helmet + reference: item/pirate_turtle_helmet + template: vanilla website: description: A custom terrain expansion pack that adds four new tower structures to the world. recommended: diff --git a/gm4_tower_structures/data/gm4_tower_structures/guidebook/tower_structures.json b/gm4_tower_structures/data/gm4_tower_structures/guidebook/tower_structures.json index 724ac185b5..b5271fe16c 100644 --- a/gm4_tower_structures/data/gm4_tower_structures/guidebook/tower_structures.json +++ b/gm4_tower_structures/data/gm4_tower_structures/guidebook/tower_structures.json @@ -3,8 +3,7 @@ "name": "Tower Structures", "module_type": "module", "icon": { - "item": "minecraft:ladder", - "nbt": "{CustomModelData:3420003}" + "item": "minecraft:ladder" }, "criteria": { "enter_badlands_tower": { @@ -249,7 +248,7 @@ ], [ { - "translate": "text.gm4.guidebook.tower_structures.description", + "translate": "text.gm4.guidebook.tower_structures.description.types", "fallback": "Stone towers can be found in most biomes.\n\nThe Badlands, Desert, and Snowy biomes have special towers that match the terrain.\n\nOcean dungeons and ships can be found at sea." } ] diff --git a/gm4_tower_structures/data/gm4_tower_structures/loot_tables/items/pirate_bow.json b/gm4_tower_structures/data/gm4_tower_structures/loot_tables/items/pirate_bow.json index dabedab0bd..68d218ee15 100644 --- a/gm4_tower_structures/data/gm4_tower_structures/loot_tables/items/pirate_bow.json +++ b/gm4_tower_structures/data/gm4_tower_structures/loot_tables/items/pirate_bow.json @@ -13,7 +13,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420004}" + "tag": "{CustomModelData:'item/pirate_bow'}" }, { "function": "minecraft:set_name", diff --git a/gm4_tower_structures/data/gm4_tower_structures/loot_tables/items/pirate_hat.json b/gm4_tower_structures/data/gm4_tower_structures/loot_tables/items/pirate_hat.json index 6948f8cd59..702029117d 100644 --- a/gm4_tower_structures/data/gm4_tower_structures/loot_tables/items/pirate_hat.json +++ b/gm4_tower_structures/data/gm4_tower_structures/loot_tables/items/pirate_hat.json @@ -13,7 +13,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420002,display:{color:4013373},HideFlags:64}" + "tag": "{CustomModelData:'item/pirate_hat',display:{color:4013373},HideFlags:64}" }, { "function": "minecraft:set_name", diff --git a/gm4_tower_structures/data/gm4_tower_structures/loot_tables/items/pirate_sword.json b/gm4_tower_structures/data/gm4_tower_structures/loot_tables/items/pirate_sword.json index 5dd3beca69..8708784307 100644 --- a/gm4_tower_structures/data/gm4_tower_structures/loot_tables/items/pirate_sword.json +++ b/gm4_tower_structures/data/gm4_tower_structures/loot_tables/items/pirate_sword.json @@ -13,7 +13,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420002}" + "tag": "{CustomModelData:'item/pirate_sword'}" }, { "function": "minecraft:set_name", diff --git a/gm4_tower_structures/data/gm4_tower_structures/loot_tables/items/pirate_turtle_helmet.json b/gm4_tower_structures/data/gm4_tower_structures/loot_tables/items/pirate_turtle_helmet.json index 1a207335a7..a385f395a5 100644 --- a/gm4_tower_structures/data/gm4_tower_structures/loot_tables/items/pirate_turtle_helmet.json +++ b/gm4_tower_structures/data/gm4_tower_structures/loot_tables/items/pirate_turtle_helmet.json @@ -13,7 +13,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001}" + "tag": "{CustomModelData:'item/pirate_turtle_helmet'}" }, { "function": "minecraft:set_name", diff --git a/gm4_tower_structures/translations.csv b/gm4_tower_structures/translations.csv new file mode 100644 index 0000000000..ccdaf353a9 --- /dev/null +++ b/gm4_tower_structures/translations.csv @@ -0,0 +1,8 @@ +key,en_us +item.gm4.tower_structures.pirate_sword,Pirate Sword +item.gm4.tower_structures.pirate_turtle_helmet,Pirate Turtle Helmet +item.gm4.tower_structures.pirate_hat,Pirate Hat +item.gm4.tower_structures.pirate_bow,Pirate Bow +text.gm4.guidebook.module_desc.tower_structures,A custom terrain expansion pack that adds four new tower structures to the world. +text.gm4.guidebook.tower_structures.description,Towers can be found on the surface.\n\nThese towers contain rare loot and special spawners. +text.gm4.guidebook.tower_structures.description.types,"Stone towers can be found in most biomes.\n\nThe Badlands, Desert, and Snowy biomes have special towers that match the terrain.\n\nOcean dungeons and ships can be found at sea." diff --git a/gm4_trapped_signs/assets/gm4_trapped_signs/textures/item/trapped_hanging_sign_overlay.png b/gm4_trapped_signs/assets/gm4_trapped_signs/textures/item/trapped_hanging_sign_overlay.png new file mode 100644 index 0000000000..cc309b772f Binary files /dev/null and b/gm4_trapped_signs/assets/gm4_trapped_signs/textures/item/trapped_hanging_sign_overlay.png differ diff --git a/gm4_trapped_signs/assets/gm4_trapped_signs/textures/item/trapped_sign_overlay.png b/gm4_trapped_signs/assets/gm4_trapped_signs/textures/item/trapped_sign_overlay.png new file mode 100644 index 0000000000..a93579f150 Binary files /dev/null and b/gm4_trapped_signs/assets/gm4_trapped_signs/textures/item/trapped_sign_overlay.png differ diff --git a/gm4_trapped_signs/assets/translations.csv b/gm4_trapped_signs/assets/translations.csv new file mode 100644 index 0000000000..2635f8a9c9 --- /dev/null +++ b/gm4_trapped_signs/assets/translations.csv @@ -0,0 +1,9 @@ +key,en_us +item.gm4.trapped_sign,Trapped %s +item.gm4.trapped_sign.secret,Secret Trapped %s +text.gm4.guidebook.module_desc.trapped_signs,"Craft trapped signs in a Custom Crafter which, when right-clicked, give off a redstone signal." +text.gm4.guidebook.trapped_signs.description,"Trapped Signs can be used to activate redstone, similar to Trapped Chests.\n\nTrapped signs can be crafted in a Custom Crafter with some redstone components." +text.gm4.guidebook.trapped_signs.crafting,The recipe for trapped signs can use any sign type: +text.gm4.guidebook.shapeless,Recipe is shapeless +text.gm4.guidebook.trapped_signs.setup,"Placing a trapped sign and writing some text on it will activate it.\n\nThe last line of the sign will become ""-x-"" for a normal trapped sign and empty for a secret trapped sign." +text.gm4.guidebook.trapped_signs.usage,"Pressing on a trapped sign will activate adjacent redstone dust with a signal strength of 1 for 1 tick.\n\nIf the sign is on a wall, it will instead activate redstone duct adjacent to the block it's on." diff --git a/gm4_trapped_signs/beet.yaml b/gm4_trapped_signs/beet.yaml index 2b4bc101ef..77720ba2d2 100644 --- a/gm4_trapped_signs/beet.yaml +++ b/gm4_trapped_signs/beet.yaml @@ -5,7 +5,11 @@ version: 1.3.X data_pack: load: . +resource_pack: + load: . + pipeline: + - gm4_trapped_signs.trapped_sign_model - gm4_trapped_signs.generate_types - gm4.plugins.extend.module - gm4.plugins.include.lib_custom_crafters diff --git a/gm4_trapped_signs/data/gm4_trapped_signs/guidebook/trapped_signs.json b/gm4_trapped_signs/data/gm4_trapped_signs/guidebook/trapped_signs.json index dbf9070e05..51013f85ef 100644 --- a/gm4_trapped_signs/data/gm4_trapped_signs/guidebook/trapped_signs.json +++ b/gm4_trapped_signs/data/gm4_trapped_signs/guidebook/trapped_signs.json @@ -3,8 +3,7 @@ "name": "Trapped Signs", "module_type": "module", "icon": { - "item": "minecraft:oak_sign", - "nbt": "{CustomModelData:3420003}" + "item": "minecraft:oak_sign" }, "criteria": { "obtain_sign": { diff --git a/gm4_trapped_signs/generate_types.py b/gm4_trapped_signs/generate_types.py index 89a76bfd79..3dad6348fc 100644 --- a/gm4_trapped_signs/generate_types.py +++ b/gm4_trapped_signs/generate_types.py @@ -23,6 +23,17 @@ def beet_default(ctx: Context): item = f"{type}_{'hanging_' if hanging else ''}sign" name = f"{'secret_' if secret else ''}trapped_{item}" + ctx.meta["gm4"].setdefault("model_data", []).append( + { + "item": item, + "reference": f"item/{name}", + "template": { + "name": "trapped_signs:sign_overlay", + "hanging": hanging + } + } + ) + ctx.data[f"{ctx.project_id}:items/{name}"] = LootTable({ "pools": [{ "rolls": 1, @@ -32,7 +43,7 @@ def beet_default(ctx: Context): "functions": [ { "function": "minecraft:set_nbt", - "tag": f"{'{'}CustomModelData:3420002,gm4_{'secret_' if secret else ''}trapped_sign:1b,HideFlags:1,Enchantments:[{'{'}id:'minecraft:protection',lvl:0s{'}'}]{'}'}" + "tag": f"{'{'}CustomModelData:'item/{name}',gm4_{'secret_' if secret else ''}trapped_sign:1b,HideFlags:1,Enchantments:[{'{'}id:'minecraft:protection',lvl:0s{'}'}]{'}'}" }, { "function": "minecraft:set_name", diff --git a/gm4_trapped_signs/trapped_sign_model.py b/gm4_trapped_signs/trapped_sign_model.py new file mode 100644 index 0000000000..67b11a87ea --- /dev/null +++ b/gm4_trapped_signs/trapped_sign_model.py @@ -0,0 +1,22 @@ +from beet import Context, Model, NamespaceProxy +from gm4.plugins.resource_pack import ModelData, TemplateOptions, ensure_single_model_config + +class TrappedSignTemplate(TemplateOptions): + """Generates the models for trapped signs, putting a shared overlay atop the vanilla sign texture""" + name = "trapped_signs:sign_overlay" + hanging: bool + + def process(self, config: ModelData, models_container: NamespaceProxy[Model]) -> list[Model]: + model_name = ensure_single_model_config(self.name, config) + m = models_container[model_name] = Model({ + "parent": f"minecraft:item/{config.item.entries()[0]}", + "textures": { + # "layer0": inherited from the vanilla model + "layer1": "gm4_trapped_signs:item/trapped_hanging_sign_overlay" if self.hanging else "gm4_trapped_signs:item/trapped_sign_overlay" + } + }) + return [m] + +def beet_default(ctx: Context): + # in the future, the models and loot tables should be generated automatically from all the vanilla sign types + pass diff --git a/gm4_tunnel_bores/assets/gm4_tunnel_bores/textures/item/piston_minecart.png b/gm4_tunnel_bores/assets/gm4_tunnel_bores/textures/item/piston_minecart.png new file mode 100644 index 0000000000..0eee24a75f Binary files /dev/null and b/gm4_tunnel_bores/assets/gm4_tunnel_bores/textures/item/piston_minecart.png differ diff --git a/gm4_tunnel_bores/assets/translations.csv b/gm4_tunnel_bores/assets/translations.csv new file mode 100644 index 0000000000..876eae2ff0 --- /dev/null +++ b/gm4_tunnel_bores/assets/translations.csv @@ -0,0 +1,11 @@ +key,en_us +item.gm4.minecart.bore,Minecart with Piston +advancement.gm4.tunnel_bores.title,"Isn't It ""Groundbreaking""?" +advancement.gm4.tunnel_bores.description,Obtain a Minecart with Piston +text.gm4.guidebook.module_desc.tunnel_bores,"Ever wondered how mineshafts came to be? This is it! Tunnel Bores allow you to easily dig 3\u2a093 tunnels, and even lay rails behind themselves." +text.gm4.guidebook.tunnel_bores.description,"Tunnel Bores can be crafted to aid in excavation. Piston Minecarts will break blocks and place rails, moving forward.\n\nThey can be crafted in a Custom Crafter." +text.gm4.guidebook.tunnel_bores.crafting,Tunnel bores can be crafted as follows: +text.gm4.guidebook.shapeless,Recipe is shapeless +text.gm4.guidebook.tunnel_bores.start_up,"Piston Minecarts are upgraded furnace minecarts and require coal as fuel. To start the bore, use a piece of coal on the bore.\n\nPiston Minecarts will mine piston-movable blocks in a 3x3 area centered at the block above it." +text.gm4.guidebook.tunnel_bores.supply,These tunnel bores can place rails on solid blocks in front of it.\n\nChest Minecarts can be attached to supply the Piston Minecart with rails and coal. +text.gm4.guidebook.tunnel_bores.mining,"Tunnel bores will continuously mine blocks when it hits a breakable block, but will always try to mine and refuel when on a powered activator rail.\n\nThis makes it possible to keep a stationary bore." diff --git a/gm4_tunnel_bores/beet.yaml b/gm4_tunnel_bores/beet.yaml index 404410d7fa..6c16c9ffe2 100644 --- a/gm4_tunnel_bores/beet.yaml +++ b/gm4_tunnel_bores/beet.yaml @@ -10,6 +10,9 @@ data_pack: max_inclusive: 26 directory: overlay_26 +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module - gm4.plugins.include.lib_machines @@ -22,6 +25,15 @@ meta: lib_custom_crafters: 3.0.0 lib_machines: 1.1.0 schedule_loops: [pulse_check] + model_data: + - item: furnace_minecart + reference: item/piston_minecart + template: generated + - item: piston + reference: gui/advancement/tunnel_bores + template: + name: advancement + forward: item/piston_minecart website: description: Ever wondered how mineshafts came to be? This is it! Tunnel Bores allow you to easily dig 3⨉3 tunnels, and even lay rails behind themselves. recommended: diff --git a/gm4_tunnel_bores/data/gm4/advancements/tunnel_bores.json b/gm4_tunnel_bores/data/gm4/advancements/tunnel_bores.json index 13f00bd0fb..37bb1ac42c 100644 --- a/gm4_tunnel_bores/data/gm4/advancements/tunnel_bores.json +++ b/gm4_tunnel_bores/data/gm4/advancements/tunnel_bores.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "piston", - "nbt": "{CustomModelData:3420002}" + "nbt": "{CustomModelData:'gui/advancement/tunnel_bores'}" }, "title": { "translate": "advancement.gm4.tunnel_bores.title", diff --git a/gm4_tunnel_bores/data/gm4_tunnel_bores/guidebook/tunnel_bores.json b/gm4_tunnel_bores/data/gm4_tunnel_bores/guidebook/tunnel_bores.json index a3b8989f02..6a9f2c89ed 100644 --- a/gm4_tunnel_bores/data/gm4_tunnel_bores/guidebook/tunnel_bores.json +++ b/gm4_tunnel_bores/data/gm4_tunnel_bores/guidebook/tunnel_bores.json @@ -3,8 +3,7 @@ "name": "Tunnel Bores", "module_type": "module", "icon": { - "item": "minecraft:piston", - "nbt": "{CustomModelData:3420004}" + "item": "minecraft:piston" }, "criteria": { "obtain_minecart": { diff --git a/gm4_tunnel_bores/data/gm4_tunnel_bores/loot_tables/items/piston_minecart.json b/gm4_tunnel_bores/data/gm4_tunnel_bores/loot_tables/items/piston_minecart.json index 1c1291e1c3..6215df92dd 100644 --- a/gm4_tunnel_bores/data/gm4_tunnel_bores/loot_tables/items/piston_minecart.json +++ b/gm4_tunnel_bores/data/gm4_tunnel_bores/loot_tables/items/piston_minecart.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_machines:{id:\"tunnel_bore\"}}" + "tag": "{CustomModelData:'item/piston_minecart',gm4_machines:{id:\"tunnel_bore\"}}" }, { "function": "minecraft:set_name", diff --git a/gm4_undead_players/beet.yaml b/gm4_undead_players/beet.yaml index 59332255a0..d4293eaf95 100644 --- a/gm4_undead_players/beet.yaml +++ b/gm4_undead_players/beet.yaml @@ -15,6 +15,10 @@ meta: required: lib_player_death: 1.0.0 schedule_loops: [main] + model_data: + - item: zombie_head + reference: gui/advancement/undead_players + template: advancement website: description: You'll find your death point faster, but you'll have to fight your corpse for your stuff back! recommended: [] diff --git a/gm4_undead_players/data/gm4/advancements/undead_players.json b/gm4_undead_players/data/gm4/advancements/undead_players.json index 00b85c54a5..ab13c1cb23 100644 --- a/gm4_undead_players/data/gm4/advancements/undead_players.json +++ b/gm4_undead_players/data/gm4/advancements/undead_players.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "zombie_head", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/undead_players'}" }, "title": { "translate": "advancement.gm4.undead_players.title", diff --git a/gm4_undead_players/data/gm4_undead_players/guidebook/undead_players.json b/gm4_undead_players/data/gm4_undead_players/guidebook/undead_players.json index fc12330c2b..1394540da6 100644 --- a/gm4_undead_players/data/gm4_undead_players/guidebook/undead_players.json +++ b/gm4_undead_players/data/gm4_undead_players/guidebook/undead_players.json @@ -3,8 +3,7 @@ "name": "Undead Players", "module_type": "module", "icon": { - "item": "minecraft:rotten_flesh", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:rotten_flesh" }, "criteria": { "summon_undead_player": { diff --git a/gm4_undead_players/translations.csv b/gm4_undead_players/translations.csv new file mode 100644 index 0000000000..13705fec74 --- /dev/null +++ b/gm4_undead_players/translations.csv @@ -0,0 +1,8 @@ +key,en_us +advancement.gm4.undead_players.description,Die and raise up an undead zombie in your body's place +advancement.gm4.undead_players.title,Risen +entity.gm4.drowned_player_name,Drowned %s +entity.gm4.drowned_player,Drowned Player +entity.gm4.undead_player_name,Undead %s +text.gm4.guidebook.module_desc.undead_players,"You'll find your death point faster, but you'll have to fight your corpse for your stuff back!" +text.gm4.guidebook.undead_players.description,"When one dies, an undead version of them will spawn at the death site.\n\nThis zombie have a visible name, will never despawn, and will pick up armor and weapons." diff --git a/gm4_vecto_shamir/beet.yaml b/gm4_vecto_shamir/beet.yaml index 0019eec609..7277188607 100644 --- a/gm4_vecto_shamir/beet.yaml +++ b/gm4_vecto_shamir/beet.yaml @@ -5,7 +5,11 @@ version: 1.3.X data_pack: load: . +resource_pack: + load: ../gm4_metallurgy + pipeline: + - gm4_metallurgy.shamir_model_template - gm4.plugins.extend.module meta: @@ -14,6 +18,13 @@ meta: required: gm4_metallurgy: 1.2.0 schedule_loops: [main] + model_data: + - item: boots + reference: shamir/vecto + template: + name: shamir + metal: bismuth + textures_path: gm4_metallurgy:item/shamir/bismuth website: description: Adds the 'Vecto' Shamir to Metallury. Summon a Boat or Minecart out of thin air when in need, no more wasting an inventory slot! recommended: [] diff --git a/gm4_vecto_shamir/data/gm4_vecto_shamir/functions/init.mcfunction b/gm4_vecto_shamir/data/gm4_vecto_shamir/functions/init.mcfunction index 78f796e965..5efc3d0a8a 100644 --- a/gm4_vecto_shamir/data/gm4_vecto_shamir/functions/init.mcfunction +++ b/gm4_vecto_shamir/data/gm4_vecto_shamir/functions/init.mcfunction @@ -10,7 +10,7 @@ scoreboard players set vecto_shamir gm4_modules 1 data remove storage gm4_player_heads:register heads[{id:"gm4_vecto_shamir:band/v0"}] # register shamir with lib_player_heads -execute unless data storage gm4_player_heads:register heads[{id:"gm4_vecto_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_vecto_shamir:band/v1",name:"[Drop to Fix Item] gm4_vecto_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"vecto",metal:{type:"bismuth",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/bismuth",CustomModelData:3420121,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['[{"translate":"item.gm4.metallurgy.bismuth.red","fallback":"Bi","italic":false,"color":"#F47989"},{"translate":"item.gm4.metallurgy.bismuth.orange","fallback":"sm","italic":false,"color":"#F5B478"},{"translate":"item.gm4.metallurgy.bismuth.yellow","fallback":"ut","italic":false,"color":"#F5DD79"},{"translate":"item.gm4.metallurgy.bismuth.green","fallback":"h ","italic":false,"color":"#78F4AE"},{"translate":"item.gm4.metallurgy.bismuth.blue","fallback":"Ba","italic":false,"color":"#79D6F5"},{"translate":"item.gm4.metallurgy.bismuth.purple","fallback":"nd","italic":false,"color":"#8378F5"},{"translate":"item.gm4.metallurgy.bismuth.magenta","fallback":"","italic":false,"color":"#D579F5"}]','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.vecto","fallback":"Vecto"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_vecto_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_vecto_shamir:band/v1",name:"[Drop to Fix Item] gm4_vecto_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"vecto",metal:{type:"bismuth",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/bismuth",CustomModelData:"shamir/vecto",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['[{"translate":"item.gm4.metallurgy.bismuth.red","fallback":"Bi","italic":false,"color":"#F47989"},{"translate":"item.gm4.metallurgy.bismuth.orange","fallback":"sm","italic":false,"color":"#F5B478"},{"translate":"item.gm4.metallurgy.bismuth.yellow","fallback":"ut","italic":false,"color":"#F5DD79"},{"translate":"item.gm4.metallurgy.bismuth.green","fallback":"h ","italic":false,"color":"#78F4AE"},{"translate":"item.gm4.metallurgy.bismuth.blue","fallback":"Ba","italic":false,"color":"#79D6F5"},{"translate":"item.gm4.metallurgy.bismuth.purple","fallback":"nd","italic":false,"color":"#8378F5"},{"translate":"item.gm4.metallurgy.bismuth.magenta","fallback":"","italic":false,"color":"#D579F5"}]','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.vecto","fallback":"Vecto"}']}}} schedule function gm4_vecto_shamir:main 4t diff --git a/gm4_vecto_shamir/data/gm4_vecto_shamir/guidebook/vecto_shamir.json b/gm4_vecto_shamir/data/gm4_vecto_shamir/guidebook/vecto_shamir.json index be57a10630..0f638f3b39 100644 --- a/gm4_vecto_shamir/data/gm4_vecto_shamir/guidebook/vecto_shamir.json +++ b/gm4_vecto_shamir/data/gm4_vecto_shamir/guidebook/vecto_shamir.json @@ -4,8 +4,7 @@ "module_type": "expansion", "base_module": "metallurgy", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420121}" + "item": "minecraft:anvil" }, "criteria": { "obtain_vecto_shamir": { diff --git a/gm4_vecto_shamir/data/gm4_vecto_shamir/loot_tables/band.json b/gm4_vecto_shamir/data/gm4_vecto_shamir/loot_tables/band.json index 47622412fa..ade1e3cf21 100644 --- a/gm4_vecto_shamir/data/gm4_vecto_shamir/loot_tables/band.json +++ b/gm4_vecto_shamir/data/gm4_vecto_shamir/loot_tables/band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420121,SkullOwner:{Name:\"[Drop to Fix Item] gm4_vecto_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"vecto\"}}" + "tag": "{CustomModelData:'shamir/vecto',SkullOwner:{Name:\"[Drop to Fix Item] gm4_vecto_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"vecto\"}}" }, { "function": "minecraft:set_lore", diff --git a/gm4_vecto_shamir/translations.csv b/gm4_vecto_shamir/translations.csv new file mode 100644 index 0000000000..2ef2e95438 --- /dev/null +++ b/gm4_vecto_shamir/translations.csv @@ -0,0 +1,5 @@ +key,en_us +item.gm4.shamir.vecto,Vecto +text.gm4.guidebook.module_desc.vecto_shamir,"Adds the 'Vecto' Shamir to Metallury. Summon a Boat or Minecart out of thin air when in need, no more wasting an inventory slot!" +text.gm4.guidebook.vecto_shamir.description,Vecto creates temporary boats and minecarts for easy travel. +text.gm4.guidebook.vecto_shamir.usage,"The Vecto Shamir is found on Bismuth Bands. It can be placed onto boots.\n\nSneak on top of water, ice, or rails to summon a temporary boat or minecart.\nThis vehicle disappears once the owner is not nearby." diff --git a/gm4_vertical_rails/assets/translations.csv b/gm4_vertical_rails/assets/translations.csv new file mode 100644 index 0000000000..cf63c15f89 --- /dev/null +++ b/gm4_vertical_rails/assets/translations.csv @@ -0,0 +1,6 @@ +key,en_us +advancement.gm4.vertical_rails.title,"Up, Up and Away!" +advancement.gm4.vertical_rails.description,Ride a minecart going up a vertical rail +text.gm4.guidebook.module_desc.vertical_rails,Use ladders as vertical Minecart tracks. +text.gm4.guidebook.vertical_rails.description,Ladder will provide a vertical track for minecarts.\n\nMinecarts that enter a ladder block will travel upwards. +text.gm4.guidebook.vertical_rails.behavior,"Once a minecart reaches the top of a ladder, it will have some upward and forward velocity to continue along normal rails." diff --git a/gm4_vertical_rails/beet.yaml b/gm4_vertical_rails/beet.yaml index 29087d1c5c..6d5df31e60 100644 --- a/gm4_vertical_rails/beet.yaml +++ b/gm4_vertical_rails/beet.yaml @@ -14,6 +14,10 @@ meta: schedule_loops: - main - tick + model_data: + - item: ladder + reference: gui/advancement/vertical_rails + template: advancement website: description: Use ladders as vertical Minecart tracks. recommended: [] diff --git a/gm4_vertical_rails/data/gm4/advancements/vertical_rails.json b/gm4_vertical_rails/data/gm4/advancements/vertical_rails.json index d47d488e5c..7657d6e590 100644 --- a/gm4_vertical_rails/data/gm4/advancements/vertical_rails.json +++ b/gm4_vertical_rails/data/gm4/advancements/vertical_rails.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "ladder", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/vertical_rails'}" }, "title": { "translate": "advancement.gm4.vertical_rails.title", diff --git a/gm4_vertical_rails/data/gm4_vertical_rails/guidebook/vertical_rails.json b/gm4_vertical_rails/data/gm4_vertical_rails/guidebook/vertical_rails.json index 185d7a445a..3e475872dd 100644 --- a/gm4_vertical_rails/data/gm4_vertical_rails/guidebook/vertical_rails.json +++ b/gm4_vertical_rails/data/gm4_vertical_rails/guidebook/vertical_rails.json @@ -3,8 +3,7 @@ "name": "Vertical Rails", "module_type": "module", "icon": { - "item": "minecraft:ladder", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:ladder" }, "criteria": { "obtain_ladder": { diff --git a/gm4_vigere_shamir/beet.yaml b/gm4_vigere_shamir/beet.yaml index 0655b390aa..a0b7cb061a 100644 --- a/gm4_vigere_shamir/beet.yaml +++ b/gm4_vigere_shamir/beet.yaml @@ -5,7 +5,11 @@ version: 1.2.X data_pack: load: . +resource_pack: + load: ../gm4_metallurgy + pipeline: + - gm4_metallurgy.shamir_model_template - gm4.plugins.extend.module meta: @@ -14,6 +18,13 @@ meta: required: gm4_metallurgy: 1.2.0 schedule_loops: [main] + model_data: + - item: shield + reference: shamir/vigere + template: + name: shamir + metal: barimium + textures_path: gm4_metallurgy:item/shamir/barimium website: description: Adds the shamir 'Vigere' to Metallurgy. It heals you when you block with a shield. recommended: [] diff --git a/gm4_vigere_shamir/data/gm4_vigere_shamir/functions/init.mcfunction b/gm4_vigere_shamir/data/gm4_vigere_shamir/functions/init.mcfunction index ad011bd72a..9fd83a8532 100644 --- a/gm4_vigere_shamir/data/gm4_vigere_shamir/functions/init.mcfunction +++ b/gm4_vigere_shamir/data/gm4_vigere_shamir/functions/init.mcfunction @@ -6,7 +6,7 @@ execute unless score vigere_shamir gm4_earliest_version < vigere_shamir gm4_modu scoreboard players set vigere_shamir gm4_modules 1 # register shamir with lib_player_heads -execute unless data storage gm4_player_heads:register heads[{id:"gm4_vigere_shamir:band/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_vigere_shamir:band/v0",name:"[Drop to Fix Item] gm4_vigere_shamir:band",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"vigere",metal:{type:"barimium",amount:[12s],castable:1b},item:"obsidian_cast"},CustomModelData:3420119,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#D18A8A","translate":"item.gm4.metallurgy.band","fallback":"Barimium Band","with":[{"translate":"item.gm4.metallurgy.barimium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.vigere","fallback":"Vigere"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_vigere_shamir:band/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_vigere_shamir:band/v0",name:"[Drop to Fix Item] gm4_vigere_shamir:band",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"vigere",metal:{type:"barimium",amount:[12s],castable:1b},item:"obsidian_cast"},CustomModelData:"shamir/vigere",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#D18A8A","translate":"item.gm4.metallurgy.band","fallback":"Barimium Band","with":[{"translate":"item.gm4.metallurgy.barimium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.vigere","fallback":"Vigere"}']}}} schedule function gm4_vigere_shamir:main 1t diff --git a/gm4_vigere_shamir/data/gm4_vigere_shamir/guidebook/vigere_shamir.json b/gm4_vigere_shamir/data/gm4_vigere_shamir/guidebook/vigere_shamir.json index 9ebc9bf350..02810b7ceb 100644 --- a/gm4_vigere_shamir/data/gm4_vigere_shamir/guidebook/vigere_shamir.json +++ b/gm4_vigere_shamir/data/gm4_vigere_shamir/guidebook/vigere_shamir.json @@ -4,8 +4,7 @@ "module_type": "expansion", "base_module": "metallurgy", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420119}" + "item": "minecraft:anvil" }, "criteria": { "obtain_vigere_shamir": { diff --git a/gm4_vigere_shamir/data/gm4_vigere_shamir/loot_tables/band.json b/gm4_vigere_shamir/data/gm4_vigere_shamir/loot_tables/band.json index 4f15d39621..f0d46afd87 100644 --- a/gm4_vigere_shamir/data/gm4_vigere_shamir/loot_tables/band.json +++ b/gm4_vigere_shamir/data/gm4_vigere_shamir/loot_tables/band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420119,SkullOwner:{Name:\"[Drop to Fix Item] gm4_vigere_shamir:band\"},gm4_metallurgy:{stored_shamir:\"vigere\"}}" + "tag": "{CustomModelData:'shamir/vigere',SkullOwner:{Name:\"[Drop to Fix Item] gm4_vigere_shamir:band\"},gm4_metallurgy:{stored_shamir:\"vigere\"}}" }, { "function": "minecraft:set_lore", diff --git a/gm4_vigere_shamir/translations.csv b/gm4_vigere_shamir/translations.csv new file mode 100644 index 0000000000..aa85f53920 --- /dev/null +++ b/gm4_vigere_shamir/translations.csv @@ -0,0 +1,5 @@ +key,en_us +item.gm4.shamir.vigere,Vigere +text.gm4.guidebook.module_desc.vigere_shamir,Adds the shamir 'Vigere' to Metallurgy. It heals you when you block with a shield. +text.gm4.guidebook.vigere_shamir.description,Vigere alters shields to heal the user upon blocking an attack. +text.gm4.guidebook.vigere_shamir.usage,The Vigere Shamir is found on Barimium Bands. It can be placed onto shields.\n\nBlocking an attack will heal the user 1.5 hearts and apply Mining Fatigue VI for 3 seconds.\nHealing damages the shield more. diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/guidebook/washing_tanks.json b/gm4_washing_tanks/data/gm4_washing_tanks/guidebook/washing_tanks.json index 82496189a7..72fa957160 100644 --- a/gm4_washing_tanks/data/gm4_washing_tanks/guidebook/washing_tanks.json +++ b/gm4_washing_tanks/data/gm4_washing_tanks/guidebook/washing_tanks.json @@ -4,8 +4,7 @@ "module_type": "expansion", "base_module": "liquid_tanks", "icon": { - "item": "minecraft:leather_leggings", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:leather_leggings" }, "criteria": { "obtain_liquid_tank": { diff --git a/gm4_washing_tanks/translations.csv b/gm4_washing_tanks/translations.csv new file mode 100644 index 0000000000..5297b717a9 --- /dev/null +++ b/gm4_washing_tanks/translations.csv @@ -0,0 +1,3 @@ +key,en_us +text.gm4.guidebook.module_desc.washing_tanks,"Die! Dye! Remove die from items in a Liquid Tank filled with Water, at the cost of ⅓ of a bucket." +text.gm4.guidebook.washing_tanks.usage,"Water tanks can wash dyed items placed inside the tank.\n\nTerracotta, beds, wool, carpet, glass, glass panes, leather armour, and shulker boxes can be undyed." diff --git a/gm4_weighted_armour/assets/translations.csv b/gm4_weighted_armour/assets/translations.csv new file mode 100644 index 0000000000..c0642e0fb0 --- /dev/null +++ b/gm4_weighted_armour/assets/translations.csv @@ -0,0 +1,9 @@ +key,en_us +item.gm4.shamir.helious,Helious +text.gm4.guidebook.module_desc.helious_shamir,"Perfect for UHCs, this module forces you to balance protection with speed." +text.gm4.guidebook.helious_shamir.description,"Helious hinders weighted armour, allowing users to wear more armour without slowing down." +text.gm4.guidebook.helious_shamir.usage,The Helious Shamir is found on Aluminium Bands. It can be placed onto armour.\n\nEach Helious piece will reduce weighted armour by one slowness level. Too little of weight will cause levitation and wither effects. +text.gm4.guidebook.module_desc.weighted_armour,"Perfect for UHCs, this module forces you to balance protection with speed." +text.gm4.guidebook.weighted_armour.description,Users will be slowed down based on how much armour they have on. +text.gm4.guidebook.weighted_armour.weight,The weight is purely based on how much armor one has on. Slowness III is applied for full armor points. +text.gm4.guidebook.weighted_armour.weight_and_helious,The weight is purely based on how much armor one has on. Slowness III is applied for full armor points.\n\nThe Helious Shamir can help prevent armour slowness. diff --git a/gm4_weighted_armour/beet.yaml b/gm4_weighted_armour/beet.yaml index e405a33b9b..f34014e4d7 100644 --- a/gm4_weighted_armour/beet.yaml +++ b/gm4_weighted_armour/beet.yaml @@ -5,13 +5,24 @@ version: 1.5.X data_pack: load: . +resource_pack: + load: ../gm4_metallurgy + pipeline: + - gm4_metallurgy.shamir_model_template - gm4.plugins.extend.module meta: gm4: versioning: schedule_loops: [main] + model_data: + - item: armor + reference: shamir/helious + template: + name: shamir + metal: aluminium + textures_path: gm4_metallurgy:item/shamir/aluminium website: description: Perfect for UHCs, this module forces you to balance protection with speed. recommended: [] diff --git a/gm4_weighted_armour/data/gm4_helious_shamir/guidebook/helious_shamir.json b/gm4_weighted_armour/data/gm4_helious_shamir/guidebook/helious_shamir.json index c79683a017..f7bab56406 100644 --- a/gm4_weighted_armour/data/gm4_helious_shamir/guidebook/helious_shamir.json +++ b/gm4_weighted_armour/data/gm4_helious_shamir/guidebook/helious_shamir.json @@ -5,8 +5,7 @@ "load_check": "weighted_armour", "base_module": "metallurgy", "icon": { - "item": "minecraft:anvil", - "nbt": "{CustomModelData:3420103}" + "item": "minecraft:anvil" }, "criteria": { "obtain_helious_shamir": { diff --git a/gm4_weighted_armour/data/gm4_helious_shamir/loot_tables/band.json b/gm4_weighted_armour/data/gm4_helious_shamir/loot_tables/band.json index b8efff95c9..b697614120 100644 --- a/gm4_weighted_armour/data/gm4_helious_shamir/loot_tables/band.json +++ b/gm4_weighted_armour/data/gm4_helious_shamir/loot_tables/band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420103,SkullOwner:{Name:\"[Drop to Fix Item] gm4_helious_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"helious\"}}" + "tag": "{CustomModelData:'shamir/helious',SkullOwner:{Name:\"[Drop to Fix Item] gm4_helious_shamir:band/v0\"},gm4_metallurgy:{stored_shamir:\"helious\"}}" }, { "function": "minecraft:set_lore", diff --git a/gm4_weighted_armour/data/gm4_weighted_armour/functions/init.mcfunction b/gm4_weighted_armour/data/gm4_weighted_armour/functions/init.mcfunction index 3ca7fde374..b707f4ca96 100644 --- a/gm4_weighted_armour/data/gm4_weighted_armour/functions/init.mcfunction +++ b/gm4_weighted_armour/data/gm4_weighted_armour/functions/init.mcfunction @@ -8,7 +8,7 @@ scoreboard players set weighted_armour gm4_modules 1 data remove storage gm4_player_heads:register heads[{id:"gm4_helious_shamir:band/v0"}] # register shamir with lib_player_heads -execute unless data storage gm4_player_heads:register heads[{id:"gm4_helious_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_helious_shamir:band/v1",name:"[Drop to Fix Item] gm4_helious_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"helious",metal:{type:"aluminium",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/aluminium",CustomModelData:3420103,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#F47989","translate":"item.gm4.metallurgy.band","fallback":"Aluminium Band","with":[{"translate":"item.gm4.metallurgy.aluminium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.helious","fallback":"Helious"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_helious_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_helious_shamir:band/v1",name:"[Drop to Fix Item] gm4_helious_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"helious",metal:{type:"aluminium",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/aluminium",CustomModelData:"shamir/helious",display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#F47989","translate":"item.gm4.metallurgy.band","fallback":"Aluminium Band","with":[{"translate":"item.gm4.metallurgy.aluminium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.helious","fallback":"Helious"}']}}} schedule function gm4_weighted_armour:main 1t diff --git a/gm4_weighted_armour/data/gm4_weighted_armour/guidebook/weighted_armour.json b/gm4_weighted_armour/data/gm4_weighted_armour/guidebook/weighted_armour.json index 7c9b503248..13d3fa8122 100644 --- a/gm4_weighted_armour/data/gm4_weighted_armour/guidebook/weighted_armour.json +++ b/gm4_weighted_armour/data/gm4_weighted_armour/guidebook/weighted_armour.json @@ -3,8 +3,7 @@ "name": "Weighted Armour", "module_type": "module", "icon": { - "item": "minecraft:iron_chestplate", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:iron_chestplate" }, "criteria": { "wear_armor": { diff --git a/gm4_xp_storage/assets/translations.csv b/gm4_xp_storage/assets/translations.csv new file mode 100644 index 0000000000..6fd46e1391 --- /dev/null +++ b/gm4_xp_storage/assets/translations.csv @@ -0,0 +1,6 @@ +key,en_us +text.gm4.xp_storage.stored_experience,Stored Experience: +text.gm4.xp_storage.stored_experience.points,%s Points +text.gm4.guidebook.module_desc.xp_storage,"Stand on top of an Ender Chest to store Experience, stand below to retrieve it!" +text.gm4.guidebook.xp_storage.description,"In addition to items, ender chests can hold experience levels.\n\nStanding on an ender chest deposits XP, while standing below withdraws it." +text.gm4.guidebook.xp_storage.no_mending,Experience orbs stored in ender chests cannot be transfered to tools with mending; it is a direct transfer. diff --git a/gm4_xp_storage/data/gm4_xp_storage/guidebook/xp_storage.json b/gm4_xp_storage/data/gm4_xp_storage/guidebook/xp_storage.json index 1157059e7c..2cb8b243f3 100644 --- a/gm4_xp_storage/data/gm4_xp_storage/guidebook/xp_storage.json +++ b/gm4_xp_storage/data/gm4_xp_storage/guidebook/xp_storage.json @@ -3,8 +3,7 @@ "name": "XP Storage", "module_type": "module", "icon": { - "item": "minecraft:ender_chest", - "nbt": "{CustomModelData:3420001}" + "item": "minecraft:ender_chest" }, "criteria": { "obtain_ender_chest": { diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/models/block/zauber_cauldron.json b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/models/block/zauber_cauldron.json new file mode 100644 index 0000000000..81bb8d0e5c --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/models/block/zauber_cauldron.json @@ -0,0 +1,165 @@ +{ + "ambientocclusion": false, + "textures": { + "4": "gm4_zauber_cauldrons:block/cauldron_inside", + "top": "gm4_zauber_cauldrons:block/cauldron_top", + "bottom": "gm4_zauber_cauldrons:block/cauldron_bottom", + "particle": "gm4_zauber_cauldrons:block/cauldron_side", + "side": "gm4_zauber_cauldrons:block/cauldron_side", + "inside": "gm4_zauber_cauldrons:block/cauldron_inner" + }, + "elements": [ + { + "from": [2.1, 2.9, 2.1], + "to": [13.9, 4.1, 13.9], + "faces": { + "up": {"uv": [2, 2, 14, 14], "texture": "#inside"}, + "down": {"uv": [2.1, 2.1, 13.9, 13.9], "texture": "#inside"} + } + }, + { + "from": [-0.1, 2.9, 13.9], + "to": [13.9, 16.1, 16.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [14, 0, 0, 13], "texture": "#4", "cullface": "south"}, + "south": {"uv": [0, 0, 14, 13], "texture": "#side", "cullface": "south"}, + "west": {"uv": [14, 0, 16, 13], "texture": "#side", "cullface": "south"}, + "up": {"uv": [0, 13.8, 14, 16], "texture": "#top", "cullface": "up"}, + "down": {"uv": [2, 0, 14, 2], "texture": "#inside"} + } + }, + { + "from": [13.9, -0.1, 11.9], + "to": [16.1, 2.9, 13.9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 13, 2.2, 16], "texture": "#side", "cullface": "south"}, + "east": {"uv": [2.2, 13, 4.2, 16], "texture": "#side", "cullface": "south"}, + "south": {"uv": [0, 13, 2, 16], "texture": "#side", "cullface": "south"}, + "west": {"uv": [12, 13, 16, 16], "texture": "#side", "cullface": "south"}, + "down": {"uv": [4.4, 13.8, 2.2, 16], "rotation": 270, "texture": "#bottom"} + } + }, + { + "from": [11.9, -0.1, 13.9], + "to": [16.1, 2.9, 16.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 13, 16, 16], "texture": "#side", "cullface": "south"}, + "east": {"uv": [0, 13, 2.2, 16], "texture": "#side", "cullface": "south"}, + "south": {"uv": [12.1, 13, 16, 16], "texture": "#side", "cullface": "south"}, + "west": {"uv": [0, 13, 2, 16], "texture": "#side", "cullface": "south"}, + "down": {"uv": [0, 13.8, 4.2, 16], "rotation": 180, "texture": "#bottom"} + } + }, + { + "from": [13.9, 2.9, 2.1], + "to": [16.1, 16.1, 16.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "east": {"uv": [0, 0, 14, 13], "texture": "#side", "cullface": "south"}, + "south": {"uv": [14, 0, 16, 13], "texture": "#side", "cullface": "south"}, + "west": {"uv": [14, 0, 0, 13], "texture": "#4", "cullface": "south"}, + "up": {"uv": [0, 13.8, 14, 16], "rotation": 270, "texture": "#top", "cullface": "up"}, + "down": {"uv": [2, 0, 14, 2], "rotation": 90, "texture": "#inside"} + } + }, + { + "from": [11.9, -0.1, -0.1], + "to": [13.9, 2.9, 2.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2.2, 13, 4.2, 16], "texture": "#side", "cullface": "south"}, + "east": {"uv": [0, 13, 2, 16], "texture": "#side", "cullface": "south"}, + "south": {"uv": [12, 13, 16, 16], "texture": "#side", "cullface": "south"}, + "west": {"uv": [0, 13, 2.2, 16], "texture": "#side", "cullface": "south"}, + "down": {"uv": [4.4, 13.8, 2.2, 16], "texture": "#bottom"} + } + }, + { + "from": [13.9, -0.1, -0.1], + "to": [16.1, 2.9, 4.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 13, 2.2, 16], "texture": "#side", "cullface": "south"}, + "east": {"uv": [12.1, 13, 16, 16], "texture": "#side", "cullface": "south"}, + "south": {"uv": [0, 13, 2, 16], "texture": "#side", "cullface": "south"}, + "west": {"uv": [12, 13, 16, 16], "texture": "#side", "cullface": "south"}, + "down": {"uv": [0, 13.8, 4.2, 16], "rotation": 270, "texture": "#bottom"} + } + }, + { + "from": [2.1, 2.9, -0.1], + "to": [16.1, 16.1, 2.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 0, 14, 13], "texture": "#side", "cullface": "south"}, + "east": {"uv": [14, 0, 16, 13], "texture": "#side", "cullface": "south"}, + "south": {"uv": [14, 0, 0, 13], "texture": "#4", "cullface": "south"}, + "up": {"uv": [0, 13.8, 14, 16], "rotation": 180, "texture": "#top", "cullface": "up"}, + "down": {"uv": [2, 0, 14, 2], "rotation": 180, "texture": "#inside"} + } + }, + { + "from": [-0.1, -0.1, 2.1], + "to": [2.1, 2.9, 4.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 13, 2, 16], "texture": "#side", "cullface": "south"}, + "east": {"uv": [12, 13, 16, 16], "texture": "#side", "cullface": "south"}, + "south": {"uv": [0, 13, 2.2, 16], "texture": "#side", "cullface": "south"}, + "west": {"uv": [2.2, 13, 4.2, 16], "texture": "#side", "cullface": "south"}, + "down": {"uv": [4.4, 13.8, 2.2, 16], "rotation": 90, "texture": "#bottom"} + } + }, + { + "from": [-0.1, -0.1, -0.1], + "to": [4.1, 2.9, 2.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.1, 13, 16, 16], "texture": "#side", "cullface": "south"}, + "east": {"uv": [0, 13, 2, 16], "texture": "#side", "cullface": "south"}, + "south": {"uv": [12, 13, 16, 16], "texture": "#side", "cullface": "south"}, + "west": {"uv": [0, 13, 2.2, 16], "texture": "#side", "cullface": "south"}, + "down": {"uv": [0, 13.8, 4.2, 16], "texture": "#bottom"} + } + }, + { + "from": [-0.1, 2.9, -0.1], + "to": [2.1, 16.1, 13.9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [14, 0, 16, 13], "texture": "#side", "cullface": "south"}, + "east": {"uv": [14, 0, 0, 13], "texture": "#4", "cullface": "south"}, + "west": {"uv": [0, 0, 14, 13], "texture": "#side", "cullface": "south"}, + "up": {"uv": [0, 13.8, 14, 16], "rotation": 90, "texture": "#top", "cullface": "up"}, + "down": {"uv": [2, 0, 14, 2], "rotation": 270, "texture": "#inside"} + } + }, + { + "from": [-0.1, -0.1, 11.9], + "to": [2.1, 2.9, 16.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 13, 2, 16], "texture": "#side", "cullface": "south"}, + "east": {"uv": [12, 13, 16, 16], "texture": "#side", "cullface": "south"}, + "south": {"uv": [0, 13, 2.2, 16], "texture": "#side", "cullface": "south"}, + "west": {"uv": [12.1, 13, 16, 16], "texture": "#side", "cullface": "south"}, + "down": {"uv": [0, 13.8, 4.2, 16], "rotation": 90, "texture": "#bottom"} + } + }, + { + "from": [2.1, -0.1, 13.9], + "to": [4.1, 2.9, 16.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 13, 16, 16], "texture": "#side", "cullface": "south"}, + "east": {"uv": [0, 13, 2.2, 16], "texture": "#side", "cullface": "south"}, + "south": {"uv": [2.2, 13, 4.2, 16], "texture": "#side", "cullface": "south"}, + "west": {"uv": [0, 13, 2, 16], "texture": "#side", "cullface": "south"}, + "down": {"uv": [4.4, 13.8, 2.2, 16], "rotation": 180, "texture": "#bottom"} + } + } + ] +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_armor_layer_1.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_armor_layer_1.properties new file mode 100644 index 0000000000..42d98c01fb --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_armor_layer_1.properties @@ -0,0 +1,23 @@ +from=gm4_zauber_cauldrons:optifine/cit/zauber_armor_layer_1_anim.png +to=gm4_zauber_cauldrons:optifine/cit/zauber_armor_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=30 +tile.1=0 +duration.1=2 +tile.2=1 +duration.2=2 +tile.3=2 +duration.3=2 +tile.4=3 +duration.4=2 +tile.5=4 +duration.5=2 +tile.6=5 +duration.6=2 +tile.7=6 +duration.7=2 diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_armor_layer_2.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_armor_layer_2.properties new file mode 100644 index 0000000000..4cac477e14 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_armor_layer_2.properties @@ -0,0 +1,23 @@ +from=gm4_zauber_cauldrons:optifine/cit/zauber_armor_layer_2_anim.png +to=gm4_zauber_cauldrons:optifine/cit/zauber_armor_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=30 +tile.1=0 +duration.1=2 +tile.2=1 +duration.2=2 +tile.3=2 +duration.3=2 +tile.4=3 +duration.4=2 +tile.5=4 +duration.5=2 +tile.6=5 +duration.6=2 +tile.7=6 +duration.7=2 diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_attack_layer_1.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_attack_layer_1.properties new file mode 100644 index 0000000000..098d12155c --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_attack_layer_1.properties @@ -0,0 +1,23 @@ +from=gm4_zauber_cauldrons:optifine/cit/zauber_attack_layer_1_anim.png +to=gm4_zauber_cauldrons:optifine/cit/zauber_attack_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=30 +tile.1=0 +duration.1=2 +tile.2=1 +duration.2=2 +tile.3=2 +duration.3=2 +tile.4=3 +duration.4=2 +tile.5=4 +duration.5=2 +tile.6=5 +duration.6=2 +tile.7=6 +duration.7=2 diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_attack_layer_2.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_attack_layer_2.properties new file mode 100644 index 0000000000..c64b5036bf --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_attack_layer_2.properties @@ -0,0 +1,23 @@ +from=gm4_zauber_cauldrons:optifine/cit/zauber_attack_layer_2_anim.png +to=gm4_zauber_cauldrons:optifine/cit/zauber_attack_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=30 +tile.1=0 +duration.1=2 +tile.2=1 +duration.2=2 +tile.3=2 +duration.3=2 +tile.4=3 +duration.4=2 +tile.5=4 +duration.5=2 +tile.6=5 +duration.6=2 +tile.7=6 +duration.7=2 diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_health_layer_1.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_health_layer_1.properties new file mode 100644 index 0000000000..e2bfaf17cf --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_health_layer_1.properties @@ -0,0 +1,23 @@ +from=gm4_zauber_cauldrons:optifine/cit/zauber_health_layer_1_anim.png +to=gm4_zauber_cauldrons:optifine/cit/zauber_health_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=30 +tile.1=0 +duration.1=2 +tile.2=1 +duration.2=2 +tile.3=2 +duration.3=2 +tile.4=3 +duration.4=2 +tile.5=4 +duration.5=2 +tile.6=5 +duration.6=2 +tile.7=6 +duration.7=2 diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_health_layer_2.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_health_layer_2.properties new file mode 100644 index 0000000000..5c5945a6f7 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_health_layer_2.properties @@ -0,0 +1,23 @@ +from=gm4_zauber_cauldrons:optifine/cit/zauber_health_layer_2_anim.png +to=gm4_zauber_cauldrons:optifine/cit/zauber_health_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=30 +tile.1=0 +duration.1=2 +tile.2=1 +duration.2=2 +tile.3=2 +duration.3=2 +tile.4=3 +duration.4=2 +tile.5=4 +duration.5=2 +tile.6=5 +duration.6=2 +tile.7=6 +duration.7=2 diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_speed_layer_1.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_speed_layer_1.properties new file mode 100644 index 0000000000..67b7bf6c70 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_speed_layer_1.properties @@ -0,0 +1,23 @@ +from=gm4_zauber_cauldrons:optifine/cit/zauber_speed_layer_1_anim.png +to=gm4_zauber_cauldrons:optifine/cit/zauber_speed_layer_1.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=30 +tile.1=0 +duration.1=2 +tile.2=1 +duration.2=2 +tile.3=2 +duration.3=2 +tile.4=3 +duration.4=2 +tile.5=4 +duration.5=2 +tile.6=5 +duration.6=2 +tile.7=6 +duration.7=2 diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_speed_layer_2.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_speed_layer_2.properties new file mode 100644 index 0000000000..a626a9be77 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/anim/zauber_speed_layer_2.properties @@ -0,0 +1,23 @@ +from=gm4_zauber_cauldrons:optifine/cit/zauber_speed_layer_2_anim.png +to=gm4_zauber_cauldrons:optifine/cit/zauber_speed_layer_2.png +x=0 +y=0 +w=64 +h=32 +interpolate=true +tile.0=0 +duration.0=30 +tile.1=0 +duration.1=2 +tile.2=1 +duration.2=2 +tile.3=2 +duration.3=2 +tile.4=3 +duration.4=2 +tile.5=4 +duration.5=2 +tile.6=5 +duration.6=2 +tile.7=6 +duration.7=2 diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_armor_layer_1.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_armor_layer_1.png new file mode 100644 index 0000000000..499aa01776 Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_armor_layer_1.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_armor_layer_1_anim.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_armor_layer_1_anim.png new file mode 100644 index 0000000000..6f008d51a4 Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_armor_layer_1_anim.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_armor_layer_2.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_armor_layer_2.png new file mode 100644 index 0000000000..cc61dc158c Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_armor_layer_2.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_armor_layer_2_anim.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_armor_layer_2_anim.png new file mode 100644 index 0000000000..bdb77b038a Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_armor_layer_2_anim.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_attack_layer_1.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_attack_layer_1.png new file mode 100644 index 0000000000..55e590704b Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_attack_layer_1.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_attack_layer_1_anim.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_attack_layer_1_anim.png new file mode 100644 index 0000000000..6f383517de Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_attack_layer_1_anim.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_attack_layer_2.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_attack_layer_2.png new file mode 100644 index 0000000000..761ff1fe1b Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_attack_layer_2.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_attack_layer_2_anim.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_attack_layer_2_anim.png new file mode 100644 index 0000000000..1ad4a9909d Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_attack_layer_2_anim.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_boots_armor.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_boots_armor.properties new file mode 100644 index 0000000000..4d62f90585 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_boots_armor.properties @@ -0,0 +1,4 @@ +type=armor +matchItems=golden_boots +texture.gold_layer_1=zauber_armor_layer_1 +nbt.CustomModelData=$item/zauber_armor/armor_boost diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_boots_attack.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_boots_attack.properties new file mode 100644 index 0000000000..e9b6605e9c --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_boots_attack.properties @@ -0,0 +1,4 @@ +type=armor +matchItems=golden_boots +texture.gold_layer_1=zauber_attack_layer_1 +nbt.CustomModelData=$item/zauber_armor/attack_boost diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_boots_health.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_boots_health.properties new file mode 100644 index 0000000000..308e07a4d5 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_boots_health.properties @@ -0,0 +1,4 @@ +type=armor +matchItems=golden_boots +texture.gold_layer_1=zauber_health_layer_1 +nbt.CustomModelData=$item/zauber_armor/health_boost diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_boots_speed.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_boots_speed.properties new file mode 100644 index 0000000000..39cfcc1897 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_boots_speed.properties @@ -0,0 +1,4 @@ +type=armor +matchItems=golden_boots +texture.gold_layer_1=zauber_speed_layer_1 +nbt.CustomModelData=$item/zauber_armor/speed_boost diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_chestplate_armor.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_chestplate_armor.properties new file mode 100644 index 0000000000..2319aba9c4 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_chestplate_armor.properties @@ -0,0 +1,4 @@ +type=armor +matchItems=golden_chestplate +texture.gold_layer_1=zauber_armor_layer_1 +nbt.CustomModelData=$item/zauber_armor/armor_boost diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_chestplate_attack.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_chestplate_attack.properties new file mode 100644 index 0000000000..17e0450610 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_chestplate_attack.properties @@ -0,0 +1,4 @@ +type=armor +matchItems=golden_chestplate +texture.gold_layer_1=zauber_attack_layer_1 +nbt.CustomModelData=$item/zauber_armor/attack_boost diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_chestplate_health.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_chestplate_health.properties new file mode 100644 index 0000000000..3b9e6fa6de --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_chestplate_health.properties @@ -0,0 +1,4 @@ +type=armor +matchItems=golden_chestplate +texture.gold_layer_1=zauber_health_layer_1 +nbt.CustomModelData=$item/zauber_armor/health_boost diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_chestplate_speed.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_chestplate_speed.properties new file mode 100644 index 0000000000..e4aab4b6d4 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_chestplate_speed.properties @@ -0,0 +1,4 @@ +type=armor +matchItems=golden_chestplate +texture.gold_layer_1=zauber_speed_layer_1 +nbt.CustomModelData=$item/zauber_armor/speed_boost diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_health_layer_1.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_health_layer_1.png new file mode 100644 index 0000000000..e2e40e9b7d Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_health_layer_1.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_health_layer_1_anim.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_health_layer_1_anim.png new file mode 100644 index 0000000000..38df25dea5 Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_health_layer_1_anim.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_health_layer_2.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_health_layer_2.png new file mode 100644 index 0000000000..ec68e364ff Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_health_layer_2.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_health_layer_2_anim.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_health_layer_2_anim.png new file mode 100644 index 0000000000..8f0fc8295b Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_health_layer_2_anim.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_helmet_armor.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_helmet_armor.properties new file mode 100644 index 0000000000..68bbda3cf2 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_helmet_armor.properties @@ -0,0 +1,4 @@ +type=armor +matchItems=golden_helmet +texture.gold_layer_1=zauber_armor_layer_1 +nbt.CustomModelData=$item/zauber_armor/armor_boost diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_helmet_attack.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_helmet_attack.properties new file mode 100644 index 0000000000..fad61491f0 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_helmet_attack.properties @@ -0,0 +1,4 @@ +type=armor +matchItems=golden_helmet +texture.gold_layer_1=zauber_attack_layer_1 +nbt.CustomModelData=$item/zauber_armor/attack_boost diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_helmet_health.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_helmet_health.properties new file mode 100644 index 0000000000..17f0322a5b --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_helmet_health.properties @@ -0,0 +1,4 @@ +type=armor +matchItems=golden_helmet +texture.gold_layer_1=zauber_health_layer_1 +nbt.CustomModelData=$item/zauber_armor/health_boost diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_helmet_speed.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_helmet_speed.properties new file mode 100644 index 0000000000..f5f5b9e7e2 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_helmet_speed.properties @@ -0,0 +1,4 @@ +type=armor +matchItems=golden_helmet +texture.gold_layer_1=zauber_speed_layer_1 +nbt.CustomModelData=$item/zauber_armor/speed_boost diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_leggings_armor.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_leggings_armor.properties new file mode 100644 index 0000000000..3f05979033 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_leggings_armor.properties @@ -0,0 +1,4 @@ +type=armor +matchItems=golden_leggings +texture.gold_layer_2=zauber_armor_layer_2 +nbt.CustomModelData=$item/zauber_armor/armor_boost diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_leggings_attack.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_leggings_attack.properties new file mode 100644 index 0000000000..f2f119f95d --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_leggings_attack.properties @@ -0,0 +1,4 @@ +type=armor +matchItems=golden_leggings +texture.gold_layer_2=zauber_attack_layer_2 +nbt.CustomModelData=r$item/zauber_armor/attack_boost diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_leggings_health.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_leggings_health.properties new file mode 100644 index 0000000000..f1f0247338 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_leggings_health.properties @@ -0,0 +1,4 @@ +type=armor +matchItems=golden_leggings +texture.gold_layer_2=zauber_health_layer_2 +nbt.CustomModelData=$item/zauber_armor/health_boost diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_leggings_speed.properties b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_leggings_speed.properties new file mode 100644 index 0000000000..3052d644ba --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_leggings_speed.properties @@ -0,0 +1,4 @@ +type=armor +matchItems=golden_leggings +texture.gold_layer_2=zauber_speed_layer_2 +nbt.CustomModelData=$item/zauber_armor/speed_boost diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_speed_layer_1.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_speed_layer_1.png new file mode 100644 index 0000000000..27ac7d64f7 Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_speed_layer_1.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_speed_layer_1_anim.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_speed_layer_1_anim.png new file mode 100644 index 0000000000..36ea583ccc Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_speed_layer_1_anim.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_speed_layer_2.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_speed_layer_2.png new file mode 100644 index 0000000000..5d985131ab Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_speed_layer_2.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_speed_layer_2_anim.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_speed_layer_2_anim.png new file mode 100644 index 0000000000..ebf327a730 Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/optifine/cit/zauber_speed_layer_2_anim.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/block/cauldron_bottom.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/block/cauldron_bottom.png new file mode 100644 index 0000000000..145ce19bce Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/block/cauldron_bottom.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/block/cauldron_inner.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/block/cauldron_inner.png new file mode 100644 index 0000000000..c833608e79 Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/block/cauldron_inner.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/block/cauldron_inside.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/block/cauldron_inside.png new file mode 100644 index 0000000000..99ab3e46cc Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/block/cauldron_inside.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/block/cauldron_side.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/block/cauldron_side.png new file mode 100644 index 0000000000..af70b04c5e Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/block/cauldron_side.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/block/cauldron_top.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/block/cauldron_top.png new file mode 100644 index 0000000000..bd25fb04ff Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/block/cauldron_top.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/crystal.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/crystal.png new file mode 100644 index 0000000000..3fb3eb1754 Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/crystal.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/crystal.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/crystal.png.mcmeta new file mode 100644 index 0000000000..48e2182619 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/crystal.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, + "time": 55 }, + 1, + 2, + 3, + 4, + 5, + 6] + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/instant_damage.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/instant_damage.png new file mode 100644 index 0000000000..71f40210dd Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/instant_damage.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/instant_damage.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/instant_damage.png.mcmeta new file mode 100644 index 0000000000..1b760073f5 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/instant_damage.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "frametime": 8, + "interpolate": true + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/instant_health.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/instant_health.png new file mode 100644 index 0000000000..3284e779bb Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/instant_health.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/instant_health.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/instant_health.png.mcmeta new file mode 100644 index 0000000000..1b760073f5 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/instant_health.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "frametime": 8, + "interpolate": true + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/jump_boost.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/jump_boost.png new file mode 100644 index 0000000000..909ced0a0e Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/jump_boost.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/jump_boost.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/jump_boost.png.mcmeta new file mode 100644 index 0000000000..1b760073f5 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/jump_boost.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "frametime": 8, + "interpolate": true + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/poison.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/poison.png new file mode 100644 index 0000000000..cdb5ff2683 Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/poison.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/poison.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/poison.png.mcmeta new file mode 100644 index 0000000000..1b760073f5 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/poison.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "frametime": 8, + "interpolate": true + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/regeneration.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/regeneration.png new file mode 100644 index 0000000000..dcef228e73 Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/regeneration.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/regeneration.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/regeneration.png.mcmeta new file mode 100644 index 0000000000..1b760073f5 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/regeneration.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "frametime": 8, + "interpolate": true + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/speed.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/speed.png new file mode 100644 index 0000000000..d4c124ddff Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/speed.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/speed.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/speed.png.mcmeta new file mode 100644 index 0000000000..1b760073f5 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/speed.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "frametime": 8, + "interpolate": true + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/strength.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/strength.png new file mode 100644 index 0000000000..04c68c4ff5 Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/strength.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/strength.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/strength.png.mcmeta new file mode 100644 index 0000000000..1b760073f5 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/crystal/strength.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "frametime": 8, + "interpolate": true + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/enchanted_prismarine_shard.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/enchanted_prismarine_shard.png new file mode 100644 index 0000000000..77c2b78c6e Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/enchanted_prismarine_shard.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/enchanted_prismarine_shard.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/enchanted_prismarine_shard.png.mcmeta new file mode 100644 index 0000000000..96f6dce0fa --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/enchanted_prismarine_shard.png.mcmeta @@ -0,0 +1,7 @@ +{ + "animation": { + "frametime": 20, + "interpolate": true + + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/magic_in_a_bottle.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/magic_in_a_bottle.png new file mode 100644 index 0000000000..d762cb2fea Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/magic_in_a_bottle.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/magic_in_a_bottle.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/magic_in_a_bottle.png.mcmeta new file mode 100644 index 0000000000..4d17a1b2eb --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/magic_in_a_bottle.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 12, + "interpolate": true, + "frames": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6] + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/wormhole_in_a_bottle.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/wormhole_in_a_bottle.png new file mode 100644 index 0000000000..83c71a064c Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/wormhole_in_a_bottle.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/wormhole_in_a_bottle.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/wormhole_in_a_bottle.png.mcmeta new file mode 100644 index 0000000000..abaf142274 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/wormhole_in_a_bottle.png.mcmeta @@ -0,0 +1,7 @@ +{ + "animation": { + "frametime": 12, + "interpolate": true + + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/wormhole_in_a_bottle_overlay.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/wormhole_in_a_bottle_overlay.png new file mode 100644 index 0000000000..312790113d Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/wormhole_in_a_bottle_overlay.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/wormhole_in_a_bottle_overlay.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/wormhole_in_a_bottle_overlay.png.mcmeta new file mode 100644 index 0000000000..23c177dd65 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/wormhole_in_a_bottle_overlay.png.mcmeta @@ -0,0 +1,7 @@ +{ + "animation": { + "frametime": 6, + "interpolate": true + + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/boots.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/boots.png new file mode 100644 index 0000000000..30d927e881 Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/boots.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/boots.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/boots.png.mcmeta new file mode 100644 index 0000000000..8408d5f187 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/boots.png.mcmeta @@ -0,0 +1,16 @@ +{ + "animation": { + "frametime": 2, + "interpolate": true, + "frames": [ + { "index": 0, + "time": 19 }, + 0, + 1, + 2, + 3, + 4, + 5, + 6] + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/chestplate.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/chestplate.png new file mode 100644 index 0000000000..2feed19cfd Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/chestplate.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/chestplate.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/chestplate.png.mcmeta new file mode 100644 index 0000000000..8408d5f187 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/chestplate.png.mcmeta @@ -0,0 +1,16 @@ +{ + "animation": { + "frametime": 2, + "interpolate": true, + "frames": [ + { "index": 0, + "time": 19 }, + 0, + 1, + 2, + 3, + 4, + 5, + 6] + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/helmet.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/helmet.png new file mode 100644 index 0000000000..28eff9a2b1 Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/helmet.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/helmet.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/helmet.png.mcmeta new file mode 100644 index 0000000000..8408d5f187 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/helmet.png.mcmeta @@ -0,0 +1,16 @@ +{ + "animation": { + "frametime": 2, + "interpolate": true, + "frames": [ + { "index": 0, + "time": 19 }, + 0, + 1, + 2, + 3, + 4, + 5, + 6] + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/leggings.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/leggings.png new file mode 100644 index 0000000000..1b580d383d Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/leggings.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/leggings.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/leggings.png.mcmeta new file mode 100644 index 0000000000..8408d5f187 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/armor_boost/leggings.png.mcmeta @@ -0,0 +1,16 @@ +{ + "animation": { + "frametime": 2, + "interpolate": true, + "frames": [ + { "index": 0, + "time": 19 }, + 0, + 1, + 2, + 3, + 4, + 5, + 6] + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/boots.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/boots.png new file mode 100644 index 0000000000..55937e63ff Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/boots.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/boots.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/boots.png.mcmeta new file mode 100644 index 0000000000..8408d5f187 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/boots.png.mcmeta @@ -0,0 +1,16 @@ +{ + "animation": { + "frametime": 2, + "interpolate": true, + "frames": [ + { "index": 0, + "time": 19 }, + 0, + 1, + 2, + 3, + 4, + 5, + 6] + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/chestplate.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/chestplate.png new file mode 100644 index 0000000000..a758f9dd52 Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/chestplate.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/chestplate.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/chestplate.png.mcmeta new file mode 100644 index 0000000000..8408d5f187 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/chestplate.png.mcmeta @@ -0,0 +1,16 @@ +{ + "animation": { + "frametime": 2, + "interpolate": true, + "frames": [ + { "index": 0, + "time": 19 }, + 0, + 1, + 2, + 3, + 4, + 5, + 6] + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/helmet.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/helmet.png new file mode 100644 index 0000000000..406c9f5c9b Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/helmet.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/helmet.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/helmet.png.mcmeta new file mode 100644 index 0000000000..8408d5f187 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/helmet.png.mcmeta @@ -0,0 +1,16 @@ +{ + "animation": { + "frametime": 2, + "interpolate": true, + "frames": [ + { "index": 0, + "time": 19 }, + 0, + 1, + 2, + 3, + 4, + 5, + 6] + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/leggings.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/leggings.png new file mode 100644 index 0000000000..74820dac0e Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/leggings.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/leggings.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/leggings.png.mcmeta new file mode 100644 index 0000000000..8408d5f187 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/attack_boost/leggings.png.mcmeta @@ -0,0 +1,16 @@ +{ + "animation": { + "frametime": 2, + "interpolate": true, + "frames": [ + { "index": 0, + "time": 19 }, + 0, + 1, + 2, + 3, + 4, + 5, + 6] + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/boots.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/boots.png new file mode 100644 index 0000000000..5e2fd7104b Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/boots.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/boots.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/boots.png.mcmeta new file mode 100644 index 0000000000..8408d5f187 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/boots.png.mcmeta @@ -0,0 +1,16 @@ +{ + "animation": { + "frametime": 2, + "interpolate": true, + "frames": [ + { "index": 0, + "time": 19 }, + 0, + 1, + 2, + 3, + 4, + 5, + 6] + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/chestplate.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/chestplate.png new file mode 100644 index 0000000000..86272eb34b Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/chestplate.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/chestplate.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/chestplate.png.mcmeta new file mode 100644 index 0000000000..8408d5f187 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/chestplate.png.mcmeta @@ -0,0 +1,16 @@ +{ + "animation": { + "frametime": 2, + "interpolate": true, + "frames": [ + { "index": 0, + "time": 19 }, + 0, + 1, + 2, + 3, + 4, + 5, + 6] + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/helmet.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/helmet.png new file mode 100644 index 0000000000..48727587f7 Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/helmet.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/helmet.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/helmet.png.mcmeta new file mode 100644 index 0000000000..8408d5f187 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/helmet.png.mcmeta @@ -0,0 +1,16 @@ +{ + "animation": { + "frametime": 2, + "interpolate": true, + "frames": [ + { "index": 0, + "time": 19 }, + 0, + 1, + 2, + 3, + 4, + 5, + 6] + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/leggings.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/leggings.png new file mode 100644 index 0000000000..052f60e3f4 Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/leggings.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/leggings.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/leggings.png.mcmeta new file mode 100644 index 0000000000..8408d5f187 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/health_boost/leggings.png.mcmeta @@ -0,0 +1,16 @@ +{ + "animation": { + "frametime": 2, + "interpolate": true, + "frames": [ + { "index": 0, + "time": 19 }, + 0, + 1, + 2, + 3, + 4, + 5, + 6] + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/boots.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/boots.png new file mode 100644 index 0000000000..0c71b6aa49 Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/boots.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/boots.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/boots.png.mcmeta new file mode 100644 index 0000000000..8408d5f187 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/boots.png.mcmeta @@ -0,0 +1,16 @@ +{ + "animation": { + "frametime": 2, + "interpolate": true, + "frames": [ + { "index": 0, + "time": 19 }, + 0, + 1, + 2, + 3, + 4, + 5, + 6] + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/chestplate.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/chestplate.png new file mode 100644 index 0000000000..80bb583e62 Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/chestplate.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/chestplate.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/chestplate.png.mcmeta new file mode 100644 index 0000000000..8408d5f187 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/chestplate.png.mcmeta @@ -0,0 +1,16 @@ +{ + "animation": { + "frametime": 2, + "interpolate": true, + "frames": [ + { "index": 0, + "time": 19 }, + 0, + 1, + 2, + 3, + 4, + 5, + 6] + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/helmet.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/helmet.png new file mode 100644 index 0000000000..877250bac8 Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/helmet.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/helmet.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/helmet.png.mcmeta new file mode 100644 index 0000000000..8408d5f187 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/helmet.png.mcmeta @@ -0,0 +1,16 @@ +{ + "animation": { + "frametime": 2, + "interpolate": true, + "frames": [ + { "index": 0, + "time": 19 }, + 0, + 1, + 2, + 3, + 4, + 5, + 6] + } +} diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/leggings.png b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/leggings.png new file mode 100644 index 0000000000..be2ad14853 Binary files /dev/null and b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/leggings.png differ diff --git a/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/leggings.png.mcmeta b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/leggings.png.mcmeta new file mode 100644 index 0000000000..8408d5f187 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/gm4_zauber_cauldrons/textures/item/zauber_armor/speed_boost/leggings.png.mcmeta @@ -0,0 +1,16 @@ +{ + "animation": { + "frametime": 2, + "interpolate": true, + "frames": [ + { "index": 0, + "time": 19 }, + 0, + 1, + 2, + 3, + 4, + 5, + 6] + } +} diff --git a/gm4_zauber_cauldrons/assets/model_data.yaml b/gm4_zauber_cauldrons/assets/model_data.yaml new file mode 100644 index 0000000000..86f5b42458 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/model_data.yaml @@ -0,0 +1,72 @@ +model_data: + - item: prismarine_shard + reference: item/enchanted_prismarine_shard + template: generated + - item: glass_bottle + reference: item/magic_in_a_bottle + template: generated + - item: potion + reference: item/wormhole_in_a_bottle + template: generated_overlay + - item: [player_head, firework_star] + template: generated + broadcast: + - reference: item/crystal/instant_damage + - reference: item/crystal/instant_health + - reference: item/crystal/jump_boost + - reference: item/crystal/poison + - reference: item/crystal/regeneration + - reference: item/crystal/speed + - reference: item/crystal/strength + # potion solutions registered by generate.py + # armor registered by generate.py + # magicol liquid registered by generate.py + - item: [potion, splash_potion, lingering_potion] + template: vanilla + broadcast: + - reference: item/bottled_magicol/polar + - reference: item/bottled_magicol/temperate + - reference: item/bottled_magicol/arid + - item: [potion, splash_potion, lingering_potion] + template: vanilla + broadcast: + - reference: item/bottled_magicol_soulution/polar + - reference: item/bottled_magicol_soulution/temperate + - reference: item/bottled_magicol_soulution/arid + - item: structure_void + reference: block/zauber_cauldron + transforms: + - name: item_display + origin: [0.5,0.5,0.125] + scale: [1,1,1] + display: thirdperson_righthand + - item: cauldron + reference: gui/advancement/zauber_cauldrons_create + template: advancement + - item: chorus_fruit + reference: gui/advancement/zauber_cauldrons_wormhole + template: + name: advancement + forward: item/wormhole_in_a_bottle + - item: glass_bottle + reference: gui/advancement/zauber_cauldron_drink_multi_use_bottle + template: advancement + - item: golden_chestplate + reference: gui/advancement/zauber_cauldrons_full_armor + template: + name: advancement + forward: item/zauber_armor/attack_boost/chestplate + - item: rabbit_foot + reference: gui/advancement/zauber_cauldrons_rabbit + template: advancement + - item: potion + reference: gui/advancement/zauber_cauldrons_drink_all_magicol + template: + name: advancement + forward: item/bottled_magicol/temperate_potion + - item: clock + reference: gui/advancement/zauber_cauldrons_make_magicol + template: advancement + - item: grass_block + reference: gui/advancement/zauber_cauldrons_paint_biome + template: advancement diff --git a/gm4_zauber_cauldrons/assets/translations.csv b/gm4_zauber_cauldrons/assets/translations.csv new file mode 100644 index 0000000000..c1e38e4430 --- /dev/null +++ b/gm4_zauber_cauldrons/assets/translations.csv @@ -0,0 +1,122 @@ +key,en_us +advancement.gm4.zauber_cauldrons.creation.description,Create a Zauber Cauldron +advancement.gm4.zauber_cauldrons.creation.title,Potion Chef +advancement.gm4.zauber_cauldrons.drink_all_magicol.description,Drink all colors of Magicol +advancement.gm4.zauber_cauldrons.drink_all_magicol.title,Taste the Rainbow +advancement.gm4.zauber_cauldrons.drink_multi_use_bottle.description,Take the ninth sip out of a single bottle +advancement.gm4.zauber_cauldrons.drink_multi_use_bottle.title,Clean Plate Club +advancement.gm4.zauber_cauldrons.full_armour.description,Suit up with a full suit of Zauber Armor +advancement.gm4.zauber_cauldrons.full_armour.title,Underrated Materials +advancement.gm4.zauber_cauldrons.make_magicol.description,Wait for the right Moon phase to make some Magicol +advancement.gm4.zauber_cauldrons.make_magicol.title,Seeing Things in a New Light +advancement.gm4.zauber_cauldrons.paint_biome.description,Use Bottled Magicol to give a biome a new look +advancement.gm4.zauber_cauldrons.paint_biome.title,Spreading the Magic +advancement.gm4.zauber_cauldrons.rabbit.description,Where did my lunch go? +advancement.gm4.zauber_cauldrons.rabbit.title,Soup Kitchen Magician +advancement.gm4.zauber_cauldrons.wormhole.description,Just like the rabbits! +advancement.gm4.zauber_cauldrons.wormhole.title,Questionable Ingredients +entity.gm4.possessed_item,Possessed Item\u00A7 +entity.gm4.zauber_cauldrons.smog.instant_health,their own incompetence +entity.gm4.zauber_cauldrons.smog.regeneration,the mess they made +item.gm4.enchanted_prismarine_shard,Enchanted Prismarine Shard +item.gm4.magic_in_a_bottle,Magic in a Bottle +item.gm4.wormhole_in_a_bottle,Wormhole in a Bottle +item.gm4.zauber_cauldrons.bottled_magicol.arid,Bottle of Arid Magicol +item.gm4.zauber_cauldrons.bottled_magicol.polar,Bottle of Polar Magicol +item.gm4.zauber_cauldrons.bottled_magicol.temperate,Bottle of Temperate Magicol +item.gm4.zauber_cauldrons.bottled_magicol.tint.black,Black Tint +item.gm4.zauber_cauldrons.bottled_magicol.tint.blue,Blue Tint +item.gm4.zauber_cauldrons.bottled_magicol.tint.brown,Brown Tint +item.gm4.zauber_cauldrons.bottled_magicol.tint.cyan,Cyan Tint +item.gm4.zauber_cauldrons.bottled_magicol.tint.gray,Gray Tint +item.gm4.zauber_cauldrons.bottled_magicol.tint.green,Green Tint +item.gm4.zauber_cauldrons.bottled_magicol.tint.light_blue,Light Blue Tint +item.gm4.zauber_cauldrons.bottled_magicol.tint.light_gray,Light Gray Tint +item.gm4.zauber_cauldrons.bottled_magicol.tint.lime,Lime Tint +item.gm4.zauber_cauldrons.bottled_magicol.tint.magenta,Magenta Tint +item.gm4.zauber_cauldrons.bottled_magicol.tint.orange,Orange Tint +item.gm4.zauber_cauldrons.bottled_magicol.tint.pink,Pink Tint +item.gm4.zauber_cauldrons.bottled_magicol.tint.purple,Purple Tint +item.gm4.zauber_cauldrons.bottled_magicol.tint.red,Red Tint +item.gm4.zauber_cauldrons.bottled_magicol.tint.white,White Tint +item.gm4.zauber_cauldrons.bottled_magicol.tint.yellow,Yellow Tint +item.gm4.zauber_cauldrons.crystal.instant_damage,Crystal of Harming +item.gm4.zauber_cauldrons.crystal.instant_health,Crystal of Healing +item.gm4.zauber_cauldrons.crystal.jump_boost,Crystal of Leaping +item.gm4.zauber_cauldrons.crystal.poison,Crystal of Poison +item.gm4.zauber_cauldrons.crystal.regeneration,Crystal of Regeneration +item.gm4.zauber_cauldrons.crystal.speed,Crystal of Swiftness +item.gm4.zauber_cauldrons.crystal.strength,Crystal of Strength +item.gm4.zauber_cauldrons.multi_use_bottle.bottled_magicol.arid,Soulution of Arid Magicol +item.gm4.zauber_cauldrons.multi_use_bottle.bottled_magicol.polar,Soulution of Polar Magicol +item.gm4.zauber_cauldrons.multi_use_bottle.bottled_magicol.temperate,Soulution of Temperate Magicol +item.gm4.zauber_cauldrons.multi_use_bottle.lingering.harming,Lingering Soulution of Harming +item.gm4.zauber_cauldrons.multi_use_bottle.lingering.healing,Lingering Soulution of Healing +item.gm4.zauber_cauldrons.multi_use_bottle.lingering.leaping,Lingering Soulution of Leaping +item.gm4.zauber_cauldrons.multi_use_bottle.lingering.poison,Lingering Soulution of Poison +item.gm4.zauber_cauldrons.multi_use_bottle.lingering.regeneration,Lingering Soulution of Regeneration +item.gm4.zauber_cauldrons.multi_use_bottle.lingering.strength,Lingering Soulution of Strength +item.gm4.zauber_cauldrons.multi_use_bottle.lingering.swiftness,Lingering Soulution of Swiftness +item.gm4.zauber_cauldrons.multi_use_bottle.lore.sips,Sips +item.gm4.zauber_cauldrons.multi_use_bottle.lore.throws,Throws +item.gm4.zauber_cauldrons.multi_use_bottle.drinkable.harming,Soulution of Harming +item.gm4.zauber_cauldrons.multi_use_bottle.drinkable.healing,Soulution of Healing +item.gm4.zauber_cauldrons.multi_use_bottle.drinkable.leaping,Soulution of Leaping +item.gm4.zauber_cauldrons.multi_use_bottle.drinkable.poison,Soulution of Poison +item.gm4.zauber_cauldrons.multi_use_bottle.drinkable.regeneration,Soulution of Regeneration +item.gm4.zauber_cauldrons.multi_use_bottle.drinkable.strength,Soulution of Strength +item.gm4.zauber_cauldrons.multi_use_bottle.drinkable.swiftness,Soulution of Swiftness +item.gm4.zauber_cauldrons.multi_use_bottle.splash.harming,Splash Soulution of Harming +item.gm4.zauber_cauldrons.multi_use_bottle.splash.healing,Splash Soulution of Healing +item.gm4.zauber_cauldrons.multi_use_bottle.splash.leaping,Splash Soulution of Leaping +item.gm4.zauber_cauldrons.multi_use_bottle.splash.poison,Splash Soulution of Poison +item.gm4.zauber_cauldrons.multi_use_bottle.splash.regeneration,Splash Soulution of Regeneration +item.gm4.zauber_cauldrons.multi_use_bottle.splash.strength,Splash Soulution of Strength +item.gm4.zauber_cauldrons.multi_use_bottle.splash.swiftness,Splash Soulution of Swiftness +item.gm4.zauber_cauldrons.zauber_armor.boots,Zauber Boots +item.gm4.zauber_cauldrons.zauber_armor.chestplate,Zauber Chestplate +item.gm4.zauber_cauldrons.zauber_armor.helmet,Zauber Helmet +item.gm4.zauber_cauldrons.zauber_armor.leggings,Zauber Leggings +item.gm4.zauber_cauldrons.zauber_armor.magic,+%s%% Magic +text.gm4.guidebook.module_desc.zauber_cauldrons,"Powerful potions, Wormholes, portable Beacons and special armour that makes you stronger! Zauber Cauldrons adds an entire magic branch to the game." +text.gm4.guidebook.zauber_cauldrons.description,"Zauber Cauldrons expand the magic system, allowing the creation of stronger potions, magical armour, effect granting crystals, and bottled wormholes." +text.gm4.guidebook.zauber_cauldrons.section.creation,Creation +text.gm4.guidebook.zauber_cauldrons.creation,A Zauber Cauldron is created by holding an enchanted book while looking into a water-filled cauldron over fire.\n\nSoul fire and campfires work as well. +text.gm4.guidebook.zauber_cauldrons.recipes,"Zauber recipes are performed by dropping items into the cauldron, consuming some water for each recipe.\n\nWhen looking at a Zauber Cauldron, items inside the cauldron won't be picked up." +text.gm4.guidebook.zauber_cauldrons.section.potions,Zauber Potions +text.gm4.guidebook.zauber_cauldrons.tier_4_potions,"Powerful tier IV potions can be created by dropping a tier II potion, prismarine crystals, and golden apple into the cauldron.\n\nThere are some side effects when creating the tier IV potions." +text.gm4.guidebook.zauber_cauldrons.splash_and_lingering_potions,Splash and Lingering potions create an excess of heat and will explode if used in a tier IV potion recipe.\n\nUsing a snow powder cauldron will absorb the heat and successfully create a splash or lingering tier IV potion. +text.gm4.guidebook.zauber_cauldrons.soulutions,Using soul fire underneath the cauldron will cause all brewed potions to be brewed as a Soulution.\n\nSoulutions can be drank 9 times before emptying. +text.gm4.guidebook.zauber_cauldrons.splash_and_lingering_soulutions,"Splash and Lingering soulutions can be created in the same way.\n\nWhen it lands, a splash or lingering soulution will summon a new soulution bottle at the location." +text.gm4.guidebook.zauber_cauldrons.section.enchanted_prismarine_shard,Advanced Reactants +text.gm4.guidebook.zauber_cauldrons.enchanted_prismarine_shard,An enchanted prismarine shard is used to upgrade armour and as a way to get Luck.\n\nThey can be created in a Zauber Cauldron or bought from a wandering trader. +text.gm4.guidebook.zauber_cauldrons.enchanted_prismarine_shard_creation,They can be created by dropping a prismarine shard in the cauldron while standing nearby with at least 30 experience levels.\n\nThis will consume 30 levels from the nearest applicable observer. +text.gm4.guidebook.zauber_cauldrons.section.armor,Zauber Armour +text.gm4.guidebook.zauber_cauldrons.armor,"Zauber armour can be made with a piece of gold armour, an enchanted prismarine shard and a modifier item." +text.gm4.guidebook.zauber_cauldrons.armor_modifiers,The following items can be used as a modifier.\n\nGlistering Melon\n +6 health\nBlaze Powder\n +35% Attack Damage\nSugar\n +12% Speed\nTurtle Helmet\n +1 Armour\n\nWearing a full set buffs the most prevalent modifier(s). +text.gm4.guidebook.zauber_cauldrons.armor_effects,"Zauber armour has about a 55% increase in defense compared to normal gold armour.\n\nEach piece of Zauber Armour also has an Armour Toughness of 3, making it comparable to diamond armour." +text.gm4.guidebook.zauber_cauldrons.section.crystals,Zauber Crystals +text.gm4.guidebook.zauber_cauldrons.crystals,"Zauber Crystals can be created with a sea lantern, nether star and tier IV potion.\n\nCrystals only function in the offhand of someone with the luck effect." +text.gm4.guidebook.zauber_cauldrons.section.luck,Luck +text.gm4.guidebook.zauber_cauldrons.lucky_flowers,Each world has a different set of 'lucky' and 'poisonous' flowers.\n\nEach of the twelve small flowers fall under one of those categories. +text.gm4.guidebook.zauber_cauldrons.luck_output,"These flowers are used for the Luck recipe, which grants the nearest one with Luck until death.\n\nIf some of the lucky flowers are missing from the Luck recipe, then nothing will happen." +text.gm4.guidebook.zauber_cauldrons.luck_output_poison,"However, if a poisonous flower is added to the recipe, the cauldron will emit a poisonous cloud." +text.gm4.guidebook.zauber_cauldrons.luck,"Luck can be granted to the nearest user by throwing lucky flowers, an enchanted prismarine shard, and short grass into a zauber cauldron." +text.gm4.guidebook.zauber_cauldrons.section.extra_ingredients,Magic in a Bottle +text.gm4.guidebook.zauber_cauldrons.extra_ingredients,"Any extra ingredients added to a Zauber recipe will leave the cauldron as Possessed Items, weaponless vexes." +text.gm4.guidebook.zauber_cauldrons.bottling_vexes,"If a glass bottle is added to a recipe with extra ingredients, it will capture Possessed Items in groups of three, forming a Magic in a Bottle." +text.gm4.guidebook.zauber_cauldrons.magic_in_a_bottle,"If a Magic in a Bottle is left on the ground, the bottle will break and release the vexes.\n\nA Magic in a Bottle stores the location it was created which is useful in creating wormholes." +text.gm4.guidebook.zauber_cauldrons.bottled_vex_moon_phase,"Each Magic in a Bottle has a preferred moon phase.\n\nDuring this moon phase, the bottle doesn't break as quickly and will sparkle to players wearing full zauber armor." +text.gm4.guidebook.zauber_cauldrons.section.magicol,Magicol +text.gm4.guidebook.zauber_cauldrons.magicol_description,"Water inside a Cauldron can be converted into a liquid called Magicol.\n\nMagicol is useful for converting areas into colored, spawn-proof biomes." +text.gm4.guidebook.zauber_cauldrons.magicol_creation,"Dropping Magic in a Bottle, an enchanted prismarine shard and a dye into a water-filled zauber cauldron will dye the liquid into magicol.\n\nThe level of the liquid is conserved through this process." +text.gm4.guidebook.zauber_cauldrons.magicol_bottling,"During the preferred moon phase of the magic in a bottle used to create the Magicol, it can be bottled. This is done by dropping a splash or lingering water bottle and one piece of prismarine crystals, along with either a slime ball, magma cream, or snowball." +text.gm4.guidebook.zauber_cauldrons.downfall,"Magicol bottled with slime balls will be temperate with rain.\n\nWith magma cream they will be arid with no rain, and with snowballs they will be polar with snow." +text.gm4.guidebook.zauber_cauldrons.magicol_potion_types,"Soulutions can be created as normal.\n\nLingering bottles of magicol will create permanent particles inside the biome.\n\nDrinkable bottles of magicol can be created, but have no effect." +text.gm4.guidebook.zauber_cauldrons.bottled_magicol_usage,Throwing a magicol bottle will cause the splashed area to turn into a new biome.\n\nThese biomes are colored according to the magicol liquid and do not spawn any mobs. +text.gm4.guidebook.zauber_cauldrons.magicol_biome_colors,"When a new magicol biome is created, short grass and flowers will grow.\n\nLucky flowers are the only ones that grow when first splashing an area." +text.gm4.guidebook.zauber_cauldrons.section.wormholes,Wormholes +text.gm4.guidebook.zauber_cauldrons.wormhole_creation,"Throwing an Enchanted Shard, Magic in a Bottle, and some quantity of both Chorus Fruit and Popped Chorus Fruit will create a Wormhole in a Bottle with the location of the Magic in a Bottle." +text.gm4.guidebook.zauber_cauldrons.wormhole_chorus_amounts,"The precise amount of fruit is different for each world, and requires experiments with blurry wormholes and possessed items.\n\nToo few chorus will result in blurry wormholes, locating to a random nearby location." +text.gm4.guidebook.zauber_cauldrons.wormhole_chorus_amounts_1,"If too many chorus or popped chorus are used, the excess fruit will transform into possessed items, but a precise wormhole will be created." +text.gm4.guidebook.zauber_cauldrons.wormhole_teleportation,"Wormholes explode when the drinker reaches their destination, damaging surrounding blocks without harming the drinker.\n\nIf they end up in a cauldron, there no is explosion." diff --git a/gm4_zauber_cauldrons/beet.yaml b/gm4_zauber_cauldrons/beet.yaml index 37d04ec6b8..b85ced73d1 100644 --- a/gm4_zauber_cauldrons/beet.yaml +++ b/gm4_zauber_cauldrons/beet.yaml @@ -5,6 +5,9 @@ version: 1.10.X data_pack: load: . +resource_pack: + load: . + require: - bolt @@ -30,126 +33,6 @@ meta: schedule_loops: - main - cauldron/extra_items/process_bottled_vex_items - model_data: - - item: prismarine_shard - reference: item/enchanted_prismarine_shard - template: generated - - item: glass_bottle - reference: item/magic_in_a_bottle - template: generated - - item: potion - reference: item/wormhole_in_a_bottle - template: generated_overlay - - item: [player_head, firework_star] - template: generated - broadcast: - - reference: item/crystal/harming - - reference: item/crystal/health - - reference: item/crystal/leaping - - reference: item/crystal/poison - - reference: item/crystal/regeneration - - reference: item/crystal/speed - - reference: item/crystal/strength - - item: golden_helmet - template: generated - broadcast: - - reference: item/zauber_armor/armor/helmet - - reference: item/zauber_armor/attack/helmet - - reference: item/zauber_armor/health/helmet - - reference: item/zauber_armor/speed/helmet - - item: golden_chestplate - template: generated - broadcast: - - reference: item/zauber_armor/armor/chestplate - - reference: item/zauber_armor/attack/chestplate - - reference: item/zauber_armor/health/chestplate - - reference: item/zauber_armor/speed/chestplate - - item: golden_leggings - template: generated - broadcast: - - reference: item/zauber_armor/armor/leggings - - reference: item/zauber_armor/attack/leggings - - reference: item/zauber_armor/health/leggings - - reference: item/zauber_armor/speed/leggings - - item: golden_boots - template: generated - broadcast: - - reference: item/zauber_armor/armor/boots - - reference: item/zauber_armor/attack/boots - - reference: item/zauber_armor/health/boots - - reference: item/zauber_armor/speed/boots - - template: vanilla - broadcast: - - reference: block/liquid_magicol/white - item: white_concrete_powder - - reference: block/liquid_magicol/light_gray - item: light_gray_concrete_powder - - reference: block/liquid_magicol/gray - item: gray_concrete_powder - - reference: block/liquid_magicol/black - item: black_concrete_powder - - reference: block/liquid_magicol/brown - item: brown_concrete_powder - - reference: block/liquid_magicol/red - item: red_concrete_powder - - reference: block/liquid_magicol/orange - item: orange_concrete_powder - - reference: block/liquid_magicol/yellow - item: yellow_concrete_powder - - reference: block/liquid_magicol/lime - item: lime_concrete_powder - - reference: block/liquid_magicol/green - item: green_concrete_powder - - reference: block/liquid_magicol/cyan - item: cyan_concrete_powder - - reference: block/liquid_magicol/light_blue - item: light_blue_concrete_powder - - reference: block/liquid_magicol/blue - item: blue_concrete_powder - - reference: block/liquid_magicol/purple - item: purple_concrete_powder - - reference: block/liquid_magicol/magenta - item: magenta_concrete_powder - - reference: block/liquid_magicol/pink - item: pink_concrete_powder - - item: [potion, splash_potion, lingering_potion] - broadcast: - - reference: item/bottled_magicol/polar - - reference: item/bottled_magicol/temperate - - reference: item/bottled_magicol/arid - - item: [potion, splash_potion, lingering_potion] - broadcast: - - reference: item/bottled_magicol_soulution/polar - - reference: item/bottled_magicol_soulution/temperate - - reference: item/bottled_magicol_soulution/arid - - item: [potion, splash_potion, lingering_potion] - broadcast: - - reference: item/soulution_potion/instand_damage - - reference: item/soulution_potion/instant_health - - reference: item/soulution_potion/jump_boost - - reference: item/soulution_potion/poison - - reference: item/soulution_potion/regeneration - - reference: item/soulution_potion/speed - - reference: item/soulution_potion/strength - - item: cauldron - reference: gui/advancement/zauber_cauldrons_create - template: advancement - - item: chorus_fruit - reference: gui/advancement/zauber_cauldrons_wormhole - template: - name: advancement - forward: item/wormhole_in_a_bottle - - item: glass_bottle - reference: gui/advancement/zauber_cauldron_drink_multi_use_bottle - template: advancement - - item: golden_chestplate - reference: gui/advancement/zauber_cauldrons_full_armor - template: - name: advancement - forward: item/zauber_armor/attack/chestplate - - item: rabbit_foot - reference: gui/advancement/zauber_cauldrons_rabbit - template: advancement website: description: Powerful potions, Wormholes, portable Beacons and special armour that makes you stronger! Zauber Cauldrons adds an entire magic branch to the game. recommended: @@ -165,7 +48,8 @@ meta: - Bloo - Lue - BluePsychoRanger - Pixel Art: + Textures: - Memo + - Kyrius Icon Design: - DuckJr diff --git a/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_create.json b/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_create.json index b932eeab44..fd54a1c8d6 100644 --- a/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_create.json +++ b/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_create.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "cauldron", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/zauber_cauldrons_create'}" }, "title": { "translate": "advancement.gm4.zauber_cauldrons.creation.title", diff --git a/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_drink_all_magicol.json b/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_drink_all_magicol.json index 688cfe7c44..0cb56b98ac 100644 --- a/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_drink_all_magicol.json +++ b/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_drink_all_magicol.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:potion", - "nbt": "{CustomModelData:3420000}" + "nbt": "{CustomModelData:'gui/advancement/zauber_cauldrons_drink_all_magicol'}" }, "title": { "translate": "advancement.gm4.zauber_cauldrons.drink_all_magicol.title", diff --git a/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_drink_multi_use_bottle.json b/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_drink_multi_use_bottle.json index c75530b45f..4ef728b6d2 100644 --- a/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_drink_multi_use_bottle.json +++ b/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_drink_multi_use_bottle.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "glass_bottle", - "nbt": "{CustomModelData:3420004}" + "nbt": "{CustomModelData:'gui/advancement/zauber_cauldron_drink_multi_use_bottle'}" }, "title": { "translate": "advancement.gm4.zauber_cauldrons.drink_multi_use_bottle.title", diff --git a/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_full_armor.json b/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_full_armor.json index 1d19d2f562..440ade0d38 100644 --- a/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_full_armor.json +++ b/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_full_armor.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:golden_chestplate", - "nbt": "{CustomModelData:3420006}" + "nbt": "{CustomModelData:'gui/advancement/zauber_cauldrons_full_armor'}" }, "title": { "translate": "advancement.gm4.zauber_cauldrons.full_armour.title", diff --git a/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_make_magicol.json b/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_make_magicol.json index b76038ba88..87eb1ea5a4 100644 --- a/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_make_magicol.json +++ b/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_make_magicol.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "clock", - "nbt": "{CustomModelData:3420000}" + "nbt": "{CustomModelData:'gui/advancement/zauber_cauldrons_make_magicol'}" }, "title": { "translate": "advancement.gm4.zauber_cauldrons.make_magicol.title", diff --git a/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_paint_biome.json b/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_paint_biome.json index ac402892b4..4af56136df 100644 --- a/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_paint_biome.json +++ b/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_paint_biome.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "grass_block", - "nbt": "{CustomModelData:3420000}" + "nbt": "{CustomModelData:'gui/advancement/zauber_cauldrons_paint_biome'}" }, "title": { "translate": "advancement.gm4.zauber_cauldrons.paint_biome.title", diff --git a/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_rabbit.json b/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_rabbit.json index 9b73568528..5d35f193cd 100644 --- a/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_rabbit.json +++ b/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_rabbit.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "rabbit_foot", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/zauber_cauldrons_rabbit'}" }, "title": { "translate": "advancement.gm4.zauber_cauldrons.rabbit.title", diff --git a/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_wormhole.json b/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_wormhole.json index ee4ead9fba..ab62116f03 100644 --- a/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_wormhole.json +++ b/gm4_zauber_cauldrons/data/gm4/advancements/zauber_cauldrons_wormhole.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "chorus_fruit", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/zauber_cauldrons_wormhole'}" }, "title": { "translate": "advancement.gm4.zauber_cauldrons.wormhole.title", diff --git a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/functions/cauldron/setup/create.mcfunction b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/functions/cauldron/setup/create.mcfunction index e768acf819..5ded3324b2 100644 --- a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/functions/cauldron/setup/create.mcfunction +++ b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/functions/cauldron/setup/create.mcfunction @@ -8,7 +8,7 @@ advancement grant @s only gm4:zauber_cauldrons_create playsound minecraft:entity.illusioner.prepare_mirror master @a[distance=..8] ~.5 ~.5 ~.5 1 1.6 # summon texture display -summon minecraft:item_display ~.5 ~.5 ~.125 {CustomName:'"gm4_zc_texture"',item:{id:"minecraft:structure_void",Count:1b,tag:{CustomModelData:3420000}},item_display:"thirdperson_righthand",Tags:["gm4_zc_texture","smithed.entity","smithed.strict"]} +summon minecraft:item_display ~.5 ~.5 ~.125 {CustomName:'"gm4_zc_texture"',item:{id:"minecraft:structure_void",Count:1b,tag:{CustomModelData:'block/zauber_cauldron'}},item_display:"thirdperson_righthand",Tags:["gm4_zc_texture","smithed.entity","smithed.strict"]} # start creation animation summon area_effect_cloud ~.5 ~.5 ~.5 {Radius:0,Age:-40,CustomName:'"gm4_zc_creation_animation"',Tags:["gm4_zc_creation_animation"],Particle:"block air"} diff --git a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/functions/recipes/potions/environmental_effects/instant_health.mcfunction b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/functions/recipes/potions/environmental_effects/instant_health.mcfunction index e0100c05f0..bf7d851adf 100644 --- a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/functions/recipes/potions/environmental_effects/instant_health.mcfunction +++ b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/functions/recipes/potions/environmental_effects/instant_health.mcfunction @@ -3,4 +3,4 @@ # run from recipes/potions/ recipes # applies environmental effects caused by recipes -summon area_effect_cloud ~ ~.75 ~ {CustomName:'{"translate":"entity.gm4.zauber_cauldrons.smog.regeneration","fallback":"their own incompetence"}',Radius:2.1f,Duration:2147483647,RadiusOnUse:-0.75f,RadiusPerTick:-0.0005f,ReapplicationDelay:0,effects:[{id:"minecraft:instant_damage",amplifier:8,duration:40}]} +summon area_effect_cloud ~ ~.75 ~ {CustomName:'{"translate":"entity.gm4.zauber_cauldrons.smog.instant_health","fallback":"their own incompetence"}',Radius:2.1f,Duration:2147483647,RadiusOnUse:-0.75f,RadiusPerTick:-0.0005f,ReapplicationDelay:0,effects:[{id:"minecraft:instant_damage",amplifier:8,duration:40}]} diff --git a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/guidebook/zauber_cauldrons.json b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/guidebook/zauber_cauldrons.json index bc2f1646f0..455a8fb29b 100644 --- a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/guidebook/zauber_cauldrons.json +++ b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/guidebook/zauber_cauldrons.json @@ -3,8 +3,7 @@ "name": "Zauber Cauldrons", "module_type": "module", "icon": { - "item": "minecraft:cauldron", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:cauldron" }, "criteria": { "obtain_enchanted_book": { diff --git a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/loot_tables/items/bottled_vex.json b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/loot_tables/items/bottled_vex.json index 82f7905c49..f311738e69 100644 --- a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/loot_tables/items/bottled_vex.json +++ b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/loot_tables/items/bottled_vex.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420003,gm4_zauber_cauldrons:{item:\"bottled_vex\"},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" + "tag": "{CustomModelData:'item/magic_in_a_bottle',gm4_zauber_cauldrons:{item:\"bottled_vex\"},Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:1}" }, { "function": "minecraft:copy_nbt", diff --git a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/loot_tables/items/enchanted_prismarine_shard.json b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/loot_tables/items/enchanted_prismarine_shard.json index 68f59a0ae1..e2a166d6ed 100644 --- a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/loot_tables/items/enchanted_prismarine_shard.json +++ b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/loot_tables/items/enchanted_prismarine_shard.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,Enchantments:[{lvl:1s,id:\"minecraft:unbreaking\"}],gm4_zauber_cauldrons:{item:\"enchanted_prismarine_shard\"},HideFlags:1}" + "tag": "{CustomModelData:'item/enchanted_prismarine_shard',Enchantments:[{lvl:1s,id:\"minecraft:unbreaking\"}],gm4_zauber_cauldrons:{item:\"enchanted_prismarine_shard\"},HideFlags:1}" }, { "function": "minecraft:set_name", diff --git a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/loot_tables/items/wormhole.json b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/loot_tables/items/wormhole.json index 60b578b238..4017808d7e 100644 --- a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/loot_tables/items/wormhole.json +++ b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/loot_tables/items/wormhole.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420001,gm4_zauber_cauldrons:{item:\"wormhole_bottle\",bottle:{multi_use:0b}},Potion:\"minecraft:thick\",CustomPotionColor:8587123,Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:33}" + "tag": "{CustomModelData:'item/wormhole_in_a_bottle',gm4_zauber_cauldrons:{item:\"wormhole_bottle\",bottle:{multi_use:0b}},Potion:\"minecraft:thick\",CustomPotionColor:8587123,Enchantments:[{id:\"minecraft:protection\",lvl:0s}],HideFlags:33}" }, { "function": "minecraft:set_name", diff --git a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/functions/magicol/craft_liquid_magicol.mcfunction b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/functions/magicol/craft_liquid_magicol.mcfunction index 1121e8ee2e..4e41561c91 100644 --- a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/functions/magicol/craft_liquid_magicol.mcfunction +++ b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/functions/magicol/craft_liquid_magicol.mcfunction @@ -20,7 +20,7 @@ data modify entity @s data.gm4_zauber_cauldrons.liquid set value {id:"magicol",m data modify entity @s data.gm4_zauber_cauldrons.liquid.magicol.moon_phase set from storage gm4_zauber_cauldrons:temp/cauldron/ingredients items[{Count:1b,tag:{gm4_zauber_cauldrons:{item:"bottled_vex"}}}].tag.gm4_zauber_cauldrons.preferred_moon_phase # visuals -summon minecraft:item_display ~ ~.0781 ~ {item:{id:"minecraft:{{color}}_concrete_powder",Count:1b,tag:{CustomModelData:{{liquid_custom_model_data}}}},item_display:"fixed",transformation:[1.984f,0f,0f,0f,0f,0f,0f,0f,0f,0f,1.984f,0f,0f,0f,0f,1f],Tags:["gm4_zc_liquid","gm4_zc_magicol","gm4_zc_{{color}}_magicol"]} +summon minecraft:item_display ~ ~.0781 ~ {item:{id:"minecraft:{{color}}_concrete_powder",Count:1b,tag:{CustomModelData:"block/liquid_magicol/{{color}}"}},item_display:"fixed",transformation:[1.984f,0f,0f,0f,0f,0f,0f,0f,0f,0f,1.984f,0f,0f,0f,0f,1f],Tags:["gm4_zc_liquid","gm4_zc_magicol","gm4_zc_{{color}}_magicol"]} # set flag scoreboard players set $recipe_success gm4_zc_data 1 diff --git a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/loot_tables/bottled_magicol.json b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/loot_tables/bottled_magicol.json index e571dae202..82a95fa681 100644 --- a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/loot_tables/bottled_magicol.json +++ b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/loot_tables/bottled_magicol.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{gm4_zauber_cauldrons:{item:\"bottled_magicol\",color:\"{{color}}\",weather_modifier:\"{{weather_modifier}}\",bottle:{multi_use:0}},HideFlags:32,CustomPotionColor:{{potion_color}},CustomModelData:{{bottle_custom_model_data}}}" + "tag": "{gm4_zauber_cauldrons:{item:\"bottled_magicol\",color:\"{{color}}\",weather_modifier:\"{{weather_modifier}}\",bottle:{multi_use:0}},HideFlags:32,CustomPotionColor:{{potion_color}},CustomModelData:\"item/bottled_magicol/{{weather_modifier}}\"}" }, { "function": "minecraft:set_name", @@ -72,7 +72,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:{{soulution_bottle_custom_model_data}}}", + "tag": "{CustomModelData:\"item/bottled_magicol_soulution/{{weather_modifier}}\"}", "conditions": [ { "condition": "minecraft:value_check", diff --git a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/loot_tables/replace_offhand_crystal.json b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/loot_tables/replace_offhand_crystal.json index 68689dc630..75930e61e4 100644 --- a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/loot_tables/replace_offhand_crystal.json +++ b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/loot_tables/replace_offhand_crystal.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:{{custom_model_data}},HideFlags:34,Explosion:{Colors:[I;{{custom_potion_color}}]}}" + "tag": "{CustomModelData:\"item/crystal/{{effect}}\",HideFlags:34,Explosion:{Colors:[I;{{custom_potion_color}}]}}" }, { "function": "minecraft:copy_nbt", diff --git a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/loot_tables/zauber_armor.json b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/loot_tables/zauber_armor.json index 5d53bfe7d3..20d7f9d6a6 100644 --- a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/loot_tables/zauber_armor.json +++ b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/loot_tables/zauber_armor.json @@ -17,7 +17,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:{{custom_model_data}}}" + "tag": "{CustomModelData:\"item/zauber_armor/{{flavor}}\"}" }, { "function": "minecraft:copy_nbt", diff --git a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/loot_tables/zauber_crystal.json b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/loot_tables/zauber_crystal.json index 84242774a9..eedd7bddc3 100644 --- a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/loot_tables/zauber_crystal.json +++ b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/loot_tables/zauber_crystal.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:{{custom_model_data}},HideFlags:2,gm4_zauber_cauldrons:{item:\"crystal\",type:\"{{effect}}\"},SkullOwner:{Name:\"[Drop to Fix Item] gm4_zauber_cauldrons:crystal/{{effect}}\",Properties:{textures:[{Value:\"$crystal/{{effect}}\"}]}}}" + "tag": "{CustomModelData:\"item/crystal/{{effect}}\",HideFlags:2,gm4_zauber_cauldrons:{item:\"crystal\",type:\"{{effect}}\"},SkullOwner:{Name:\"[Drop to Fix Item] gm4_zauber_cauldrons:crystal/{{effect}}\",Properties:{textures:[{Value:\"$crystal/{{effect}}\"}]}}}" }, { "function": "minecraft:set_name", diff --git a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/loot_tables/zauber_potion.json b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/loot_tables/zauber_potion.json index 625d6b5c9c..1d00c54f6a 100644 --- a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/loot_tables/zauber_potion.json +++ b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/templates/loot_tables/zauber_potion.json @@ -22,7 +22,7 @@ "function": "minecraft:set_name", "entity": "this", "name": { - "translate": "item.gm4.zauber_cauldrons.multi_use_bottle.potion.{{effect_translate_name}}", + "translate": "item.gm4.zauber_cauldrons.multi_use_bottle.{{bottle}}.{{effect_translate_name}}", "fallback": "{{soulution_translate_fallback}}", "italic": false }, @@ -71,7 +71,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:{{soulution_custom_model_data}}}", + "tag": "{CustomModelData:\"item/soulution_potion/{{effect}}\"}", "conditions": [ { "condition": "minecraft:value_check", diff --git a/gm4_zauber_cauldrons/generate.py b/gm4_zauber_cauldrons/generate.py index bf3741b351..9fdaa044a1 100644 --- a/gm4_zauber_cauldrons/generate.py +++ b/gm4_zauber_cauldrons/generate.py @@ -4,7 +4,7 @@ from gm4.utils import CSV, CSVCell import json -from beet import Context, subproject +from beet import Context, Model, subproject def read_json(path: Path) -> Any: """ @@ -68,7 +68,11 @@ def generate_armor_recipes(ctx: Context, armor_flavors: CSV, armor_pieces: CSV): """ # create a loot tables and functions for each zauber armor piece + flavor combination for flavor_data in armor_flavors: + armor_items: list[str] = [] + armor_models: dict[str, str] = {} for piece_data in armor_pieces: + armor_items.append(item:=f"golden_{piece_data['piece']}") + armor_models.update({item: (tex_model:=f"item/zauber_armor/{flavor_data['flavor']}/{piece_data['piece']}")}) subproject_config = { "data_pack": { @@ -86,7 +90,6 @@ def generate_armor_recipes(ctx: Context, armor_flavors: CSV, armor_pieces: CSV): }, "meta": { "armor_value": piece_data['armor'], - "custom_model_data": flavor_data['custom_model_data'], "flavor": flavor_data['flavor'], "flavor_amount": flavor_data['amount'], "flavor_attribute": flavor_data['attribute'], @@ -99,6 +102,20 @@ def generate_armor_recipes(ctx: Context, armor_flavors: CSV, armor_pieces: CSV): ctx.require(subproject(subproject_config)) + ctx.generate(tex_model, Model({ + "parent": "minecraft:item/generated", + "textures": { + "layer0": f"gm4_zauber_cauldrons:{tex_model}" + } + })) + + ctx.meta["gm4"].setdefault("model_data", []).append({ + "item": armor_items, + "reference": f"item/zauber_armor/{flavor_data['flavor']}", + "model": armor_models, + "template": "custom", + }) + def generate_crystal_recipes(ctx: Context, crystal_effects: CSV, crystal_lores: Dict[str, Any], potion_effects: CSV): """ @@ -122,7 +139,6 @@ def generate_crystal_recipes(ctx: Context, crystal_effects: CSV, crystal_lores: }, "meta": { "effect": effect_data['effect'], - "custom_model_data": effect_data['custom_model_data'], "custom_potion_color": potion_effects.find_row(value=effect_data['effect'], by_column='effect')['custom_potion_color'].to_color_code(CSVCell.DEC), "translate_fallback": effect_data['translate_fallback'], "lore": json.dumps(crystal_lores[effect_data['effect']]) @@ -135,37 +151,43 @@ def generate_potion_recipes(ctx: Context, potion_effects: CSV, potion_bottles: C """ Generates the function tree and loot tables for zauber potions and soulutions. """ - for bottle_data, effect_data in product(potion_bottles, potion_effects): + for effect_data in potion_effects: + for bottle_data in potion_bottles: - subproject_config = { - "data_pack": { - "load": [ - { - f"data/gm4_zauber_cauldrons/functions/recipes/potions/{bottle_data['bottle']}/select_effect.mcfunction": "data/gm4_zauber_cauldrons/templates/functions/potions/select_effect.mcfunction", - f"data/gm4_zauber_cauldrons/functions/recipes/potions/{bottle_data['bottle']}/{effect_data['effect']}.mcfunction": "data/gm4_zauber_cauldrons/templates/functions/potions/craft_potion.mcfunction", - f"data/gm4_zauber_cauldrons/loot_tables/items/potions/{bottle_data['bottle']}/{effect_data['effect']}.json": "data/gm4_zauber_cauldrons/templates/loot_tables/zauber_potion.json" + subproject_config = { + "data_pack": { + "load": [ + { + f"data/gm4_zauber_cauldrons/functions/recipes/potions/{bottle_data['bottle']}/select_effect.mcfunction": "data/gm4_zauber_cauldrons/templates/functions/potions/select_effect.mcfunction", + f"data/gm4_zauber_cauldrons/functions/recipes/potions/{bottle_data['bottle']}/{effect_data['effect']}.mcfunction": "data/gm4_zauber_cauldrons/templates/functions/potions/craft_potion.mcfunction", + f"data/gm4_zauber_cauldrons/loot_tables/items/potions/{bottle_data['bottle']}/{effect_data['effect']}.json": "data/gm4_zauber_cauldrons/templates/loot_tables/zauber_potion.json" + } + ], + "render": { + "functions": "*", + "loot_tables": "*" } - ], - "render": { - "functions": "*", - "loot_tables": "*" + }, + "meta": { + "effect": effect_data['effect'], + "effect_translate_name": effect_data['effect_translate_name'], + "custom_potion_color": effect_data['custom_potion_color'].to_color_code(CSVCell.DEC), + "custom_potion_effects": effect_data['custom_potion_effects'], + "bottle_item_id": bottle_data['item_id'], + "bottle": bottle_data['bottle'], + "soulution_translate_fallback": bottle_data["soulution_translate_fallback_prefix"] + effect_data['soulution_translate_fallback'], + "sips_translate_name": bottle_data['sips_translate_name'], + "sips_translate_fallback": bottle_data['sips_translate_fallback'], + "lore": json.dumps(potion_lores[effect_data['effect']]) } - }, - "meta": { - "effect": effect_data['effect'], - "effect_translate_name": effect_data['effect_translate_name'], - "custom_potion_color": effect_data['custom_potion_color'].to_color_code(CSVCell.DEC), - "custom_potion_effects": effect_data['custom_potion_effects'], - "bottle_item_id": bottle_data['item_id'], - "bottle": bottle_data['bottle'], - "soulution_custom_model_data": effect_data['soulution_custom_model_data'], - "soulution_translate_fallback": effect_data['soulution_translate_fallback'], - "sips_translate_name": bottle_data['sips_translate_name'], - "sips_translate_fallback": bottle_data['sips_translate_fallback'], - "lore": json.dumps(potion_lores[effect_data['effect']]) } - } - ctx.require(subproject(subproject_config)) + ctx.require(subproject(subproject_config)) + + ctx.meta["gm4"]["model_data"].append({ + "item": ["potion", "splash_potion", "lingering_potion"], + "reference": f"item/soulution_potion/{effect_data['effect']}", + "template": "vanilla" + }) def generate_magicol_recipes(ctx: Context, weather_modifiers: CSV, magicol_colors: CSV, potion_bottles: CSV): @@ -193,9 +215,6 @@ def generate_magicol_recipes(ctx: Context, weather_modifiers: CSV, magicol_color "meta": { "color": color_data['color'], "potion_color": color_data['potion_color'].to_color_code(CSVCell.DEC), - "liquid_custom_model_data": color_data['liquid_custom_model_data'], - "bottle_custom_model_data": modifier_data['bottle_custom_model_data'], - "soulution_bottle_custom_model_data": modifier_data['soulution_bottle_custom_model_data'], "bottle": bottle_data['bottle'], "bottle_item_id": bottle_data['item_id'], "weather_modifier": modifier_data['modifier'], @@ -210,6 +229,13 @@ def generate_magicol_recipes(ctx: Context, weather_modifiers: CSV, magicol_color } ctx.require(subproject(subproject_config)) + for color_data in magicol_colors: + ctx.meta["gm4"]["model_data"].append({ + "item": f"{color_data['color']}_concrete_powder", + "reference": f"block/liquid_magicol/{color_data['color']}", + "template": "vanilla" + }) + def generate_zauber_biomes(ctx: Context, weather_modifiers: CSV, magicol_colors: CSV, potion_bottles: CSV, flower_types: CSV): """ diff --git a/gm4_zauber_cauldrons/raw/armor_flavors.csv b/gm4_zauber_cauldrons/raw/armor_flavors.csv index 6e34f4733a..3f30813490 100644 --- a/gm4_zauber_cauldrons/raw/armor_flavors.csv +++ b/gm4_zauber_cauldrons/raw/armor_flavors.csv @@ -1,5 +1,5 @@ -flavor,custom_model_data,ingredient_item_id,attribute,amount,operation -armor_boost,3420005,minecraft:turtle_helmet,minecraft:generic.armor,1,addition -attack_boost,3420003,minecraft:blaze_powder,minecraft:generic.attack_damage,1,addition -health_boost,3420002,minecraft:glistering_melon_slice,minecraft:generic.max_health,4,addition -speed_boost,3420004,minecraft:sugar,minecraft:generic.movement_speed,0.12,multiply_base +flavor,ingredient_item_id,attribute,amount,operation +armor_boost,minecraft:turtle_helmet,minecraft:generic.armor,1,addition +attack_boost,minecraft:blaze_powder,minecraft:generic.attack_damage,1,addition +health_boost,minecraft:glistering_melon_slice,minecraft:generic.max_health,4,addition +speed_boost,minecraft:sugar,minecraft:generic.movement_speed,0.12,multiply_base diff --git a/gm4_zauber_cauldrons/raw/crystal_effects.csv b/gm4_zauber_cauldrons/raw/crystal_effects.csv index 7bacf91ff5..a24f118e87 100644 --- a/gm4_zauber_cauldrons/raw/crystal_effects.csv +++ b/gm4_zauber_cauldrons/raw/crystal_effects.csv @@ -1,8 +1,8 @@ -effect,custom_model_data,translate_fallback -instant_damage,3420054,Crystal of Harming -instant_health,3420055,Crystal of Healing -jump_boost,3420056,Crystal of Leaping -poison,3420057,Crystal of Poison -regeneration,3420013,Crystal of Regeneration -speed,3420012,Crystal of Swiftness -strength,3420058,Crystal of Strength +effect,translate_fallback +instant_damage,Crystal of Harming +instant_health,Crystal of Healing +jump_boost,Crystal of Leaping +poison,Crystal of Poison +regeneration,Crystal of Regeneration +speed,Crystal of Swiftness +strength,Crystal of Strength diff --git a/gm4_zauber_cauldrons/raw/magicol_colors.csv b/gm4_zauber_cauldrons/raw/magicol_colors.csv index 409ae4a3cb..c029c8d121 100644 --- a/gm4_zauber_cauldrons/raw/magicol_colors.csv +++ b/gm4_zauber_cauldrons/raw/magicol_colors.csv @@ -1,17 +1,17 @@ -color,ingredient_item_id,liquid_custom_model_data,color_translate_name,color_translate_fallback,flower,potion_color,sky_color_polar,fog_color_polar,water_color_polar,water_fog_color_polar,grass_color_polar,foliage_color_polar,particle_color_polar,sky_color_temperate,fog_color_temperate,water_color_temperate,water_fog_color_temperate,grass_color_temperate,foliage_color_temperate,particle_color_temperate,sky_color_arid,fog_color_arid,water_color_arid,water_fog_color_arid,grass_color_arid,foliage_color_arid,particle_color_arid -white,minecraft:white_dye,3420300,white,White Tint,short_grass,#DCE0E6,,,,,#BDC3D9,,#BDC3D9,,,,,#D2E2E2,,#D2E2E2,,,,,#FFFFFF,,#FFFFFF -light_gray,minecraft:light_gray_dye,3420300,light_gray,Light Gray Tint,short_grass,#807975,,,,,#96937E,,#96937E,,,,,#B1A997,,#B1A997,,,,,#C7C4B5,,#C7C4B5 -gray,minecraft:gray_dye,3420300,gray,Gray Tint,short_grass,#3F464D,,,,,#53585C,,#53585C,,,,,#5E696F,,#5E696F,,,,,#7C8588,,#7C8588 -black,minecraft:black_dye,3420300,black,Black Tint,short_grass,#1F1B2E,,,,,#16151F,,#16151F,,,,,#292631,,#292631,,,,,#343138,,#343138 -brown,minecraft:brown_dye,3420300,brown,Brown Tint,orange_tulip,#8C613F,,,,,#6F4425,,#6F4425,,,,,#985E31,,#985E31,,,,,#AC7A47,,#AC7A47 -red,minecraft:red_dye,3420300,red,Red Tint,poppy,#A63232,,,,,#B02539,,#B02539,,,,,#CB3431,,#CB3431,,,,,#DE4E40,,#DE4E40 -orange,minecraft:orange_dye,3420300,orange,Orange Tint,red_tulip,#D98341,,,,,#C65112,,#C65112,,,,,#E26C1F,,#E26C1F,,,,,#F49331,,#F49331 -yellow,minecraft:yellow_dye,3420300,yellow,Yellow Tint,dandelion,#F5C149,,,,,#C49313,,#C49313,,,,,#F8A520,,#F8A520,,,,,#EDBC53,,#EDBC53 -lime,minecraft:lime_dye,3420300,lime,Lime Tint,oxeye_daisy,#69B324,,,,,#5CAC1C,,#5CAC1C,,,,,#8BD02C,,#8BD02C,,,,,#B3E14E,,#B3E14E -green,minecraft:green_dye,3420300,green,Green Tint,azure_bluet,#6B8040,,,,,#4C822F,,#4C822F,,,,,#5E9936,,#5E9936,,,,,#80AE4F,,#80AE4F -cyan,minecraft:cyan_dye,3420300,cyan,Cyan Tint,blue_orchid,#36A2B3,,,,,#229967,,#229967,,,,,#35C780,,#35C780,,,,,#6DE591,,#6DE591 -light_blue,minecraft:light_blue_dye,3420300,light_blue,Light Blue Tint,white_tulip,#369DD9,,,,,#43C8D1,,#43C8D1,,,,,#53EFD7,,#53EFD7,,,,,#84FFD3,,#84FFD3 -blue,minecraft:blue_dye,3420300,blue,Blue Tint,cornflower,#474BB3,,,,,#3854AC,,#3854AC,,,,,#417FDE,,#417FDE,,,,,#5DA1E5,,#5DA1E5 -purple,minecraft:purple_dye,3420300,purple,Purple Tint,allium,#762DB3,,,,,#6544B8,,#6544B8,,,,,#A15FEF,,#A15FEF,,,,,#CF80F8,,#CF80F8 -magenta,minecraft:magenta_dye,3420300,magenta,Magenta Tint,pink_tulip,#BA45B2,,,,,#B73AAE,,#B73AAE,,,,,#F153CA,,#F153CA,,,,,#FE73E2,,#FE73E2 -pink,minecraft:pink_dye,3420300,pink,Pink Tint,lily_of_the_valley,#E68AAB,,,,,#D66DA1,,#D66DA1,,,,,#FF8DCC,,#FF8DCC,,,,,#FEA6C2,,#FEA6C2 +color,ingredient_item_id,color_translate_name,color_translate_fallback,flower,potion_color,sky_color_polar,fog_color_polar,water_color_polar,water_fog_color_polar,grass_color_polar,foliage_color_polar,particle_color_polar,sky_color_temperate,fog_color_temperate,water_color_temperate,water_fog_color_temperate,grass_color_temperate,foliage_color_temperate,particle_color_temperate,sky_color_arid,fog_color_arid,water_color_arid,water_fog_color_arid,grass_color_arid,foliage_color_arid,particle_color_arid +white,minecraft:white_dye,white,White Tint,short_grass,#DCE0E6,,,,,#BDC3D9,,#BDC3D9,,,,,#D2E2E2,,#D2E2E2,,,,,#FFFFFF,,#FFFFFF +light_gray,minecraft:light_gray_dye,light_gray,Light Gray Tint,short_grass,#807975,,,,,#96937E,,#96937E,,,,,#B1A997,,#B1A997,,,,,#C7C4B5,,#C7C4B5 +gray,minecraft:gray_dye,gray,Gray Tint,short_grass,#3F464D,,,,,#53585C,,#53585C,,,,,#5E696F,,#5E696F,,,,,#7C8588,,#7C8588 +black,minecraft:black_dye,black,Black Tint,short_grass,#1F1B2E,,,,,#16151F,,#16151F,,,,,#292631,,#292631,,,,,#343138,,#343138 +brown,minecraft:brown_dye,brown,Brown Tint,orange_tulip,#8C613F,,,,,#6F4425,,#6F4425,,,,,#985E31,,#985E31,,,,,#AC7A47,,#AC7A47 +red,minecraft:red_dye,red,Red Tint,poppy,#A63232,,,,,#B02539,,#B02539,,,,,#CB3431,,#CB3431,,,,,#DE4E40,,#DE4E40 +orange,minecraft:orange_dye,orange,Orange Tint,red_tulip,#D98341,,,,,#C65112,,#C65112,,,,,#E26C1F,,#E26C1F,,,,,#F49331,,#F49331 +yellow,minecraft:yellow_dye,yellow,Yellow Tint,dandelion,#F5C149,,,,,#C49313,,#C49313,,,,,#F8A520,,#F8A520,,,,,#EDBC53,,#EDBC53 +lime,minecraft:lime_dye,lime,Lime Tint,oxeye_daisy,#69B324,,,,,#5CAC1C,,#5CAC1C,,,,,#8BD02C,,#8BD02C,,,,,#B3E14E,,#B3E14E +green,minecraft:green_dye,green,Green Tint,azure_bluet,#6B8040,,,,,#4C822F,,#4C822F,,,,,#5E9936,,#5E9936,,,,,#80AE4F,,#80AE4F +cyan,minecraft:cyan_dye,cyan,Cyan Tint,blue_orchid,#36A2B3,,,,,#229967,,#229967,,,,,#35C780,,#35C780,,,,,#6DE591,,#6DE591 +light_blue,minecraft:light_blue_dye,light_blue,Light Blue Tint,white_tulip,#369DD9,,,,,#43C8D1,,#43C8D1,,,,,#53EFD7,,#53EFD7,,,,,#84FFD3,,#84FFD3 +blue,minecraft:blue_dye,blue,Blue Tint,cornflower,#474BB3,,,,,#3854AC,,#3854AC,,,,,#417FDE,,#417FDE,,,,,#5DA1E5,,#5DA1E5 +purple,minecraft:purple_dye,purple,Purple Tint,allium,#762DB3,,,,,#6544B8,,#6544B8,,,,,#A15FEF,,#A15FEF,,,,,#CF80F8,,#CF80F8 +magenta,minecraft:magenta_dye,magenta,Magenta Tint,pink_tulip,#BA45B2,,,,,#B73AAE,,#B73AAE,,,,,#F153CA,,#F153CA,,,,,#FE73E2,,#FE73E2 +pink,minecraft:pink_dye,pink,Pink Tint,lily_of_the_valley,#E68AAB,,,,,#D66DA1,,#D66DA1,,,,,#FF8DCC,,#FF8DCC,,,,,#FEA6C2,,#FEA6C2 diff --git a/gm4_zauber_cauldrons/raw/potion_bottles.csv b/gm4_zauber_cauldrons/raw/potion_bottles.csv index 4e138d287b..bf082d498f 100644 --- a/gm4_zauber_cauldrons/raw/potion_bottles.csv +++ b/gm4_zauber_cauldrons/raw/potion_bottles.csv @@ -1,4 +1,4 @@ -bottle,item_id,sips_translate_name,sips_translate_fallback -drinkable,minecraft:potion,sips,Sips -splash,minecraft:splash_potion,throws,Throws -lingering,minecraft:lingering_potion,throws,Throws +bottle,item_id,sips_translate_name,sips_translate_fallback,soulution_translate_fallback_prefix +drinkable,minecraft:potion,sips,Sips, +splash,minecraft:splash_potion,throws,Throws,"Splash " +lingering,minecraft:lingering_potion,throws,Throws,"Lingering " diff --git a/gm4_zauber_cauldrons/raw/potion_effects.csv b/gm4_zauber_cauldrons/raw/potion_effects.csv index 42821f3021..77363c70af 100644 --- a/gm4_zauber_cauldrons/raw/potion_effects.csv +++ b/gm4_zauber_cauldrons/raw/potion_effects.csv @@ -1,8 +1,8 @@ -effect,base_potion_id,effect_translate_name,custom_potion_color,custom_potion_effects,soulution_custom_model_data,soulution_translate_fallback -instant_damage,minecraft:strong_harming,harming,#A9656A,"[{id:'minecraft:instant_damage',amplifier:3,duration:1}]",3420306,Soulution of Harming -instant_health,minecraft:strong_healing,healing,#F82423,"[{id:'minecraft:instant_health',amplifier:3,duration:1},{id:'minecraft:nausea',amplifier:0,duration:160}]",3420307,Soulution of Healing -jump_boost,minecraft:strong_leaping,leaping,#FDFF84,"[{id:'minecraft:jump_boost',amplifier:3,duration:1800}]",3420308,Soulution of Leaping -poison,minecraft:strong_poison,poison,#87A363,"[{id:'minecraft:poison',amplifier:3,duration:640}]",3420309,Soulution of Poison -regeneration,minecraft:strong_regeneration,regeneration,#CD5CAB,"[{id:'minecraft:regeneration',amplifier:3,duration:440},{id:'minecraft:speed',amplifier:1,duration:320}]",3420310,Soulution of Regeneration -speed,minecraft:strong_swiftness,swiftness,#33EBFF,"[{id:'minecraft:speed',amplifier:3,duration:4000},{id:'minecraft:weakness',amplifier:2,duration:4000}]",3420311,Soulution of Swiftness -strength,minecraft:strong_strength,strength,#FFC700,"[{id:'minecraft:strength',amplifier:3,duration:1800},{id:'fire_resistance',amplifier:0,duration:320}]",3420312,Soulution of Strength +effect,base_potion_id,effect_translate_name,custom_potion_color,custom_potion_effects,soulution_translate_fallback +instant_damage,minecraft:strong_harming,harming,#A9656A,"[{id:'minecraft:instant_damage',amplifier:3,duration:1}]",Soulution of Harming +instant_health,minecraft:strong_healing,healing,#F82423,"[{id:'minecraft:instant_health',amplifier:3,duration:1},{id:'minecraft:nausea',amplifier:0,duration:160}]",Soulution of Healing +jump_boost,minecraft:strong_leaping,leaping,#FDFF84,"[{id:'minecraft:jump_boost',amplifier:3,duration:1800}]",Soulution of Leaping +poison,minecraft:strong_poison,poison,#87A363,"[{id:'minecraft:poison',amplifier:3,duration:640}]",Soulution of Poison +regeneration,minecraft:strong_regeneration,regeneration,#CD5CAB,"[{id:'minecraft:regeneration',amplifier:3,duration:440},{id:'minecraft:speed',amplifier:1,duration:320}]",Soulution of Regeneration +speed,minecraft:strong_swiftness,swiftness,#33EBFF,"[{id:'minecraft:speed',amplifier:3,duration:4000},{id:'minecraft:weakness',amplifier:2,duration:4000}]",Soulution of Swiftness +strength,minecraft:strong_strength,strength,#FFC700,"[{id:'minecraft:strength',amplifier:3,duration:1800},{id:'fire_resistance',amplifier:0,duration:320}]",Soulution of Strength diff --git a/gm4_zauber_cauldrons/raw/weather_modifiers.csv b/gm4_zauber_cauldrons/raw/weather_modifiers.csv index 008ff892ca..e43dc013b3 100644 --- a/gm4_zauber_cauldrons/raw/weather_modifiers.csv +++ b/gm4_zauber_cauldrons/raw/weather_modifiers.csv @@ -1,4 +1,4 @@ -modifier,item_id,bottle_custom_model_data,soulution_bottle_custom_model_data,translate_name,translate_fallback,soulution_translate_fallback -polar,minecraft:snowball,3420300,3420303,polar,Bottle of Polar Magicol,Soulution of Polar Magicol -temperate,minecraft:slime_ball,3420301,3420304,temperate,Bottle of Temperate Magicol,Soulution of Temperate Magicol -arid,minecraft:magma_cream,3420302,3420305,arid,Bottle of Arid Magicol,Soulution of Arid Magicol +modifier,item_id,translate_name,translate_fallback,soulution_translate_fallback +polar,minecraft:snowball,polar,Bottle of Polar Magicol,Soulution of Polar Magicol +temperate,minecraft:slime_ball,temperate,Bottle of Temperate Magicol,Soulution of Temperate Magicol +arid,minecraft:magma_cream,arid,Bottle of Arid Magicol,Soulution of Arid Magicol diff --git a/gm4_zauber_liquids/assets/translations.csv b/gm4_zauber_liquids/assets/translations.csv new file mode 100644 index 0000000000..a198c6d443 --- /dev/null +++ b/gm4_zauber_liquids/assets/translations.csv @@ -0,0 +1,12 @@ +key,en_us +container.gm4.zauber_tank.harming,Zauber Harming Potion Tank +container.gm4.zauber_tank.healing,Zauber Healing Potion Tank +container.gm4.zauber_tank.leaping,Zauber Leaping Potion Tank +container.gm4.zauber_tank.poison,Zauber Poison Potion Tank +container.gm4.zauber_tank.regeneration,Zauber Regeneration Potion Tank +container.gm4.zauber_tank.strength,Zauber Strength Potion Tank +container.gm4.zauber_tank.swiftness,Zauber Swiftness Potion Tank +container.gm4.zauber_tank.wormhole,Wormhole Tank +text.gm4.guidebook.module_desc.zauber_liquids,From cauldron-made potions to potion-filled tanks! Store your tier IV potions and wormholes in Liquid Tanks! +text.gm4.guidebook.zauber_liquids.description,Zauber Potions can be stored in liquid tanks. Soulutions can be taken out by placing soul fire under the liquid tank.\n\nMobs under a zauber potion tank will gain the specific potion effect. +text.gm4.guidebook.zauber_liquids.wormhole_tanks,"If any mobs walks under a wormhole tank it will teleport to that location.\n\nWhen a tank receives a wormhole, it will update its location to the midpoint of its current location and the new location, keeping the dimension of the original location." diff --git a/gm4_zauber_liquids/data/gm4_zauber_liquids/guidebook/zauber_liquids.json b/gm4_zauber_liquids/data/gm4_zauber_liquids/guidebook/zauber_liquids.json index 42eef4d278..6d2b20842e 100644 --- a/gm4_zauber_liquids/data/gm4_zauber_liquids/guidebook/zauber_liquids.json +++ b/gm4_zauber_liquids/data/gm4_zauber_liquids/guidebook/zauber_liquids.json @@ -5,7 +5,7 @@ "base_module": "liquid_tanks", "icon": { "item": "minecraft:potion", - "nbt": "{CustomModelData:3420006,CustomPotionColor:8587123}" + "nbt": "{CustomPotionColor:8587123}" }, "criteria": { "obtain_zauber_potion_after_liquid_tank": { diff --git a/gm4_ziprails/beet.yaml b/gm4_ziprails/beet.yaml index df2043115a..3ae5b45f1f 100644 --- a/gm4_ziprails/beet.yaml +++ b/gm4_ziprails/beet.yaml @@ -12,6 +12,10 @@ meta: gm4: versioning: schedule_loops: [tick] + model_data: + - item: minecart + reference: gui/advancement/ziprails + template: advancement website: description: Automatically latch on to a tripwire to sail through the sky on a suspended line! recommended: diff --git a/gm4_ziprails/data/gm4/advancements/ziprails.json b/gm4_ziprails/data/gm4/advancements/ziprails.json index 29d908b428..fe3a6c1fce 100644 --- a/gm4_ziprails/data/gm4/advancements/ziprails.json +++ b/gm4_ziprails/data/gm4/advancements/ziprails.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:minecart", - "nbt": "{CustomModelData:3420001}" + "nbt": "{CustomModelData:'gui/advancement/ziprails'}" }, "title": { "translate": "advancement.gm4.ziprails.title", diff --git a/gm4_ziprails/data/gm4_ziprails/guidebook/ziprails.json b/gm4_ziprails/data/gm4_ziprails/guidebook/ziprails.json index 8c7cec46c2..3504563955 100644 --- a/gm4_ziprails/data/gm4_ziprails/guidebook/ziprails.json +++ b/gm4_ziprails/data/gm4_ziprails/guidebook/ziprails.json @@ -3,8 +3,7 @@ "name": "Ziprails", "module_type": "module", "icon": { - "item": "minecraft:minecart", - "nbt": "{CustomModelData:3420002}" + "item": "minecraft:minecart" }, "criteria": { "obtain_minecart": { diff --git a/gm4_ziprails/translations.csv b/gm4_ziprails/translations.csv new file mode 100644 index 0000000000..6d896cedac --- /dev/null +++ b/gm4_ziprails/translations.csv @@ -0,0 +1,5 @@ +key,en_us +advancement.gm4.ziprails.title,Wheeeeeeeee +advancement.gm4.ziprails.description,Fly through the sky on a ziprail. +text.gm4.guidebook.module_desc.ziprails,Automatically latch on to a tripwire to sail through the sky on a suspended line! +text.gm4.guidebook.ziprails.description,Tripwires act as ziprails for minecarts.\n\nA rail must be directly under an connected tripwire hook to transfer a minecart to a zipline. diff --git a/lib_brewing/beet.yaml b/lib_brewing/beet.yaml index 6ab5c34d3d..0714e1f76e 100644 --- a/lib_brewing/beet.yaml +++ b/lib_brewing/beet.yaml @@ -1,6 +1,7 @@ id: gm4_brewing name: Gamemode 4 Brewing version: 1.1.X +description: Allows datapacks to replace custom potions with splash and lingering potions when brewed in a brewing stand. data_pack: load: diff --git a/lib_custom_crafters/assets/gm4_custom_crafters/textures/block/custom_crafter_bottom.png b/lib_custom_crafters/assets/gm4_custom_crafters/textures/block/custom_crafter_bottom.png new file mode 100644 index 0000000000..9719ac46d7 Binary files /dev/null and b/lib_custom_crafters/assets/gm4_custom_crafters/textures/block/custom_crafter_bottom.png differ diff --git a/lib_custom_crafters/assets/gm4_custom_crafters/textures/block/custom_crafter_bottom_front.png b/lib_custom_crafters/assets/gm4_custom_crafters/textures/block/custom_crafter_bottom_front.png new file mode 100644 index 0000000000..8eaf71bc49 Binary files /dev/null and b/lib_custom_crafters/assets/gm4_custom_crafters/textures/block/custom_crafter_bottom_front.png differ diff --git a/lib_custom_crafters/assets/gm4_custom_crafters/textures/block/custom_crafter_front.png b/lib_custom_crafters/assets/gm4_custom_crafters/textures/block/custom_crafter_front.png new file mode 100644 index 0000000000..9594671991 Binary files /dev/null and b/lib_custom_crafters/assets/gm4_custom_crafters/textures/block/custom_crafter_front.png differ diff --git a/lib_custom_crafters/assets/gm4_custom_crafters/textures/block/custom_crafter_side.png b/lib_custom_crafters/assets/gm4_custom_crafters/textures/block/custom_crafter_side.png new file mode 100644 index 0000000000..73531fc323 Binary files /dev/null and b/lib_custom_crafters/assets/gm4_custom_crafters/textures/block/custom_crafter_side.png differ diff --git a/lib_custom_crafters/assets/gm4_custom_crafters/textures/block/custom_crafter_side_front.png b/lib_custom_crafters/assets/gm4_custom_crafters/textures/block/custom_crafter_side_front.png new file mode 100644 index 0000000000..4dd3070d29 Binary files /dev/null and b/lib_custom_crafters/assets/gm4_custom_crafters/textures/block/custom_crafter_side_front.png differ diff --git a/lib_custom_crafters/assets/gm4_custom_crafters/textures/block/custom_crafter_top.png b/lib_custom_crafters/assets/gm4_custom_crafters/textures/block/custom_crafter_top.png new file mode 100644 index 0000000000..9a2aae8e9d Binary files /dev/null and b/lib_custom_crafters/assets/gm4_custom_crafters/textures/block/custom_crafter_top.png differ diff --git a/lib_custom_crafters/assets/gm4_custom_crafters/textures/block/custom_crafter_top_out.png b/lib_custom_crafters/assets/gm4_custom_crafters/textures/block/custom_crafter_top_out.png new file mode 100644 index 0000000000..1140903bcd Binary files /dev/null and b/lib_custom_crafters/assets/gm4_custom_crafters/textures/block/custom_crafter_top_out.png differ diff --git a/lib_custom_crafters/assets/gm4_custom_crafters/textures/gui/container/custom_crafter.png b/lib_custom_crafters/assets/gm4_custom_crafters/textures/gui/container/custom_crafter.png new file mode 100644 index 0000000000..f5111cad39 Binary files /dev/null and b/lib_custom_crafters/assets/gm4_custom_crafters/textures/gui/container/custom_crafter.png differ diff --git a/lib_custom_crafters/assets/gm4_custom_crafters/textures/gui/guidebook/custom_crafters.png b/lib_custom_crafters/assets/gm4_custom_crafters/textures/gui/guidebook/custom_crafters.png new file mode 100644 index 0000000000..aa3bda99f9 Binary files /dev/null and b/lib_custom_crafters/assets/gm4_custom_crafters/textures/gui/guidebook/custom_crafters.png differ diff --git a/lib_custom_crafters/assets/translations.csv b/lib_custom_crafters/assets/translations.csv new file mode 100644 index 0000000000..cf77e3f271 --- /dev/null +++ b/lib_custom_crafters/assets/translations.csv @@ -0,0 +1,9 @@ +key,en_us +block.gm4.custom_crafter,Custom Crafter +container.gm4.custom_crafter,Custom Crafter +advancement.gm4.custom_crafters.title,Clever Crafting +advancement.gm4.custom_crafters.description,Construct a Custom Crafter from a Dropper +text.gm4.guidebook.module_desc.custom_crafters,Craft new items with a custom crafter! +text.gm4.guidebook.custom_crafters.description,Custom crafters can be created to craft new items. Iron and a dropper is needed to make this machine. +text.gm4.guidebook.custom_crafters.creation,"Arrange this recipe in a dropper, then use a crafting table on it." +text.gm4.guidebook.custom_crafters.crafting,Custom crafters can also be crafted in a custom crafter: diff --git a/lib_custom_crafters/beet.yaml b/lib_custom_crafters/beet.yaml index b51339e53b..ce60474c5d 100644 --- a/lib_custom_crafters/beet.yaml +++ b/lib_custom_crafters/beet.yaml @@ -1,21 +1,29 @@ id: gm4_custom_crafters name: Gamemode 4 Custom Crafters version: 3.1.X +description: A dropper-based custom crafter for custom item crafting purposes. data_pack: load: data: data +resource_pack: + load: + assets: assets + require: + - gm4.plugins.resource_pack - gm4_guidebook.generate_guidebooks.load_page_data - gm4_guidebook.generate_guidebooks.load_custom_recipes - gm4.plugins.player_heads + - beet.contrib.model_merging + - beet.contrib.babelbox pipeline: - lib_custom_crafters.generate_item_tags - gm4.plugins.module.gm4_root_advancement - gm4_guidebook.generate_guidebooks - - gm4.plugins.player_heads.process_json_files + - gm4.plugins.resource_pack.build - mecha - gm4.plugins.extend.library - gm4.plugins.include.lib_machines @@ -36,16 +44,53 @@ meta: - machine/verify_place_down advancements: - create_custom_crafter + model_data: + - item: player_head + reference: item/custom_crafter + model: block/custom_crafter + - item: crafting_table + template: legacy_machine_block + broadcast: + - reference: block/custom_crafter + textures: + bottom: block/custom_crafter_bottom + top: block/custom_crafter_top_out + front: block/custom_crafter_side + side: block/custom_crafter_side + - reference: block/custom_crafter_side + textures: + bottom: block/custom_crafter_bottom + top: block/custom_crafter_top + front: block/custom_crafter_front + side: block/custom_crafter_side + - reference: block/custom_crafter_down + textures: + bottom: block/custom_crafter_bottom_front + top: block/custom_crafter_top + front: block/custom_crafter_side + side: block/custom_crafter_side + - item: crafting_table + reference: gui/advancement/custom_crafters + template: + name: advancement + forward: block/custom_crafter + gui_fonts: + - translation: gui.gm4.custom_crafter + container: dropper + texture: gui/container/custom_crafter credits: Custom Crafters Creators: - Bloo - Sparks - SpecialBuilder32 Textures by: - - kyrkis + - Kyrius mecha: layout: preserve nbt_compact: True cmd_compact: True + babelbox: + load: assets/translations.csv + namespace: gm4_translations smithed: pack_id: gm4_lib_custom_crafters diff --git a/lib_custom_crafters/data/gm4/advancements/custom_crafters.json b/lib_custom_crafters/data/gm4/advancements/custom_crafters.json index 67eeaecdac..f9ea8b70f8 100644 --- a/lib_custom_crafters/data/gm4/advancements/custom_crafters.json +++ b/lib_custom_crafters/data/gm4/advancements/custom_crafters.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "crafting_table", - "nbt": "{CustomModelData:3420003}" + "nbt": "{CustomModelData:'gui/advancement/custom_crafters'}" }, "title": { "translate": "advancement.gm4.custom_crafters.title", diff --git a/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/down.mcfunction b/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/down.mcfunction index a3e4c30330..2d2e02460e 100644 --- a/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/down.mcfunction +++ b/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/down.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=down]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:offscreen"},{"translate":"gui.gm4.custom_crafter","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:default","color":"#404040"}]]}'} # summon display and marker entity -summon item_display ~ ~0.5 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_display","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_display"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:3420007}},item_display:head,Rotation:[180.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} +summon item_display ~ ~0.5 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_display","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_display"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:"block/custom_crafter_down"}},item_display:head,brightness:{sky:15,block:15},Rotation:[180.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} summon marker ~ ~ ~ {Tags:["gm4_custom_crafter","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter"',Rotation:[180.0f,0.0f]} diff --git a/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/east.mcfunction b/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/east.mcfunction index afdd7128f0..409ee449b9 100644 --- a/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/east.mcfunction +++ b/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/east.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=east]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:offscreen"},{"translate":"gui.gm4.custom_crafter","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:default","color":"#404040"}]]}'} # summon display and marker entity -summon item_display ~ ~0.5 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_display","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_display"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:3420006}},item_display:head,Rotation:[-90.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} +summon item_display ~ ~0.5 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_display","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_display"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:"block/custom_crafter_side"}},item_display:head,brightness:{sky:15,block:15},Rotation:[-90.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} summon marker ~ ~ ~ {Tags:["gm4_custom_crafter","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter"',Rotation:[-90.0f,0.0f]} diff --git a/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/north.mcfunction b/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/north.mcfunction index 28ec281fb7..502b1c79d0 100644 --- a/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/north.mcfunction +++ b/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/north.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=north]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:offscreen"},{"translate":"gui.gm4.custom_crafter","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:default","color":"#404040"}]]}'} # summon display and marker entity -summon item_display ~ ~0.5 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_display","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_display"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:3420006}},item_display:head,Rotation:[180.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} +summon item_display ~ ~0.5 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_display","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_display"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:"block/custom_crafter_side"}},item_display:head,brightness:{sky:15,block:15},Rotation:[180.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} summon marker ~ ~ ~ {Tags:["gm4_custom_crafter","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter"',Rotation:[180.0f,0.0f]} diff --git a/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/south.mcfunction b/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/south.mcfunction index be739ae54c..0d28233122 100644 --- a/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/south.mcfunction +++ b/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/south.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=south]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:offscreen"},{"translate":"gui.gm4.custom_crafter","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:default","color":"#404040"}]]}'} # summon display and marker entity -summon item_display ~ ~0.5 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_display","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_display"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:3420006}},item_display:head,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.5 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_display","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_display"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:"block/custom_crafter_side"}},item_display:head,brightness:{sky:15,block:15},Rotation:[0.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} summon marker ~ ~ ~ {Tags:["gm4_custom_crafter","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter"',Rotation:[0.0f,0.0f]} diff --git a/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/up.mcfunction b/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/up.mcfunction index 763680d56e..1a682e1b2c 100644 --- a/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/up.mcfunction +++ b/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/up.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=up]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:offscreen"},{"translate":"gui.gm4.custom_crafter","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:default","color":"#404040"}]]}'} # summon display and marker entity -summon item_display ~ ~0.5 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_display","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_display"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:3420001}},item_display:head,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.5 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_display","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_display"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:"block/custom_crafter"}},item_display:head,brightness:{sky:15,block:15},Rotation:[0.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} summon marker ~ ~ ~ {Tags:["gm4_custom_crafter","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter"',Rotation:[0.0f,0.0f]} diff --git a/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/west.mcfunction b/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/west.mcfunction index 8e94f13938..401dbfeaff 100644 --- a/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/west.mcfunction +++ b/lib_custom_crafters/data/gm4_custom_crafters/functions/machine/rotate/west.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ dropper[facing=west]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:offscreen"},{"translate":"gui.gm4.custom_crafter","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:half_invert"},{"translate":"container.gm4.custom_crafter","fallback":"Custom Crafter","font":"gm4:default","color":"#404040"}]]}'} # summon display and marker entity -summon item_display ~ ~0.5 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_display","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_display"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:3420006}},item_display:head,Rotation:[90.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} +summon item_display ~ ~0.5 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_display","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_display"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:"block/custom_crafter_side"}},item_display:head,brightness:{sky:15,block:15},Rotation:[90.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} summon marker ~ ~ ~ {Tags:["gm4_custom_crafter","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter"',Rotation:[90.0f,0.0f]} diff --git a/lib_custom_crafters/data/gm4_custom_crafters/functions/upgrade_paths/3.1.mcfunction b/lib_custom_crafters/data/gm4_custom_crafters/functions/upgrade_paths/3.1.mcfunction index 23ae4650d1..c783384305 100644 --- a/lib_custom_crafters/data/gm4_custom_crafters/functions/upgrade_paths/3.1.mcfunction +++ b/lib_custom_crafters/data/gm4_custom_crafters/functions/upgrade_paths/3.1.mcfunction @@ -1,9 +1,9 @@ -execute as @e[type=armor_stand,tag=gm4_custom_crafter_stand,nbt={ArmorItems:[{},{},{},{id:"minecraft:crafting_table",Count:1b,tag:{CustomModelData:3420001}}]}] at @s align y run summon item_display ~ ~1.0 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_stand"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:3420001}},Rotation:[0.0f,0.0f],item_display:head,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]}} -execute as @e[type=armor_stand,tag=gm4_custom_crafter_stand,nbt={ArmorItems:[{},{},{},{id:"minecraft:crafting_table",Count:1b,tag:{CustomModelData:3420007}}]}] at @s align y run summon item_display ~ ~1.0 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_stand"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:3420007}},Rotation:[180.0f,0.0f],item_display:head,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]}} +execute as @e[type=armor_stand,tag=gm4_custom_crafter_stand,nbt={ArmorItems:[{},{},{},{id:"minecraft:crafting_table",Count:1b,tag:{CustomModelData:3420001}}]}] at @s align y run summon item_display ~ ~1.0 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_stand"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:"block/custom_crafter"}},Rotation:[0.0f,0.0f],item_display:head,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]}} +execute as @e[type=armor_stand,tag=gm4_custom_crafter_stand,nbt={ArmorItems:[{},{},{},{id:"minecraft:crafting_table",Count:1b,tag:{CustomModelData:3420007}}]}] at @s align y run summon item_display ~ ~1.0 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_stand"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:"block/custom_crafter_down"}},Rotation:[180.0f,0.0f],item_display:head,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]}} -execute as @e[type=armor_stand,tag=gm4_custom_crafter_stand,y_rotation=-90,nbt={ArmorItems:[{},{},{},{id:"minecraft:crafting_table",Count:1b,tag:{CustomModelData:3420006}}]}] at @s align y run summon item_display ~ ~1.0 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_stand"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:3420006}},Rotation:[-90.0f,0.0f],item_display:head,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]}} -execute as @e[type=armor_stand,tag=gm4_custom_crafter_stand,y_rotation=180,nbt={ArmorItems:[{},{},{},{id:"minecraft:crafting_table",Count:1b,tag:{CustomModelData:3420006}}]}] at @s align y run summon item_display ~ ~1.0 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_stand"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:3420006}},Rotation:[180.0f,0.0f],item_display:head,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]}} -execute as @e[type=armor_stand,tag=gm4_custom_crafter_stand,y_rotation=0,nbt={ArmorItems:[{},{},{},{id:"minecraft:crafting_table",Count:1b,tag:{CustomModelData:3420006}}]}] at @s align y run summon item_display ~ ~1.0 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_stand"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:3420006}},Rotation:[0.0f,0.0f],item_display:head,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]}} -execute as @e[type=armor_stand,tag=gm4_custom_crafter_stand,y_rotation=90,nbt={ArmorItems:[{},{},{},{id:"minecraft:crafting_table",Count:1b,tag:{CustomModelData:3420006}}]}] at @s align y run summon item_display ~ ~1.0 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_stand"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:3420006}},Rotation:[90.0f,0.0f],item_display:head,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]}} +execute as @e[type=armor_stand,tag=gm4_custom_crafter_stand,y_rotation=-90,nbt={ArmorItems:[{},{},{},{id:"minecraft:crafting_table",Count:1b,tag:{CustomModelData:3420006}}]}] at @s align y run summon item_display ~ ~1.0 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_stand"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:"block/custom_crafter_side"}},Rotation:[-90.0f,0.0f],item_display:head,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]}} +execute as @e[type=armor_stand,tag=gm4_custom_crafter_stand,y_rotation=180,nbt={ArmorItems:[{},{},{},{id:"minecraft:crafting_table",Count:1b,tag:{CustomModelData:3420006}}]}] at @s align y run summon item_display ~ ~1.0 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_stand"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:"block/custom_crafter_side"}},Rotation:[180.0f,0.0f],item_display:head,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]}} +execute as @e[type=armor_stand,tag=gm4_custom_crafter_stand,y_rotation=0,nbt={ArmorItems:[{},{},{},{id:"minecraft:crafting_table",Count:1b,tag:{CustomModelData:3420006}}]}] at @s align y run summon item_display ~ ~1.0 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_stand"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:"block/custom_crafter_side"}},Rotation:[0.0f,0.0f],item_display:head,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]}} +execute as @e[type=armor_stand,tag=gm4_custom_crafter_stand,y_rotation=90,nbt={ArmorItems:[{},{},{},{id:"minecraft:crafting_table",Count:1b,tag:{CustomModelData:3420006}}]}] at @s align y run summon item_display ~ ~1.0 ~ {Tags:["gm4_no_edit","gm4_custom_crafter_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_custom_crafter_stand"',item:{id:"crafting_table",Count:1,tag:{CustomModelData:"block/custom_crafter_side"}},Rotation:[90.0f,0.0f],item_display:head,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]}} execute as @e[type=armor_stand,tag=gm4_custom_crafter_stand] at @s align xyz if entity @e[type=item_display,tag=gm4_custom_crafter_display,dy=0.001] run kill @s diff --git a/lib_custom_crafters/data/gm4_custom_crafters/guidebook/custom_crafters.json b/lib_custom_crafters/data/gm4_custom_crafters/guidebook/custom_crafters.json index 2cd2256e54..dbb499b145 100644 --- a/lib_custom_crafters/data/gm4_custom_crafters/guidebook/custom_crafters.json +++ b/lib_custom_crafters/data/gm4_custom_crafters/guidebook/custom_crafters.json @@ -5,8 +5,7 @@ "description": "Craft new items with a custom crafter!", "wiki_link": "https://wiki.gm4.co/wiki/Custom_Crafters", "icon": { - "item": "minecraft:crafting_table", - "nbt": "{CustomModelData:3420004}" + "item": "minecraft:crafting_table" }, "criteria": { "obtain_iron_ingot": { diff --git a/lib_custom_crafters/data/gm4_custom_crafters/loot_tables/items/custom_crafter.json b/lib_custom_crafters/data/gm4_custom_crafters/loot_tables/items/custom_crafter.json index fde1b024a0..4da3cd8796 100644 --- a/lib_custom_crafters/data/gm4_custom_crafters/loot_tables/items/custom_crafter.json +++ b/lib_custom_crafters/data/gm4_custom_crafters/loot_tables/items/custom_crafter.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420128,gm4_machines:{id:\"custom_crafter\"},SkullOwner:{Name:\"gm4_custom_crafter\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$gm4_custom_crafters:custom_crafter\"}]}}}" + "tag": "{CustomModelData:'gm4_custom_crafters:item/custom_crafter',gm4_machines:{id:\"custom_crafter\"},SkullOwner:{Name:\"gm4_custom_crafter\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$gm4_custom_crafters:custom_crafter\"}]}}}" }, { "function": "set_name", diff --git a/lib_custom_crafters/overlay_26/data/gm4_custom_crafters/guidebook/custom_crafters.json b/lib_custom_crafters/overlay_26/data/gm4_custom_crafters/guidebook/custom_crafters.json index 146182908a..403d33c399 100644 --- a/lib_custom_crafters/overlay_26/data/gm4_custom_crafters/guidebook/custom_crafters.json +++ b/lib_custom_crafters/overlay_26/data/gm4_custom_crafters/guidebook/custom_crafters.json @@ -5,8 +5,7 @@ "description": "Craft new items with a custom crafter!", "wiki_link": "https://wiki.gm4.co/wiki/Custom_Crafters", "icon": { - "item": "minecraft:crafting_table", - "nbt": "{CustomModelData:3420004}" + "item": "minecraft:crafting_table" }, "criteria": { "obtain_iron_ingot": { diff --git a/lib_forceload/beet.yaml b/lib_forceload/beet.yaml index 55886a9722..4d25c640ff 100644 --- a/lib_forceload/beet.yaml +++ b/lib_forceload/beet.yaml @@ -1,6 +1,7 @@ id: gm4_forceload name: Gamemode 4 Forceload version: 1.2.X +description: lib_forceload is a mcfunction library adding a forceloaded chunk with common utlities. data_pack: load: diff --git a/lib_lore/beet.yaml b/lib_lore/beet.yaml index 44a623bea5..fa8e4a8117 100644 --- a/lib_lore/beet.yaml +++ b/lib_lore/beet.yaml @@ -1,6 +1,7 @@ id: gm4_lore name: Gamemode 4 Lore version: 1.0.X +description: Allows other datapacks to easily search, remove, insert, and replace lines of lore on items. data_pack: load: diff --git a/lib_machines/beet.yaml b/lib_machines/beet.yaml index aac4978dc6..c2c6912ac1 100644 --- a/lib_machines/beet.yaml +++ b/lib_machines/beet.yaml @@ -1,6 +1,7 @@ id: gm4_machines name: Gamemode 4 Machines version: 1.1.X +description: lib_machines is a mcfunction library that adds logic for placing and breaking custom blocks. data_pack: load: diff --git a/lib_machines/data/gm4_machines/functions/tick.mcfunction b/lib_machines/data/gm4_machines/functions/tick.mcfunction index 1c46fcc856..aedea5408d 100644 --- a/lib_machines/data/gm4_machines/functions/tick.mcfunction +++ b/lib_machines/data/gm4_machines/functions/tick.mcfunction @@ -5,6 +5,9 @@ # check if machine blocks have been broken or moved by a piston (note: this assumes that the block is never replaced with a /fill command) execute as @e[type=marker,tag=gm4_machine_marker] at @s if block ~ ~ ~ #gm4_machines:empty_block run function #gm4_machines:destroy -execute as @e[type=armor_stand,tag=gm4_machine_cart,predicate=!gm4_machines:has_vehicle] at @s run function #gm4_machines:destroy_cart +execute as @e[type=item_display,tag=gm4_machine_cart,predicate=!gm4_machines:has_vehicle] at @s run function #gm4_machines:destroy_cart execute as @e[type=area_effect_cloud,tag=gm4_machine_cart,predicate=!gm4_machines:has_vehicle] at @s run function #gm4_machines:destroy_cart execute as @e[type=marker,tag=gm4_machine_cart,predicate=!gm4_machines:has_vehicle] at @s run function #gm4_machines:destroy_cart + +# NOTE 1.21 update, remove this line +execute as @e[type=armor_stand,tag=gm4_machine_cart,predicate=!gm4_machines:has_vehicle] at @s run function #gm4_machines:destroy_cart diff --git a/lib_player_heads/beet.yaml b/lib_player_heads/beet.yaml index 66c3c0a26c..66fb9385f1 100644 --- a/lib_player_heads/beet.yaml +++ b/lib_player_heads/beet.yaml @@ -1,6 +1,7 @@ id: gm4_player_heads name: Gamemode 4 Player Heads version: 1.2.X +description: Register player heads to a central system, which enables `minecraft:player_head` items to keep their item NBT even after being placed down and mined. data_pack: load: diff --git a/lib_potion_tracking/beet.yaml b/lib_potion_tracking/beet.yaml index 1e08a0de7d..41b332c899 100644 --- a/lib_potion_tracking/beet.yaml +++ b/lib_potion_tracking/beet.yaml @@ -1,6 +1,7 @@ id: gm4_potion_tracking name: Gamemode 4 Potion Tracking version: 1.0.X +description: Allows other datapacks to track thrown splash or lingering potions. data_pack: load: diff --git a/lib_trades/beet.yaml b/lib_trades/beet.yaml index 9f6918a223..5fc13a458f 100644 --- a/lib_trades/beet.yaml +++ b/lib_trades/beet.yaml @@ -1,6 +1,7 @@ id: gm4_trades name: Gamemode 4 Trades version: 1.3.X +description: Allows other datapacks to easily add trades to Wandering Traders or to any Villager-like entity. data_pack: load: diff --git a/lib_trees/beet.yaml b/lib_trees/beet.yaml index 7af007e054..9b88b4b8cf 100644 --- a/lib_trees/beet.yaml +++ b/lib_trees/beet.yaml @@ -1,6 +1,7 @@ id: gm4_trees name: Gamemode 4 Trees version: 1.0.X +description: A mcfunction library that facilites the creation of custom trees. data_pack: load: diff --git a/module.yaml b/module.yaml index bdd8f8b89c..274dc3d80a 100644 --- a/module.yaml +++ b/module.yaml @@ -4,7 +4,7 @@ pipeline: - gm4.plugins.versioning.modules - gm4.plugins.upgrade_paths - gm4_guidebook.generate_guidebooks - - gm4.plugins.player_heads.process_json_files + - gm4.plugins.resource_pack.build - mecha - directory: '../base' extend: 'beet.yaml' diff --git a/poetry.lock b/poetry.lock index 55d90dfdb4..bac74bd6f6 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,9 +1,10 @@ -# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. +# This file is automatically @generated by Poetry and should not be changed by hand. [[package]] name = "annotated-types" version = "0.6.0" description = "Reusable constraint types to use with typing.Annotated" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -13,13 +14,14 @@ files = [ [[package]] name = "beet" -version = "0.103.1" +version = "0.104.1" description = "The Minecraft pack development kit" +category = "main" optional = false python-versions = ">=3.10,<4.0" files = [ - {file = "beet-0.103.1-py3-none-any.whl", hash = "sha256:cf4805f42118599b58f2417ec5009d524adb07f35e0fff2a0fe22fd81d04b8ee"}, - {file = "beet-0.103.1.tar.gz", hash = "sha256:52f784a53952a816611840ead2020b9ea2229e7e7f4f5207daf7f145d539485b"}, + {file = "beet-0.104.1-py3-none-any.whl", hash = "sha256:2738f2e7a7706e1e553f380aca7958601ab996684384eb3d8b19d918bcf30ff2"}, + {file = "beet-0.104.1.tar.gz", hash = "sha256:60b5cfd5f2ae440e0cc549723ac1696b2032c29c144a3359c880119360a135bd"}, ] [package.dependencies] @@ -41,6 +43,7 @@ image = ["Pillow"] name = "black" version = "22.12.0" description = "The uncompromising code formatter." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -75,6 +78,7 @@ uvloop = ["uvloop (>=0.15.2)"] name = "bolt" version = "0.45.0" description = "Supercharge Minecraft commands with Python" +category = "main" optional = false python-versions = ">=3.10,<4.0" files = [ @@ -90,6 +94,7 @@ mecha = ">=0.86.5" name = "certifi" version = "2024.2.2" description = "Python package for providing Mozilla's CA Bundle." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -101,6 +106,7 @@ files = [ name = "charset-normalizer" version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -200,6 +206,7 @@ files = [ name = "click" version = "8.1.7" description = "Composable command line interface toolkit" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -214,6 +221,7 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} name = "click-help-colors" version = "0.9.4" description = "Colorization of help messages in Click" +category = "main" optional = false python-versions = "*" files = [ @@ -231,6 +239,7 @@ dev = ["mypy", "pytest"] name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -242,6 +251,7 @@ files = [ name = "idna" version = "3.6" description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -253,6 +263,7 @@ files = [ name = "isort" version = "5.13.2" description = "A Python utility / library to sort Python imports." +category = "dev" optional = false python-versions = ">=3.8.0" files = [ @@ -267,6 +278,7 @@ colors = ["colorama (>=0.4.6)"] name = "jinja2" version = "3.1.3" description = "A very fast and expressive template engine." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -284,6 +296,7 @@ i18n = ["Babel (>=2.7)"] name = "markupsafe" version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -353,6 +366,7 @@ files = [ name = "mecha" version = "0.87.0" description = "A powerful Minecraft command library" +category = "main" optional = false python-versions = ">=3.10,<4.0" files = [ @@ -368,6 +382,7 @@ tokenstream = ">=1.7.0,<2.0.0" name = "mypy-extensions" version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -379,6 +394,7 @@ files = [ name = "nbtlib" version = "1.12.1" description = "A python package to read and edit nbt data" +category = "main" optional = false python-versions = ">=3.8,<4.0" files = [ @@ -393,6 +409,7 @@ numpy = "*" name = "numpy" version = "1.26.4" description = "Fundamental package for array computing in Python" +category = "main" optional = false python-versions = ">=3.9" files = [ @@ -438,6 +455,7 @@ files = [ name = "pathspec" version = "0.11.2" description = "Utility library for gitignore style pattern matching of file paths." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -449,6 +467,7 @@ files = [ name = "pillow" version = "10.2.0" description = "Python Imaging Library (Fork)" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -534,6 +553,7 @@ xmp = ["defusedxml"] name = "platformdirs" version = "4.2.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -549,6 +569,7 @@ test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest- name = "pydantic" version = "2.6.1" description = "Data validation using Python type hints" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -568,6 +589,7 @@ email = ["email-validator (>=2.0.0)"] name = "pydantic-core" version = "2.16.2" description = "" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -659,6 +681,7 @@ typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" name = "pyyaml" version = "6.0.1" description = "YAML parser and emitter for Python" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -680,6 +703,7 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, @@ -714,10 +738,26 @@ files = [ {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, ] +[[package]] +name = "repro-zipfile" +version = "0.1.0" +description = "A tiny, zero-dependency replacement for Python's zipfile.ZipFile for creating reproducible/deterministic ZIP archives." +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "repro_zipfile-0.1.0-py3-none-any.whl", hash = "sha256:ee699c194ca6d712086528b03afe03f7ff02e8f6ce16ee434b4aab8fa3d281c5"}, + {file = "repro_zipfile-0.1.0.tar.gz", hash = "sha256:f9f84760e68adb5adca1b9e670356a7ec2885739d23016944bc380dde238006d"}, +] + +[package.extras] +tests = ["pytest (>=6)", "pytest-cases"] + [[package]] name = "requests" version = "2.31.0" description = "Python HTTP for Humans." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -739,6 +779,7 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "tokenstream" version = "1.7.0" description = "A versatile token stream for handwritten parsers" +category = "main" optional = false python-versions = ">=3.10,<4.0" files = [ @@ -750,6 +791,7 @@ files = [ name = "toml" version = "0.10.2" description = "Python Library for Tom's Obvious, Minimal Language" +category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -761,6 +803,7 @@ files = [ name = "tomli" version = "2.0.1" description = "A lil' TOML parser" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -772,6 +815,7 @@ files = [ name = "typing-extensions" version = "4.9.0" description = "Backported and Experimental Type Hints for Python 3.8+" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -781,13 +825,14 @@ files = [ [[package]] name = "urllib3" -version = "2.2.0" +version = "2.2.1" description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "urllib3-2.2.0-py3-none-any.whl", hash = "sha256:ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224"}, - {file = "urllib3-2.2.0.tar.gz", hash = "sha256:051d961ad0c62a94e50ecf1af379c3aba230c66c710493493560c0c223c49f20"}, + {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, + {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, ] [package.extras] @@ -799,4 +844,4 @@ zstd = ["zstandard (>=0.18.0)"] [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "831d32ff983a72142b4560cc4f4b401a3e1056273fd6798df9821ff466fa9348" +content-hash = "bea52cc4f04ec4e2c7337eb694fa32fcb105850f5e6939e0f68d03e10fbc2137" diff --git a/pyproject.toml b/pyproject.toml index 5b68dba647..6310cb79a8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,13 +6,14 @@ authors = ["Gamemode 4 Contributors"] [tool.poetry.dependencies] python = "^3.10" -beet = "^0.103.1" +beet = "0.104.1" mecha = "^0.87.0" bolt = "^0.45.0" PyYAML = "^6.0" pydantic = "^2.6.1" requests = "^2.28.1" pillow = "^10.0.0" +repro-zipfile = "^0.1.0" [tool.poetry.dev-dependencies] black = "^22.6.0" @@ -20,6 +21,9 @@ isort = "^5.10.1" [tool.poetry.plugins.beet] commands = "gm4.commands" +autoload = "gm4.plugins.autoload" + +[tool.beet] [tool.pyright] typeCheckingMode = "strict" diff --git a/resource_pack/beet.yaml b/resource_pack/beet.yaml new file mode 100644 index 0000000000..385f2cc845 --- /dev/null +++ b/resource_pack/beet.yaml @@ -0,0 +1,31 @@ +id: gm4_resource_pack +name: Resource Pack +version: 1.1.X + +resource_pack: + load: + pack.png: pack.png + # other files are inherited by the full-project build + +pipeline: + - dev_warning + +meta: + gm4: + website: + description: Use our resource pack for the definitive Gamemode 4 experience! This resource pack does not touch vanilla textures, but adds textures and models to most Gamemode 4 blocks, items and mobs. + recommended: [] + notes: [] + video: null + wiki: null + credits: + Textures: + - Memo + - Hozz + Translations: + - ToffeeMax + - SarguCopperpot + - TheRedCommander + - KompetenterKeks + Font Magic: + - BluePsychoRanger diff --git a/resource_pack/dev_description.py b/resource_pack/dev_description.py new file mode 100644 index 0000000000..108cbc2952 --- /dev/null +++ b/resource_pack/dev_description.py @@ -0,0 +1,10 @@ +from beet import Context + +def beet_default(ctx: Context): + ctx.assets.description = [ + "Merged Developer Resources\n", + { + "text": f"Development Only!", + "color": "red" + } + ] diff --git a/resource_pack/dev_warning.py b/resource_pack/dev_warning.py new file mode 100644 index 0000000000..fac8691b07 --- /dev/null +++ b/resource_pack/dev_warning.py @@ -0,0 +1,8 @@ +from beet import Context +import logging + +logger = logging.getLogger("gm4.gm4_resource_pack") + +def beet_default(ctx: Context): + if ctx.meta.get("gm4_dev"): + logger.error("The resource pack cannot be cherry-picked by the 'beet dev' command - it inherits all its resources from other modules as they are built by the beet pipeline. If a full build is necessary, use the full project build 'beet build', otherwise just list the desired module(s) in 'beet dev' and use the partial resource pack output.") diff --git a/resource_pack/pack.png b/resource_pack/pack.png new file mode 100644 index 0000000000..074e54f2f9 Binary files /dev/null and b/resource_pack/pack.png differ