diff --git a/converter/build.gradle.kts b/converter/build.gradle.kts index 69ba866..a068047 100644 --- a/converter/build.gradle.kts +++ b/converter/build.gradle.kts @@ -20,8 +20,8 @@ dependencies { api("net.kyori:adventure-api:4.14.0") api("net.kyori:adventure-text-serializer-gson:4.14.0") api("net.kyori:adventure-text-serializer-legacy:4.14.0") - api("team.unnamed:creative-api:1.7.0") - api("team.unnamed:creative-serializer-minecraft:1.7.0") + api("team.unnamed:creative-api:1.8.2-SNAPSHOT") + api("team.unnamed:creative-serializer-minecraft:1.8.2-SNAPSHOT") compileOnly("com.google.auto.service:auto-service:1.0.1") annotationProcessor("com.google.auto.service:auto-service:1.0.1") diff --git a/converter/src/main/java/org/geysermc/pack/converter/converter/texture/TextureConverter.java b/converter/src/main/java/org/geysermc/pack/converter/converter/texture/TextureConverter.java index 72a1ba7..60ed0ec 100644 --- a/converter/src/main/java/org/geysermc/pack/converter/converter/texture/TextureConverter.java +++ b/converter/src/main/java/org/geysermc/pack/converter/converter/texture/TextureConverter.java @@ -85,15 +85,29 @@ public class TextureConverter implements Converter { Path outputPath = texturePath.resolve(output); String relativePath = texturePath.relativize(outputPath).toString(); - String input = relativePath.substring(0, relativePath.indexOf(File.separator)); + String rootPath = relativePath.substring(0, relativePath.indexOf(File.separator)); - Map keyMappings = mappings.textures(input); - if (keyMappings != null) { + Object mappingObject = mappings.textures(relativePath); + String input = null; + + if (mappingObject == null) { + input = rootPath; + mappingObject = mappings.textures(input); + } + + if (mappingObject instanceof Map keyMappings) { String sanitizedName = output.substring(output.indexOf(File.separator) + 1).replace(".png", ""); - String bedrockPath = keyMappings.get(sanitizedName); + String bedrockPath = (String) keyMappings.get(sanitizedName); if (bedrockPath != null) { output = output.replace(sanitizedName, bedrockPath); } + } else if (mappingObject instanceof String str) { + output = str; + input = output.substring(0, relativePath.indexOf(File.separator)); + } + + if (input == null) { + input = rootPath; } String bedrockDirectory = DIRECTORY_LOCATIONS.getOrDefault(input, input); diff --git a/converter/src/main/java/org/geysermc/pack/converter/converter/texture/TextureMappings.java b/converter/src/main/java/org/geysermc/pack/converter/converter/texture/TextureMappings.java index 95c7894..f11360e 100644 --- a/converter/src/main/java/org/geysermc/pack/converter/converter/texture/TextureMappings.java +++ b/converter/src/main/java/org/geysermc/pack/converter/converter/texture/TextureMappings.java @@ -37,11 +37,11 @@ import java.util.LinkedHashMap; import java.util.Map; @ToString -public class TextureMappings extends LinkedHashMap> { +public class TextureMappings extends LinkedHashMap { private static TextureMappings INSTANCE; @Nullable - public Map textures(@NotNull String key) { + public Object textures(@NotNull String key) { return this.get(key); } diff --git a/converter/src/main/java/org/geysermc/pack/converter/converter/texture/transformer/type/ColorizeTransformer.java b/converter/src/main/java/org/geysermc/pack/converter/converter/texture/transformer/type/ColorizeTransformer.java index 7fb79d7..996c9d6 100644 --- a/converter/src/main/java/org/geysermc/pack/converter/converter/texture/transformer/type/ColorizeTransformer.java +++ b/converter/src/main/java/org/geysermc/pack/converter/converter/texture/transformer/type/ColorizeTransformer.java @@ -44,8 +44,8 @@ import java.util.List; public class ColorizeTransformer implements TextureTransformer { private static final List COLORIZE_DATA = List.of( // Armor (Colors from px 9/1 from original cloth_1.png bedrock texture) - new ColorizeData(new Overlay("models/armor/leather_layer_1.png", new Color(167, 105, 67)), "models/armor/cloth_1.png"), - new ColorizeData(new Overlay("models/armor/leather_layer_2.png", new Color(167, 105, 67)), "models/armor/cloth_2.png"), + new ColorizeData(new Overlay("entity/equipment/humanoid/leather.png", new Color(167, 105, 67)), "models/armor/cloth_1.png"), + new ColorizeData(new Overlay("entity/equipment/humanoid_leggings/leather.png", new Color(167, 105, 67)), "models/armor/cloth_2.png"), // Grass, fern, water & co. new ColorizeData(new Overlay("block/large_fern_top.png", new Color(80, 121, 43)), "blocks/double_plant_fern_carried.png"), // 3/5 (double_plant_fern_carried.png) diff --git a/converter/src/main/java/org/geysermc/pack/converter/converter/texture/transformer/type/OverlayTransformer.java b/converter/src/main/java/org/geysermc/pack/converter/converter/texture/transformer/type/OverlayTransformer.java index 4d2be9b..a906df9 100644 --- a/converter/src/main/java/org/geysermc/pack/converter/converter/texture/transformer/type/OverlayTransformer.java +++ b/converter/src/main/java/org/geysermc/pack/converter/converter/texture/transformer/type/OverlayTransformer.java @@ -70,8 +70,8 @@ public class OverlayTransformer implements TextureTransformer { new OverlayData("item/leather_chestplate.png", "item/leather_chestplate_overlay.png", "items/leather_chestplate.png", true), new OverlayData("item/leather_helmet.png", "item/leather_helmet_overlay.png", "items/leather_helmet.png", true), new OverlayData("item/leather_leggings.png", "item/leather_leggings_overlay.png", "items/leather_leggings.png", true), - new OverlayData("models/armor/leather_layer_1.png", "models/armor/leather_layer_1_overlay.png", "models/armor/leather_1.png", true), - new OverlayData("models/armor/leather_layer_2.png", "models/armor/leather_layer_2_overlay.png", "models/armor/leather_2.png", true), + new OverlayData("entity/equipment/humanoid/leather.png", "entity/equipment/humanoid/leather_overlay.png", "models/armor/leather_1.png", true), + new OverlayData("entity/equipment/humanoid_leggings/leather.png", "entity/equipment/humanoid_leggings/leather_overlay.png", "models/armor/leather_2.png", true), // Phantom new OverlayData("entity/phantom.png", "entity/phantom_eyes.png", "entity/phantom.png", true), diff --git a/converter/src/main/resources/mappings/textures.json b/converter/src/main/resources/mappings/textures.json index ecd637b..d93abda 100644 --- a/converter/src/main/resources/mappings/textures.json +++ b/converter/src/main/resources/mappings/textures.json @@ -48,6 +48,10 @@ "light_gray_concrete": "concrete_silver", "white_concrete": "concrete_white", "yellow_concrete": "concrete_yellow", + "creaking_heart": "creaking_heart_side_inactive", + "creaking_heart_top": "creaking_heart_top_inactive", + "creaking_heart_active": "creaking_heart_side_active", + "creaking_heart_top_active": "creaking_heart_top_active", "oxeye_daisy": "flower_oxeye_daisy", "dead_bush": "deadbush", "detector_rail": "rail_detector", @@ -185,6 +189,11 @@ "rail_corner": "rail_normal_turned", "note_block": "noteblock", "observer_back_on": "observer_back_lit", + "pale_hanging_moss": "pale_hanging_moss_middle", + "pale_moss_block": "pale_moss", + "pale_moss_carpet_side_large": "pale_moss_carpet_side_base", + "pale_moss_carpet_side_small": "pale_moss_carpet_side_tip", + "pale_oak_log": "pale_oak_log_side", "piston_top": "piston_top_normal", "acacia_planks": "planks_acacia", "dark_oak_planks": "planks_big_oak", @@ -250,6 +259,7 @@ "chiseled_stone_bricks": "stonebrick_carved", "cracked_stone_bricks": "stonebrick_cracked", "mossy_stone_bricks": "stonebrick_mossy", + "stripped_pale_oak_log": "stripped_pale_oak_log_side", "torch": "torch_on", "trip_wire_hook": "trip_wire_source", "lily_pad": "waterlily", @@ -955,7 +965,18 @@ "zombie_villager/profession/shepherd": "zombie_villager2/professions/shepherd", "zombie_villager/profession/toolsmith": "zombie_villager2/professions/toolsmith", "zombie_villager/profession/weaponsmith": "zombie_villager2/professions/weaponsmith", - "piglin/zombified_piglin": "piglin/zombie_piglin.png" + "piglin/zombified_piglin": "piglin/zombie_piglin.png", + "cow/temperate_cow": "cow/cow_v2", + "cow/cold_cow": "cow/cow_cold", + "cow/warm_cow": "cow/cow_warm", + "cow/brown_mooshroom": "cow/brown_mooshroom_v2", + "cow/red_mooshroom": "cow/red_mooshroom_v2", + "chicken/temperate_chicken": "chicken/chicken", + "chicken/cold_chicken": "chicken/chicken_cold", + "chicken/warm_chicken": "chicken/chicken_warm", + "pig/temperate_pig": "pig/pig_v3", + "pig/cold_pig": "pig/pig_cold", + "pig/warm_pig": "pig/pig_warm" }, "environment": { @@ -1308,8 +1329,6 @@ "snowball": "snowball", "soul_campfire": "soul_campfire", "soul_lantern": "soul_lantern", - "spawn_egg": "spawn_egg", - "spawn_egg_overlay": "spawn_egg_overlay", "spider_eye": "spider_eye", "spruce_chest_boat": "spruce_chest_boat", "spyglass": "spyglass", @@ -1330,7 +1349,93 @@ "turtle_helmet": "turtle_helmet", "warped_door": "warped_door", "warped_fungus_on_a_stick": "warped_fungus_on_a_stick", - "wheat": "wheat" + "wheat": "wheat", + + "allay_spawn_egg": "spawn_eggs/spawn_egg_allay", + "armadillo_spawn_egg": "spawn_eggs/spawn_egg_armadillo", + "axolotl_spawn_egg": "spawn_eggs/spawn_egg_axolotl", + "bat_spawn_egg": "spawn_eggs/spawn_egg_bat", + "bee_spawn_egg": "spawn_eggs/spawn_egg_bee", + "blaze_spawn_egg": "spawn_eggs/spawn_egg_blaze", + "bogged_spawn_egg": "spawn_eggs/spawn_egg_bogged", + "breeze_spawn_egg": "spawn_eggs/spawn_egg_breeze", + "camel_spawn_egg": "spawn_eggs/spawn_egg_camel", + "cat_spawn_egg": "spawn_eggs/spawn_egg_cat", + "cave_spider_spawn_egg": "spawn_eggs/spawn_egg_cave_spider", + "chicken_spawn_egg": "spawn_eggs/spawn_egg_chicken", + "cod_spawn_egg": "spawn_eggs/spawn_egg_cod", + "cow_spawn_egg": "spawn_eggs/spawn_egg_cow", + "creaking_spawn_egg": "spawn_eggs/spawn_egg_creaking", + "creeper_spawn_egg": "spawn_eggs/spawn_egg_creeper", + "dolphin_spawn_egg": "spawn_eggs/spawn_egg_dolphin", + "donkey_spawn_egg": "spawn_eggs/spawn_egg_donkey", + "drowned_spawn_egg": "spawn_eggs/spawn_egg_drowned", + "elder_guardian_spawn_egg": "spawn_eggs/spawn_egg_elder_guardian", + "ender_dragon_spawn_egg": "spawn_eggs/spawn_egg_ender_dragon", + "enderman_spawn_egg": "spawn_eggs/spawn_egg_enderman", + "endermite_spawn_egg": "spawn_eggs/spawn_egg_endermite", + "evoker_spawn_egg": "spawn_eggs/spawn_egg_evoker", + "fox_spawn_egg": "spawn_eggs/spawn_egg_fox", + "frog_spawn_egg": "spawn_eggs/spawn_egg_frog", + "ghast_spawn_egg": "spawn_eggs/spawn_egg_ghast", + "glow_squid_spawn_egg": "spawn_eggs/spawn_egg_glow_squid", + "goat_spawn_egg": "spawn_eggs/spawn_egg_goat", + "guardian_spawn_egg": "spawn_eggs/spawn_egg_guardian", + "hoglin_spawn_egg": "spawn_eggs/spawn_egg_hoglin", + "horse_spawn_egg": "spawn_eggs/spawn_egg_horse", + "husk_spawn_egg": "spawn_eggs/spawn_egg_husk", + "iron_golem_spawn_egg": "spawn_eggs/spawn_egg_iron_golem", + "llama_spawn_egg": "spawn_eggs/spawn_egg_llama", + "magma_cube_spawn_egg": "spawn_eggs/spawn_egg_magma_cube", + "mooshroom_spawn_egg": "spawn_eggs/spawn_egg_mooshroom", + "mule_spawn_egg": "spawn_eggs/spawn_egg_mule", + "ocelot_spawn_egg": "spawn_eggs/spawn_egg_ocelot", + "panda_spawn_egg": "spawn_eggs/spawn_egg_panda", + "parrot_spawn_egg": "spawn_eggs/spawn_egg_parrot", + "phantom_spawn_egg": "spawn_eggs/spawn_egg_phantom", + "pig_spawn_egg": "spawn_eggs/spawn_egg_pig", + "piglin_spawn_egg": "spawn_eggs/spawn_egg_piglin", + "piglin_brute_spawn_egg": "spawn_eggs/spawn_egg_piglin_brute", + "pillager_spawn_egg": "spawn_eggs/spawn_egg_pillager", + "polar_bear_spawn_egg": "spawn_eggs/spawn_egg_polar_bear", + "pufferfish_spawn_egg": "spawn_eggs/spawn_egg_pufferfish", + "rabbit_spawn_egg": "spawn_eggs/spawn_egg_rabbit", + "ravager_spawn_egg": "spawn_eggs/spawn_egg_ravager", + "salmon_spawn_egg": "spawn_eggs/spawn_egg_salmon", + "sheep_spawn_egg": "spawn_eggs/spawn_egg_sheep", + "shulker_spawn_egg": "spawn_eggs/spawn_egg_shulker", + "silverfish_spawn_egg": "spawn_eggs/spawn_egg_silverfish", + "skeleton_spawn_egg": "spawn_eggs/spawn_egg_skeleton", + "skeleton_horse_spawn_egg": "spawn_eggs/spawn_egg_skeleton_horse", + "slime_spawn_egg": "spawn_eggs/spawn_egg_slime", + "sniffer_spawn_egg": "spawn_eggs/spawn_egg_sniffer", + "snow_golem_spawn_egg": "spawn_eggs/spawn_egg_snow_golem", + "spider_spawn_egg": "spawn_eggs/spawn_egg_spider", + "squid_spawn_egg": "spawn_eggs/spawn_egg_squid", + "stray_spawn_egg": "spawn_eggs/spawn_egg_stray", + "strider_spawn_egg": "spawn_eggs/spawn_egg_strider", + "tadpole_spawn_egg": "spawn_eggs/spawn_egg_tadpole", + "trader_llama_spawn_egg": "spawn_eggs/spawn_egg_trader_llama", + "tropical_fish_spawn_egg": "spawn_eggs/spawn_egg_tropicalfish", + "turtle_spawn_egg": "spawn_eggs/spawn_egg_turtle", + "vex_spawn_egg": "spawn_eggs/spawn_egg_vex", + "villager_spawn_egg": "spawn_eggs/spawn_egg_villager", + "vindicator_spawn_egg": "spawn_eggs/spawn_egg_vindicator", + "wandering_trader_spawn_egg": "spawn_eggs/spawn_egg_wandering_trader", + "warden_spawn_egg": "spawn_eggs/spawn_egg_warden", + "witch_spawn_egg": "spawn_eggs/spawn_egg_witch", + "wither_spawn_egg": "spawn_eggs/spawn_egg_wither", + "wither_skeleton_spawn_egg": "spawn_eggs/spawn_egg_wither_skeleton", + "wolf_spawn_egg": "spawn_eggs/spawn_egg_wolf", + "zoglin_spawn_egg": "spawn_eggs/spawn_egg_zoglin", + "zombie_spawn_egg": "spawn_eggs/spawn_egg_zombie", + "zombie_horse_spawn_egg": "spawn_eggs/spawn_egg_zombie_horse", + "zombie_villager_spawn_egg": "spawn_eggs/spawn_egg_zombie_villager", + "zombified_piglin_spawn_egg": "spawn_eggs/spawn_egg_zombified_piglin", + + "closed_eyeblossom": "eyeblossom_dormant", + "open_eyeblossom": "eyeblossom_stem_blooming", + "open_eyeblossom_emissive": "eyeblossom_eyes_blooming" }, "map": { @@ -1352,5 +1457,17 @@ }, "trims": { - } + }, + + "entity/equipment/humanoid/chainmail": "models/armor/chain_1", + "entity/equipment/humanoid_leggings/chainmail": "models/armor/chain_2", + "entity/equipment/humanoid/iron": "models/armor/iron_1", + "entity/equipment/humanoid_leggings/iron": "models/armor/iron_2", + "entity/equipment/humanoid/gold": "models/armor/gold_1", + "entity/equipment/humanoid_leggings/gold": "models/armor/gold_2", + "entity/equipment/humanoid/diamond": "models/armor/diamond_1", + "entity/equipment/humanoid_leggings/diamond": "models/armor/diamond_2", + "entity/equipment/humanoid/netherite": "models/armor/netherite_1", + "entity/equipment/humanoid_leggings/netherite": "models/armor/netherite_2", + "entity/equipment/humanoid/turtle_scute": "models/armor/turtle_1" } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 182a2c2..062172d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ group = org.geysermc.pack -version = 3.2.1-SNAPSHOT \ No newline at end of file +version = 3.3.1-SNAPSHOT \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index c6d5a3d..f0cdcc9 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -26,6 +26,10 @@ dependencyResolutionManagement { maven("https://repo.opencollab.dev/maven-snapshots") // Java pack library - maven("https://repo.unnamed.team/repository/unnamed-public/") + // maven("https://repo.unnamed.team/repository/unnamed-public/") + + maven { // We need a snapshot version of creative for now + url = uri("https://s01.oss.sonatype.org/content/repositories/snapshots/") + } } } \ No newline at end of file