9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-19 15:09:15 +00:00

Merge branch 'Xiao-MoMi:dev' into dev

This commit is contained in:
jhqwqmc
2025-10-21 12:18:31 +08:00
committed by GitHub
187 changed files with 276 additions and 373 deletions

View File

@@ -40,7 +40,6 @@ import org.bukkit.inventory.view.AnvilView;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;

View File

@@ -62,7 +62,8 @@ public class BukkitCommandManager extends AbstractCommandManager<CommandSender>
new UploadPackCommand(this, plugin), new UploadPackCommand(this, plugin),
new SendResourcePackCommand(this, plugin), new SendResourcePackCommand(this, plugin),
new DebugSaveDefaultResourcesCommand(this, plugin), new DebugSaveDefaultResourcesCommand(this, plugin),
new DebugCleanCacheCommand(this, plugin) new DebugCleanCacheCommand(this, plugin),
new DebugGenerateInternalAssetsCommand(this, plugin)
// new OverrideGiveCommand(this, plugin) // new OverrideGiveCommand(this, plugin)
)); ));
final LegacyPaperCommandManager<CommandSender> manager = (LegacyPaperCommandManager<CommandSender>) getCommandManager(); final LegacyPaperCommandManager<CommandSender> manager = (LegacyPaperCommandManager<CommandSender>) getCommandManager();

View File

@@ -0,0 +1,159 @@
package net.momirealms.craftengine.bukkit.plugin.command.feature;
import com.google.gson.*;
import net.momirealms.craftengine.bukkit.plugin.command.BukkitCommandFeature;
import net.momirealms.craftengine.core.plugin.CraftEngine;
import net.momirealms.craftengine.core.plugin.command.CraftEngineCommandManager;
import net.momirealms.craftengine.core.util.FileUtils;
import net.momirealms.craftengine.core.util.GsonHelper;
import org.bukkit.command.CommandSender;
import org.incendo.cloud.Command;
import org.incendo.cloud.parser.standard.StringParser;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
import java.util.List;
import java.util.function.Consumer;
public class DebugGenerateInternalAssetsCommand extends BukkitCommandFeature<CommandSender> {
public DebugGenerateInternalAssetsCommand(CraftEngineCommandManager<CommandSender> commandManager, CraftEngine plugin) {
super(commandManager, plugin);
}
@Override
public Command.Builder<? extends CommandSender> assembleCommand(org.incendo.cloud.CommandManager<CommandSender> manager, Command.Builder<CommandSender> builder) {
return builder
.required("path", StringParser.stringParser())
.handler(context -> {
// 这里指向的完整的minecraft原版资源包文件夹路径
String pathName = context.get("path");
Path resourcePackPath = this.plugin().dataFolderPath().resolve(pathName);
if (!Files.exists(resourcePackPath)) {
context.sender().sendMessage("Could not find path: " + resourcePackPath);
return;
}
Path assetsPath = resourcePackPath.resolve("assets");
Path internalPath = resourcePackPath.resolve("internal");
if (!Files.exists(assetsPath)) {
context.sender().sendMessage("Could not find path: " + assetsPath);
return;
}
Path minecraftNamespacePath = assetsPath.resolve("minecraft");
if (!Files.exists(minecraftNamespacePath)) {
context.sender().sendMessage("Could not find path: " + minecraftNamespacePath);
return;
}
// 复制atlas
{
Path atlasPath = minecraftNamespacePath.resolve("atlases").resolve("blocks.json");
Path assetsAtlasPath = internalPath.resolve("atlases").resolve("blocks.json");
try {
Files.createDirectories(assetsAtlasPath.getParent());
Files.copy(atlasPath, assetsAtlasPath, StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) {
plugin().logger().warn("Failed to copy atlas file", e);
}
}
// 复制sounds
{
Path soundPath = minecraftNamespacePath.resolve("sounds.json");
if (Files.exists(soundPath)) {
Path targetSoundPath = internalPath.resolve("sounds.json");
try {
Files.createDirectories(targetSoundPath.getParent());
Files.copy(soundPath, targetSoundPath, StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) {
plugin().logger().warn("Failed to create internal sounds file", e);
}
}
}
// 复制items
{
Path allPath = minecraftNamespacePath.resolve("items").resolve("_all.json");
Path targetAllPath = internalPath.resolve("items").resolve("_all.json");
try {
if (Files.exists(allPath)) {
Files.createDirectories(targetAllPath.getParent());
Files.copy(allPath, targetAllPath, StandardCopyOption.REPLACE_EXISTING);
}
} catch (IOException e) {
plugin().logger().warn("Failed to create internal items file", e);
}
}
// 复制models
{
for (String name : List.of("block", "item")) {
Path allPath = minecraftNamespacePath.resolve("models").resolve(name).resolve("_all.json");
Path targetAllPath = internalPath.resolve("models").resolve(name).resolve("_all.json");
try {
if (Files.exists(allPath)) {
Files.createDirectories(targetAllPath.getParent());
Files.copy(allPath, targetAllPath, StandardCopyOption.REPLACE_EXISTING);
}
} catch (IOException e) {
plugin().logger().warn("Failed to create internal models file", e);
}
}
}
// 收集textures
JsonArray allTextures = new JsonArray();
collectListJson(minecraftNamespacePath.resolve("textures"), "", allTextures::add);
try {
Path resolve = internalPath.resolve("textures/processed.json");
Files.createDirectories(resolve.getParent());
GsonHelper.writeJsonFile(allTextures, resolve);
} catch (IOException e) {
plugin().logger().warn("Failed to collect textures", e);
}
// 收集sounds
JsonArray allSounds = new JsonArray();
collectListJson(minecraftNamespacePath.resolve("sounds"), "", allSounds::add);
try {
Path resolve = internalPath.resolve("sounds/processed.json");
Files.createDirectories(resolve.getParent());
GsonHelper.writeJsonFile(allSounds, resolve);
} catch (IOException e) {
plugin().logger().warn("Failed to collect textures", e);
}
context.sender().sendMessage("Done");
});
}
@Override
public String getFeatureID() {
return "debug_generate_internal_assets";
}
private void collectListJson(Path folder, String prefix, Consumer<String> callback) {
try (InputStream inputStream = Files.newInputStream(folder.resolve("_list.json"))) {
String s = prefix.isEmpty() ? "" : (prefix + "/");
JsonObject listJson = JsonParser.parseReader(new InputStreamReader(inputStream)).getAsJsonObject();
JsonArray fileList = listJson.getAsJsonArray("files");
for (JsonElement element : fileList) {
if (element instanceof JsonPrimitive primitive) {
callback.accept(s + FileUtils.pathWithoutExtension(primitive.getAsString()));
}
}
JsonArray directoryList = listJson.getAsJsonArray("directories");
for (JsonElement element : directoryList) {
if (element instanceof JsonPrimitive primitive) {
collectListJson(folder.resolve(primitive.getAsString()), s + primitive.getAsString(), callback);
}
}
} catch (IOException e) {
this.plugin().logger().warn("Failed to load _list.json" + folder, e);
}
}
}

View File

@@ -7,8 +7,7 @@ config-version: "${config_version}"
# For safety reasons, editing this file requires a restart to apply # For safety reasons, editing this file requires a restart to apply
# #
# A command to reload the plugin # https://xiao-momi.github.io/craft-engine-wiki/reference/commands
# Usage: [COMMAND]
reload: reload:
enable: true enable: true
permission: ce.command.admin.reload permission: ce.command.admin.reload
@@ -231,6 +230,13 @@ debug_clean_cache:
- /craftengine debug clean-cache - /craftengine debug clean-cache
- /ce debug clean-cache - /ce debug clean-cache
debug_generate_internal_assets:
enable: false
permission: ce.command.debug.generate_internal_assets
usage:
- /craftengine debug generate-internal-assets
- /ce debug generate-internal-assets
debug_test: debug_test:
enable: true enable: true
permission: ce.command.debug.test permission: ce.command.debug.test

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
{"directories":[],"files":["armor_trims.json","banner_patterns.json","beds.json","blocks.json","chests.json","decorated_pot.json","gui.json","map_decorations.json","paintings.json","particles.json","shield_patterns.json","shulker_boxes.json","signs.json"]}

View File

@@ -1,64 +0,0 @@
{
"sources": [
{
"type": "minecraft:paletted_permutations",
"palette_key": "minecraft:trims/color_palettes/trim_palette",
"permutations": {
"amethyst": "minecraft:trims/color_palettes/amethyst",
"copper": "minecraft:trims/color_palettes/copper",
"copper_darker": "minecraft:trims/color_palettes/copper_darker",
"diamond": "minecraft:trims/color_palettes/diamond",
"diamond_darker": "minecraft:trims/color_palettes/diamond_darker",
"emerald": "minecraft:trims/color_palettes/emerald",
"gold": "minecraft:trims/color_palettes/gold",
"gold_darker": "minecraft:trims/color_palettes/gold_darker",
"iron": "minecraft:trims/color_palettes/iron",
"iron_darker": "minecraft:trims/color_palettes/iron_darker",
"lapis": "minecraft:trims/color_palettes/lapis",
"netherite": "minecraft:trims/color_palettes/netherite",
"netherite_darker": "minecraft:trims/color_palettes/netherite_darker",
"quartz": "minecraft:trims/color_palettes/quartz",
"redstone": "minecraft:trims/color_palettes/redstone",
"resin": "minecraft:trims/color_palettes/resin"
},
"textures": [
"minecraft:trims/entity/humanoid/sentry",
"minecraft:trims/entity/humanoid_leggings/sentry",
"minecraft:trims/entity/humanoid/dune",
"minecraft:trims/entity/humanoid_leggings/dune",
"minecraft:trims/entity/humanoid/coast",
"minecraft:trims/entity/humanoid_leggings/coast",
"minecraft:trims/entity/humanoid/wild",
"minecraft:trims/entity/humanoid_leggings/wild",
"minecraft:trims/entity/humanoid/ward",
"minecraft:trims/entity/humanoid_leggings/ward",
"minecraft:trims/entity/humanoid/eye",
"minecraft:trims/entity/humanoid_leggings/eye",
"minecraft:trims/entity/humanoid/vex",
"minecraft:trims/entity/humanoid_leggings/vex",
"minecraft:trims/entity/humanoid/tide",
"minecraft:trims/entity/humanoid_leggings/tide",
"minecraft:trims/entity/humanoid/snout",
"minecraft:trims/entity/humanoid_leggings/snout",
"minecraft:trims/entity/humanoid/rib",
"minecraft:trims/entity/humanoid_leggings/rib",
"minecraft:trims/entity/humanoid/spire",
"minecraft:trims/entity/humanoid_leggings/spire",
"minecraft:trims/entity/humanoid/wayfinder",
"minecraft:trims/entity/humanoid_leggings/wayfinder",
"minecraft:trims/entity/humanoid/shaper",
"minecraft:trims/entity/humanoid_leggings/shaper",
"minecraft:trims/entity/humanoid/silence",
"minecraft:trims/entity/humanoid_leggings/silence",
"minecraft:trims/entity/humanoid/raiser",
"minecraft:trims/entity/humanoid_leggings/raiser",
"minecraft:trims/entity/humanoid/host",
"minecraft:trims/entity/humanoid_leggings/host",
"minecraft:trims/entity/humanoid/flow",
"minecraft:trims/entity/humanoid_leggings/flow",
"minecraft:trims/entity/humanoid/bolt",
"minecraft:trims/entity/humanoid_leggings/bolt"
]
}
]
}

View File

@@ -1,13 +0,0 @@
{
"sources": [
{
"type": "minecraft:single",
"resource": "minecraft:entity/banner_base"
},
{
"type": "minecraft:directory",
"prefix": "entity/banner/",
"source": "entity/banner"
}
]
}

View File

@@ -1,9 +0,0 @@
{
"sources": [
{
"type": "minecraft:directory",
"prefix": "entity/bed/",
"source": "entity/bed"
}
]
}

View File

@@ -1,9 +0,0 @@
{
"sources": [
{
"type": "minecraft:directory",
"prefix": "entity/chest/",
"source": "entity/chest"
}
]
}

View File

@@ -1,9 +0,0 @@
{
"sources": [
{
"type": "minecraft:directory",
"prefix": "entity/decorated_pot/",
"source": "entity/decorated_pot"
}
]
}

View File

@@ -1,14 +0,0 @@
{
"sources": [
{
"type": "minecraft:directory",
"prefix": "",
"source": "gui/sprites"
},
{
"type": "minecraft:directory",
"prefix": "mob_effect/",
"source": "mob_effect"
}
]
}

View File

@@ -1,9 +0,0 @@
{
"sources": [
{
"type": "minecraft:directory",
"prefix": "",
"source": "map/decorations"
}
]
}

View File

@@ -1,9 +0,0 @@
{
"sources": [
{
"type": "minecraft:directory",
"prefix": "",
"source": "painting"
}
]
}

View File

@@ -1,9 +0,0 @@
{
"sources": [
{
"type": "minecraft:directory",
"prefix": "",
"source": "particle"
}
]
}

View File

@@ -1,17 +0,0 @@
{
"sources": [
{
"type": "minecraft:single",
"resource": "minecraft:entity/shield_base"
},
{
"type": "minecraft:single",
"resource": "minecraft:entity/shield_base_nopattern"
},
{
"type": "minecraft:directory",
"prefix": "entity/shield/",
"source": "entity/shield"
}
]
}

View File

@@ -1,9 +0,0 @@
{
"sources": [
{
"type": "minecraft:directory",
"prefix": "entity/shulker/",
"source": "entity/shulker"
}
]
}

View File

@@ -1,9 +0,0 @@
{
"sources": [
{
"type": "minecraft:directory",
"prefix": "entity/signs/",
"source": "entity/signs"
}
]
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
{"directories":["block","colormap","effect","entity","environment","font","gui","item","map","misc","mob_effect","painting","particle","trims"],"files":[]}

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
{"directories":[],"files":["dry_foliage.png","foliage.png","grass.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["dither.png"]}

View File

@@ -1 +0,0 @@
{"directories":["allay","armorstand","axolotl","banner","bear","bed","bee","bell","boat","breeze","camel","cat","chest","chest_boat","chicken","conduit","copper_golem","cow","creaking","creeper","decorated_pot","end_crystal","enderdragon","enderman","equipment","fish","fox","frog","ghast","goat","hoglin","horse","illager","iron_golem","llama","panda","parrot","pig","piglin","player","projectiles","rabbit","sheep","shield","shulker","signs","skeleton","slime","sniffer","spider","squid","strider","tadpole","turtle","villager","warden","wither","wolf","zombie","zombie_villager"],"files":["armadillo.png","banner_base.png","bat.png","beacon_beam.png","blaze.png","dolphin.png","enchanting_table_book.png","end_gateway_beam.png","end_portal.png","endermite.png","experience_orb.png","fishing_hook.png","guardian.png","guardian_beam.png","guardian_elder.png","lead_knot.png","minecart.png","phantom.png","phantom_eyes.png","shield_base.png","shield_base_nopattern.png","silverfish.png","snow_golem.png","spider_eyes.png","trident.png","trident_riptide.png","wandering_trader.png","witch.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["allay.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["wood.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["axolotl_blue.png","axolotl_cyan.png","axolotl_gold.png","axolotl_lucy.png","axolotl_wild.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["base.png","border.png","bricks.png","circle.png","creeper.png","cross.png","curly_border.png","diagonal_left.png","diagonal_right.png","diagonal_up_left.png","diagonal_up_right.png","flow.png","flower.png","globe.png","gradient.png","gradient_up.png","guster.png","half_horizontal.png","half_horizontal_bottom.png","half_vertical.png","half_vertical_right.png","mojang.png","piglin.png","rhombus.png","skull.png","small_stripes.png","square_bottom_left.png","square_bottom_right.png","square_top_left.png","square_top_right.png","straight_cross.png","stripe_bottom.png","stripe_center.png","stripe_downleft.png","stripe_downright.png","stripe_left.png","stripe_middle.png","stripe_right.png","stripe_top.png","triangle_bottom.png","triangle_top.png","triangles_bottom.png","triangles_top.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["polarbear.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["black.png","blue.png","brown.png","cyan.png","gray.png","green.png","light_blue.png","light_gray.png","lime.png","magenta.png","orange.png","pink.png","purple.png","red.png","white.png","yellow.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["bee.png","bee_angry.png","bee_angry_nectar.png","bee_nectar.png","bee_stinger.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["bell_body.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["acacia.png","bamboo.png","birch.png","cherry.png","dark_oak.png","jungle.png","mangrove.png","oak.png","pale_oak.png","spruce.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["breeze.png","breeze_eyes.png","breeze_wind.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["camel.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["all_black.png","black.png","british_shorthair.png","calico.png","cat_collar.png","jellie.png","ocelot.png","persian.png","ragdoll.png","red.png","siamese.png","tabby.png","white.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["christmas.png","christmas_left.png","christmas_right.png","copper.png","copper_exposed.png","copper_exposed_left.png","copper_exposed_right.png","copper_left.png","copper_oxidized.png","copper_oxidized_left.png","copper_oxidized_right.png","copper_right.png","copper_weathered.png","copper_weathered_left.png","copper_weathered_right.png","ender.png","normal.png","normal_left.png","normal_right.png","trapped.png","trapped_left.png","trapped_right.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["acacia.png","bamboo.png","birch.png","cherry.png","dark_oak.png","jungle.png","mangrove.png","oak.png","pale_oak.png","spruce.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["cold_chicken.png","temperate_chicken.png","warm_chicken.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["base.png","break_particle.png","cage.png","closed_eye.png","open_eye.png","wind.png","wind.png.mcmeta","wind_vertical.png","wind_vertical.png.mcmeta"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["copper_golem.png","copper_golem_eyes.png","exposed_copper_golem.png","exposed_copper_golem_eyes.png","oxidized_copper_golem.png","oxidized_copper_golem_eyes.png","weathered_copper_golem.png","weathered_copper_golem_eyes.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["brown_mooshroom.png","cold_cow.png","red_mooshroom.png","temperate_cow.png","warm_cow.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["creaking.png","creaking_eyes.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["creeper.png","creeper_armor.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["angler_pottery_pattern.png","archer_pottery_pattern.png","arms_up_pottery_pattern.png","blade_pottery_pattern.png","brewer_pottery_pattern.png","burn_pottery_pattern.png","danger_pottery_pattern.png","decorated_pot_base.png","decorated_pot_side.png","explorer_pottery_pattern.png","flow_pottery_pattern.png","friend_pottery_pattern.png","guster_pottery_pattern.png","heart_pottery_pattern.png","heartbreak_pottery_pattern.png","howl_pottery_pattern.png","miner_pottery_pattern.png","mourner_pottery_pattern.png","plenty_pottery_pattern.png","prize_pottery_pattern.png","scrape_pottery_pattern.png","sheaf_pottery_pattern.png","shelter_pottery_pattern.png","skull_pottery_pattern.png","snort_pottery_pattern.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["end_crystal.png","end_crystal_beam.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["dragon.png","dragon_exploding.png","dragon_eyes.png","dragon_fireball.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["enderman.png","enderman_eyes.png"]}

View File

@@ -1 +0,0 @@
{"directories":["camel_saddle","donkey_saddle","happy_ghast_body","horse_body","horse_saddle","humanoid","humanoid_leggings","llama_body","mule_saddle","pig_saddle","skeleton_horse_saddle","strider_saddle","wings","wolf_body","zombie_horse_saddle"],"files":[]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["saddle.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["saddle.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["black_harness.png","blue_harness.png","brown_harness.png","cyan_harness.png","gray_harness.png","green_harness.png","light_blue_harness.png","light_gray_harness.png","lime_harness.png","magenta_harness.png","orange_harness.png","pink_harness.png","purple_harness.png","red_harness.png","white_harness.png","yellow_harness.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["copper.png","diamond.png","gold.png","iron.png","leather.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["saddle.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["chainmail.png","copper.png","diamond.png","gold.png","iron.png","leather.png","leather_overlay.png","netherite.png","turtle_scute.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["chainmail.png","copper.png","diamond.png","gold.png","iron.png","leather.png","leather_overlay.png","netherite.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["black.png","blue.png","brown.png","cyan.png","gray.png","green.png","light_blue.png","light_gray.png","lime.png","magenta.png","orange.png","pink.png","purple.png","red.png","trader_llama.png","white.png","yellow.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["saddle.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["saddle.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["saddle.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["saddle.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["elytra.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["armadillo_scute.png","armadillo_scute_overlay.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["saddle.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["cod.png","pufferfish.png","salmon.png","tropical_a.png","tropical_a_pattern_1.png","tropical_a_pattern_2.png","tropical_a_pattern_3.png","tropical_a_pattern_4.png","tropical_a_pattern_5.png","tropical_a_pattern_6.png","tropical_b.png","tropical_b_pattern_1.png","tropical_b_pattern_2.png","tropical_b_pattern_3.png","tropical_b_pattern_4.png","tropical_b_pattern_5.png","tropical_b_pattern_6.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["fox.png","fox_sleep.png","snow_fox.png","snow_fox_sleep.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["cold_frog.png","temperate_frog.png","warm_frog.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["ghast.png","ghast_shooting.png","happy_ghast.png","happy_ghast_baby.png","happy_ghast_ropes.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["goat.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["hoglin.png","zoglin.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["donkey.png","horse_black.png","horse_brown.png","horse_chestnut.png","horse_creamy.png","horse_darkbrown.png","horse_gray.png","horse_markings_blackdots.png","horse_markings_white.png","horse_markings_whitedots.png","horse_markings_whitefield.png","horse_skeleton.png","horse_white.png","horse_zombie.png","mule.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["evoker.png","evoker_fangs.png","illusioner.png","pillager.png","ravager.png","vex.png","vex_charging.png","vindicator.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["iron_golem.png","iron_golem_crackiness_high.png","iron_golem_crackiness_low.png","iron_golem_crackiness_medium.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["brown.png","creamy.png","gray.png","spit.png","white.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["aggressive_panda.png","brown_panda.png","lazy_panda.png","panda.png","playful_panda.png","weak_panda.png","worried_panda.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["parrot_blue.png","parrot_green.png","parrot_grey.png","parrot_red_blue.png","parrot_yellow_blue.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["cold_pig.png","temperate_pig.png","warm_pig.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["piglin.png","piglin_brute.png","zombified_piglin.png"]}

View File

@@ -1 +0,0 @@
{"directories":["slim","wide"],"files":[]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["alex.png","ari.png","efe.png","kai.png","makena.png","noor.png","steve.png","sunny.png","zuri.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["alex.png","ari.png","efe.png","kai.png","makena.png","noor.png","steve.png","sunny.png","zuri.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["arrow.png","spectral_arrow.png","tipped_arrow.png","wind_charge.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["black.png","brown.png","caerbannog.png","gold.png","salt.png","toast.png","white.png","white_splotched.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["sheep.png","sheep_wool.png","sheep_wool_undercoat.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["base.png","border.png","bricks.png","circle.png","creeper.png","cross.png","curly_border.png","diagonal_left.png","diagonal_right.png","diagonal_up_left.png","diagonal_up_right.png","flow.png","flower.png","globe.png","gradient.png","gradient_up.png","guster.png","half_horizontal.png","half_horizontal_bottom.png","half_vertical.png","half_vertical_right.png","mojang.png","piglin.png","rhombus.png","skull.png","small_stripes.png","square_bottom_left.png","square_bottom_right.png","square_top_left.png","square_top_right.png","straight_cross.png","stripe_bottom.png","stripe_center.png","stripe_downleft.png","stripe_downright.png","stripe_left.png","stripe_middle.png","stripe_right.png","stripe_top.png","triangle_bottom.png","triangle_top.png","triangles_bottom.png","triangles_top.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["shulker.png","shulker_black.png","shulker_blue.png","shulker_brown.png","shulker_cyan.png","shulker_gray.png","shulker_green.png","shulker_light_blue.png","shulker_light_gray.png","shulker_lime.png","shulker_magenta.png","shulker_orange.png","shulker_pink.png","shulker_purple.png","shulker_red.png","shulker_white.png","shulker_yellow.png","spark.png"]}

View File

@@ -1 +0,0 @@
{"directories":["hanging"],"files":["acacia.png","bamboo.png","birch.png","cherry.png","crimson.png","dark_oak.png","jungle.png","mangrove.png","oak.png","pale_oak.png","spruce.png","warped.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["acacia.png","bamboo.png","birch.png","cherry.png","crimson.png","dark_oak.png","jungle.png","mangrove.png","oak.png","pale_oak.png","spruce.png","warped.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["bogged.png","bogged_overlay.png","skeleton.png","stray.png","stray_overlay.png","wither_skeleton.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["magmacube.png","slime.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["sniffer.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["cave_spider.png","spider.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["glow_squid.png","squid.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["strider.png","strider_cold.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["tadpole.png"]}

View File

@@ -1 +0,0 @@
{"directories":[],"files":["big_sea_turtle.png"]}

Some files were not shown because too many files have changed in this diff Show More