From c27c8392eaf9bfa39dca897ff4bb54e8f3eb14e7 Mon Sep 17 00:00:00 2001 From: ljfa Date: Thu, 29 May 2025 21:46:05 +0200 Subject: [PATCH 1/2] Add enum extension and item for Red Cedar Boat --- .../totemic/init/BoatTypeEnumParams.java | 18 ++++++++++++++++++ .../java/pokefenn/totemic/init/ModItems.java | 4 ++++ .../resources/META-INF/enumextensions.json | 13 +++++++++++++ src/main/resources/META-INF/neoforge.mods.toml | 1 + 4 files changed, 36 insertions(+) create mode 100644 src/main/java/pokefenn/totemic/init/BoatTypeEnumParams.java create mode 100644 src/main/resources/META-INF/enumextensions.json diff --git a/src/main/java/pokefenn/totemic/init/BoatTypeEnumParams.java b/src/main/java/pokefenn/totemic/init/BoatTypeEnumParams.java new file mode 100644 index 000000000..c2aeceb58 --- /dev/null +++ b/src/main/java/pokefenn/totemic/init/BoatTypeEnumParams.java @@ -0,0 +1,18 @@ +package pokefenn.totemic.init; + +import java.util.function.Supplier; + +import net.minecraft.world.entity.vehicle.Boat; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.Items; +import net.neoforged.fml.common.asm.enumextension.EnumProxy; + +public class BoatTypeEnumParams { + public static final EnumProxy TOTEMIC_CEDAR_ENUM_PROXY = new EnumProxy<>(Boat.Type.class, + ModBlocks.cedar_planks, + "totemic:cedar", + ModItems.cedar_boat, + ModItems.cedar_chest_boat, + (Supplier) () -> Items.STICK, + false); +} diff --git a/src/main/java/pokefenn/totemic/init/ModItems.java b/src/main/java/pokefenn/totemic/init/ModItems.java index 9b1126a08..0e34f7d97 100644 --- a/src/main/java/pokefenn/totemic/init/ModItems.java +++ b/src/main/java/pokefenn/totemic/init/ModItems.java @@ -10,10 +10,12 @@ import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvents; +import net.minecraft.world.entity.vehicle.Boat; import net.minecraft.world.food.FoodProperties; import net.minecraft.world.item.ArmorItem; import net.minecraft.world.item.ArmorMaterial; import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.BoatItem; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.HangingSignItem; import net.minecraft.world.item.Item; @@ -74,6 +76,8 @@ public final class ModItems { public static final DeferredItem baykok_bow = REGISTER.register("baykok_bow", () -> new BaykokBowItem(new Properties().durability(576).rarity(Rarity.RARE))); public static final DeferredItem medicine_bag = REGISTER.register("medicine_bag", () -> new MedicineBagItem(new Properties().stacksTo(1).component(ModDataComponents.OPEN, false).component(ModDataComponents.MEDICINE_BAG_CHARGE, 0))); public static final DeferredItem creative_medicine_bag = REGISTER.register("creative_medicine_bag", () -> new CreativeMedicineBagItem(new Properties().stacksTo(1).rarity(Rarity.EPIC).component(ModDataComponents.OPEN, false))); + public static final DeferredItem cedar_boat = REGISTER.register("cedar_boat", () -> new BoatItem(false, Boat.Type.valueOf("TOTEMIC_CEDAR"), new Item.Properties().stacksTo(1))); + public static final DeferredItem cedar_chest_boat = REGISTER.register("cedar_chest_boat", () -> new BoatItem(true, Boat.Type.valueOf("TOTEMIC_CEDAR"), new Item.Properties().stacksTo(1))); //Blocks with custom item blocks public static final DeferredItem wind_chime = REGISTER.register("wind_chime", () -> new CustomRenderedBlockItem(ModBlocks.wind_chime.get(), new Properties())); public static final DeferredItem cedar_sign = REGISTER.register("cedar_sign", () -> new SignItem(new Properties().stacksTo(16), ModBlocks.cedar_sign.get(), ModBlocks.cedar_wall_sign.get())); diff --git a/src/main/resources/META-INF/enumextensions.json b/src/main/resources/META-INF/enumextensions.json new file mode 100644 index 000000000..944588a3e --- /dev/null +++ b/src/main/resources/META-INF/enumextensions.json @@ -0,0 +1,13 @@ +{ + "entries": [ + { + "enum": "net/minecraft/world/entity/vehicle/Boat$Type", + "name": "TOTEMIC_CEDAR", + "constructor": "(Ljava/util/function/Supplier;Ljava/lang/String;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Z)V", + "parameters": { + "class": "pokefenn/totemic/init/BoatTypeEnumParams", + "field": "TOTEMIC_CEDAR_ENUM_PROXY" + } + } + ] +} diff --git a/src/main/resources/META-INF/neoforge.mods.toml b/src/main/resources/META-INF/neoforge.mods.toml index a81aaa616..1b96468bb 100644 --- a/src/main/resources/META-INF/neoforge.mods.toml +++ b/src/main/resources/META-INF/neoforge.mods.toml @@ -13,6 +13,7 @@ logoFile="totemic_logo.png" credits="nojustgavin, Nefilto, ZestyBlaze, VincentLongiug, WayofTime, Joshie, Poppycocks, Dylan4Ever, Vazkii, Kerri Lake" authors="${mod_authors}" description='''${mod_description}''' +enumExtensions="META-INF/enumextensions.json" [[mixins]] config="totemic.mixins.json" From c625fe737682e70c470d3d07bb60c2b6dfb0fc30 Mon Sep 17 00:00:00 2001 From: ljfa Date: Thu, 29 May 2025 22:03:02 +0200 Subject: [PATCH 2/2] Add localizations, recipes and item tag entries for Red Cedar Boat --- .../365549a9d1cc94fad44bfaed8f8508d57a5e26a1 | 4 ++- .../9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e | 6 +++- .../data/minecraft/tags/item/boats.json | 5 +++ .../data/minecraft/tags/item/chest_boats.json | 5 +++ .../recipes/transportation/cedar_boat.json | 28 ++++++++++++++++ .../transportation/cedar_chest_boat.json | 32 +++++++++++++++++++ .../data/totemic/recipe/cedar_boat.json | 18 +++++++++++ .../data/totemic/recipe/cedar_chest_boat.json | 17 ++++++++++ .../totemic/data/TotemicItemTagsProvider.java | 2 ++ .../totemic/data/TotemicRecipeProvider.java | 2 ++ .../resources/assets/totemic/lang/de_de.json | 2 ++ .../resources/assets/totemic/lang/en_us.json | 2 ++ .../resources/assets/totemic/lang/ja_jp.json | 2 ++ .../resources/assets/totemic/lang/ko_kr.json | 2 ++ .../resources/assets/totemic/lang/ru_ru.json | 2 ++ .../resources/assets/totemic/lang/uk_ua.json | 2 ++ .../resources/assets/totemic/lang/zh_cn.json | 2 ++ 17 files changed, 131 insertions(+), 2 deletions(-) create mode 100644 src/generated/resources/data/minecraft/tags/item/boats.json create mode 100644 src/generated/resources/data/minecraft/tags/item/chest_boats.json create mode 100644 src/generated/resources/data/totemic/advancement/recipes/transportation/cedar_boat.json create mode 100644 src/generated/resources/data/totemic/advancement/recipes/transportation/cedar_chest_boat.json create mode 100644 src/generated/resources/data/totemic/recipe/cedar_boat.json create mode 100644 src/generated/resources/data/totemic/recipe/cedar_chest_boat.json diff --git a/src/generated/resources/.cache/365549a9d1cc94fad44bfaed8f8508d57a5e26a1 b/src/generated/resources/.cache/365549a9d1cc94fad44bfaed8f8508d57a5e26a1 index 08f75b934..48551e837 100644 --- a/src/generated/resources/.cache/365549a9d1cc94fad44bfaed8f8508d57a5e26a1 +++ b/src/generated/resources/.cache/365549a9d1cc94fad44bfaed8f8508d57a5e26a1 @@ -1,7 +1,9 @@ -// 1.21.1 2024-08-21T22:38:50.75353921 Tags for minecraft:item mod id totemic +// 1.21.1 2025-05-29T22:02:19.858312439 Tags for minecraft:item mod id totemic f48a711794f70f6a13891618f69d5b89e02cb8ba data/c/tags/item/fence_gates/wooden.json 8c8c7476579771a19d4ed2a14de7fab91e67b074 data/c/tags/item/leathers.json da18fddcb4fafb900cf9a113d454941e0ca01fc4 data/c/tags/item/tools/bow.json +e408001122c69d71b853a669def954eb13a7d3be data/minecraft/tags/item/boats.json +622309a908d52c30083b0164845a9f5c1807f156 data/minecraft/tags/item/chest_boats.json df2fde5a09193bb066c97a1c4a72616852680332 data/minecraft/tags/item/leaves.json 8a567014dc4a3f77acc3596dba6ceab589ec8a41 data/minecraft/tags/item/leg_armor.json cc42e4a4bcf0f0149edad3568521f8d79ec4f3bc data/minecraft/tags/item/logs_that_burn.json diff --git a/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e b/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e index 225aeeddf..ca0cf3a30 100644 --- a/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e +++ b/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e @@ -1,4 +1,4 @@ -// 1.21.1 2024-08-21T22:38:50.75243256 Recipes +// 1.21.1 2025-05-29T22:02:19.856451054 Recipes 93116018ed5f034e0ed24e190ca152273105cce8 data/minecraft/advancement/recipes/food/cooked_buffalo_meat_from_campfire_cooking.json e55c90c769bf8b82065c78971737fb5f691a0d56 data/minecraft/advancement/recipes/food/cooked_buffalo_meat_from_smelting.json ae92116ef54c077dd0e06297a516199abea19d20 data/minecraft/advancement/recipes/food/cooked_buffalo_meat_from_smoking.json @@ -33,7 +33,11 @@ b0fd736267e0733c688bb6411bd93352d7fdf6ef data/totemic/advancement/recipes/redsto 18cb13c874097a6d9af3db0f153abccd36147db9 data/totemic/advancement/recipes/redstone/cedar_trapdoor.json 0ecba5cc1301a8d0749834b9131b1355a71983f0 data/totemic/advancement/recipes/tools/totem_whittling_knife.json a347b2b02ab57393fdf30d811ec889a191000bd8 data/totemic/advancement/recipes/tools/totemic_staff.json +8ba60027155bfc653a080064331c95301468427e data/totemic/advancement/recipes/transportation/cedar_boat.json +85152f4337cdd45b9c91c1157e462f21610c0118 data/totemic/advancement/recipes/transportation/cedar_chest_boat.json +5a170e310de924a04819a9d0268685dfda1bfbbc data/totemic/recipe/cedar_boat.json 8fd602502e24b0375385f281eaa76ea09cebccf3 data/totemic/recipe/cedar_button.json +18d44e12513f9b6bd57f9e467ac888ece2de22de data/totemic/recipe/cedar_chest_boat.json a063e1e7b473ad289f5b3b9f2e1117ec3443caa0 data/totemic/recipe/cedar_door.json d9fb89553d6849ffe95372495d8f02d2292a551d data/totemic/recipe/cedar_fence.json 84e172e0b2a8e895c3e6aacba8489827fff1cbeb data/totemic/recipe/cedar_fence_gate.json diff --git a/src/generated/resources/data/minecraft/tags/item/boats.json b/src/generated/resources/data/minecraft/tags/item/boats.json new file mode 100644 index 000000000..6c5be8341 --- /dev/null +++ b/src/generated/resources/data/minecraft/tags/item/boats.json @@ -0,0 +1,5 @@ +{ + "values": [ + "totemic:cedar_boat" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/item/chest_boats.json b/src/generated/resources/data/minecraft/tags/item/chest_boats.json new file mode 100644 index 000000000..ef0925adf --- /dev/null +++ b/src/generated/resources/data/minecraft/tags/item/chest_boats.json @@ -0,0 +1,5 @@ +{ + "values": [ + "totemic:cedar_chest_boat" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/totemic/advancement/recipes/transportation/cedar_boat.json b/src/generated/resources/data/totemic/advancement/recipes/transportation/cedar_boat.json new file mode 100644 index 000000000..fda75a35a --- /dev/null +++ b/src/generated/resources/data/totemic/advancement/recipes/transportation/cedar_boat.json @@ -0,0 +1,28 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "totemic:cedar_boat" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "in_water": { + "conditions": { + "block": "minecraft:water" + }, + "trigger": "minecraft:enter_block" + } + }, + "requirements": [ + [ + "has_the_recipe", + "in_water" + ] + ], + "rewards": { + "recipes": [ + "totemic:cedar_boat" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/totemic/advancement/recipes/transportation/cedar_chest_boat.json b/src/generated/resources/data/totemic/advancement/recipes/transportation/cedar_chest_boat.json new file mode 100644 index 000000000..5ebc55601 --- /dev/null +++ b/src/generated/resources/data/totemic/advancement/recipes/transportation/cedar_chest_boat.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_boat": { + "conditions": { + "items": [ + { + "items": "#minecraft:boats" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "totemic:cedar_chest_boat" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_boat" + ] + ], + "rewards": { + "recipes": [ + "totemic:cedar_chest_boat" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/totemic/recipe/cedar_boat.json b/src/generated/resources/data/totemic/recipe/cedar_boat.json new file mode 100644 index 000000000..14f1df98d --- /dev/null +++ b/src/generated/resources/data/totemic/recipe/cedar_boat.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "boat", + "key": { + "#": { + "item": "totemic:cedar_planks" + } + }, + "pattern": [ + "# #", + "###" + ], + "result": { + "count": 1, + "id": "totemic:cedar_boat" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/totemic/recipe/cedar_chest_boat.json b/src/generated/resources/data/totemic/recipe/cedar_chest_boat.json new file mode 100644 index 000000000..da52a496b --- /dev/null +++ b/src/generated/resources/data/totemic/recipe/cedar_chest_boat.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "chest_boat", + "ingredients": [ + { + "item": "minecraft:chest" + }, + { + "item": "totemic:cedar_boat" + } + ], + "result": { + "count": 1, + "id": "totemic:cedar_chest_boat" + } +} \ No newline at end of file diff --git a/src/main/java/pokefenn/totemic/data/TotemicItemTagsProvider.java b/src/main/java/pokefenn/totemic/data/TotemicItemTagsProvider.java index 6661d6ac0..b2a347854 100644 --- a/src/main/java/pokefenn/totemic/data/TotemicItemTagsProvider.java +++ b/src/main/java/pokefenn/totemic/data/TotemicItemTagsProvider.java @@ -29,6 +29,8 @@ protected void addTags(Provider pProvider) { //Minecraft and Forge tags tag(ItemTags.SIGNS).add(ModItems.cedar_sign.get()); + tag(ItemTags.BOATS).add(ModItems.cedar_boat.get()); + tag(ItemTags.CHEST_BOATS).add(ModItems.cedar_chest_boat.get()); tag(ItemTags.LEG_ARMOR).add(ModItems.jingle_dress.get()); tag(Tags.Items.LEATHERS).add(ModItems.buffalo_hide.get()); diff --git a/src/main/java/pokefenn/totemic/data/TotemicRecipeProvider.java b/src/main/java/pokefenn/totemic/data/TotemicRecipeProvider.java index 549c0ac72..3e63e2224 100644 --- a/src/main/java/pokefenn/totemic/data/TotemicRecipeProvider.java +++ b/src/main/java/pokefenn/totemic/data/TotemicRecipeProvider.java @@ -195,6 +195,8 @@ protected void buildRecipes(RecipeOutput rc) { hangingSign(rc, ModItems.cedar_hanging_sign.get(), ModBlocks.stripped_cedar_log.get()); woodFromLogs(rc, ModBlocks.cedar_wood.get(), ModBlocks.cedar_log.get()); woodFromLogs(rc, ModBlocks.stripped_cedar_wood.get(), ModBlocks.stripped_cedar_log.get()); + woodenBoat(rc, ModItems.cedar_boat.get(), ModBlocks.cedar_planks.get()); + chestBoat(rc, ModItems.cedar_chest_boat.get(), ModItems.cedar_boat.get()); simpleCookingRecipe(rc, "smelting", RecipeSerializer.SMELTING_RECIPE, SmeltingRecipe::new, 200, ModItems.buffalo_meat.get(), ModItems.cooked_buffalo_meat.get(), 0.35F); simpleCookingRecipe(rc, "smoking", RecipeSerializer.SMOKING_RECIPE, SmokingRecipe::new, 100, ModItems.buffalo_meat.get(), ModItems.cooked_buffalo_meat.get(), 0.35F); diff --git a/src/main/resources/assets/totemic/lang/de_de.json b/src/main/resources/assets/totemic/lang/de_de.json index 7d46a47b0..a55ba5b0d 100644 --- a/src/main/resources/assets/totemic/lang/de_de.json +++ b/src/main/resources/assets/totemic/lang/de_de.json @@ -35,6 +35,8 @@ "totemic.medicineBag.open": "Offen", "totemic.medicineBag.empty": "Leer", "totemic.medicineBag.charge": "Ladung: %d / %d", + "item.totemic.cedar_boat": "Rotes Zedernholzboot", + "item.totemic.cedar_chest_boat": "Rotes Zedernholzkistenboot", "totemic.tooltip.selectorMode": "Schleiche während des Spielens, um eine Zeremonie auszuwählen", diff --git a/src/main/resources/assets/totemic/lang/en_us.json b/src/main/resources/assets/totemic/lang/en_us.json index 0f8414d8d..60948ea40 100644 --- a/src/main/resources/assets/totemic/lang/en_us.json +++ b/src/main/resources/assets/totemic/lang/en_us.json @@ -35,6 +35,8 @@ "totemic.medicineBag.open": "Open", "totemic.medicineBag.empty": "Empty", "totemic.medicineBag.charge": "Charge: %d / %d", + "item.totemic.cedar_boat": "Red Cedar Boat", + "item.totemic.cedar_chest_boat": "Red Cedar Boat with Chest", "totemic.tooltip.selectorMode": "Sneak while playing to select a Ceremony", diff --git a/src/main/resources/assets/totemic/lang/ja_jp.json b/src/main/resources/assets/totemic/lang/ja_jp.json index 75a9ce469..9a001b558 100644 --- a/src/main/resources/assets/totemic/lang/ja_jp.json +++ b/src/main/resources/assets/totemic/lang/ja_jp.json @@ -34,6 +34,8 @@ "totemic.medicineBag.open": "開いた", "totemic.medicineBag.empty": "空", "totemic.medicineBag.charge": "電荷:%d / %d", + "item.totemic.cedar_boat": "赤杉のボート", + "item.totemic.cedar_chest_boat": "チェスト付きの赤杉のボート", "totemic.tooltip.selectorMode": "儀式を選択するには演奏しながらスニークして", diff --git a/src/main/resources/assets/totemic/lang/ko_kr.json b/src/main/resources/assets/totemic/lang/ko_kr.json index be87419f9..569255c25 100644 --- a/src/main/resources/assets/totemic/lang/ko_kr.json +++ b/src/main/resources/assets/totemic/lang/ko_kr.json @@ -34,6 +34,8 @@ "totemic.medicineBag.open": "풀어둠", "totemic.medicineBag.empty": "비었음", "totemic.medicineBag.charge": "Charge: %d / %d", + "item.totemic.cedar_boat": "Red Cedar Boat", + "item.totemic.cedar_chest_boat": "Red Cedar Boat with Chest", "totemic.tooltip.selectorMode": "선택 모드를 사용하시려면 쉬프트를 누르고 악기를 연주하세요", diff --git a/src/main/resources/assets/totemic/lang/ru_ru.json b/src/main/resources/assets/totemic/lang/ru_ru.json index 4dde0ef9a..a68c6ccd0 100644 --- a/src/main/resources/assets/totemic/lang/ru_ru.json +++ b/src/main/resources/assets/totemic/lang/ru_ru.json @@ -34,6 +34,8 @@ "totemic.medicineBag.open": "Открыта", "totemic.medicineBag.empty": "Пуста", "totemic.medicineBag.charge": "Заряд: %d / %d", + "item.totemic.cedar_boat": "Red Cedar Boat", + "item.totemic.cedar_chest_boat": "Red Cedar Boat with Chest", "totemic.tooltip.selectorMode": "Приседая вы можете выбрать ритуал для проведения", diff --git a/src/main/resources/assets/totemic/lang/uk_ua.json b/src/main/resources/assets/totemic/lang/uk_ua.json index 67eda1cb8..fe148f196 100644 --- a/src/main/resources/assets/totemic/lang/uk_ua.json +++ b/src/main/resources/assets/totemic/lang/uk_ua.json @@ -34,6 +34,8 @@ "totemic.medicineBag.open": "Відкрита", "totemic.medicineBag.empty": "Порожня", "totemic.medicineBag.charge": "Заряд: %d / %d", + "item.totemic.cedar_boat": "Red Cedar Boat", + "item.totemic.cedar_chest_boat": "Red Cedar Boat with Chest", "totemic.tooltip.selectorMode": "Крадіться поки граєте, щоб обрати церемонію", diff --git a/src/main/resources/assets/totemic/lang/zh_cn.json b/src/main/resources/assets/totemic/lang/zh_cn.json index 0c87e8073..b9492a0da 100644 --- a/src/main/resources/assets/totemic/lang/zh_cn.json +++ b/src/main/resources/assets/totemic/lang/zh_cn.json @@ -35,6 +35,8 @@ "totemic.medicineBag.open": "启用", "totemic.medicineBag.empty": "空", "totemic.medicineBag.charge": "图腾能量:%d / %d", + "item.totemic.cedar_boat": "Red Cedar Boat", + "item.totemic.cedar_chest_boat": "Red Cedar Boat with Chest", "totemic.tooltip.selectorMode": "潜行选择仪式进行使用",