Skip to content

Instantly share code, notes, and snippets.

@DragonDev1906
Created March 29, 2020 13:39
Show Gist options
  • Save DragonDev1906/33f78b9502f845f6e2e69fc297e46723 to your computer and use it in GitHub Desktop.
Save DragonDev1906/33f78b9502f845f6e2e69fc297e46723 to your computer and use it in GitHub Desktop.
Find a block in an extracted jar file (blockstate and all referenced model files) Requires the AssetLoader
import os
import json
from overviewer_core.asset_loader import AssetLoader
extracted_jar_path = "C:/Users/Jens/Documents/projects/Minecraft-Overviewer-working-dir/mc_jar_file"
blockstates_path_format = "assets/minecraft/blockstates/{0}.json"
model_path_format = "assets/minecraft/models/{0}.json"
def print_data(name, data):
print('#' * 50)
print('{0}.json'.format(name).center(50))
print('#'*50)
print(json.dumps(data, indent=4))
if __name__ == "__main__":
print("Which block do you want?")
block_name = input()
asset_loader = AssetLoader(extracted_jar_path)
blockstate_data = asset_loader.load_blockstates(block_name)
print_data(block_name, blockstate_data)
if not "variants" in blockstate_data:
print("Can't load models for multipart blocks, yet!")
sys.exit()
model_list = set([
variant["model"]
for nbt_condition, variant in blockstate_data["variants"].items()
if "model" in variant
])
for model in model_list:
model_data = asset_loader.load_and_combine_model(model)
print_data(model, model_data)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment