From f271a1b343d1faabf5e210868a347cbb7d07eda0 Mon Sep 17 00:00:00 2001 From: sillyangel Date: Tue, 31 Dec 2024 12:35:11 -0600 Subject: [PATCH] add nugget horse armor and related assets; update mod version to 1.1.1 --- gradle.properties | 2 +- .../nugget/datagen/DataGenerators.java | 2 + .../nugget/datagen/ModDatapackEntries.java | 24 +++++++ .../nugget/datagen/ModItemModelProvider.java | 1 + .../nugget/datagen/ModItemTagProvider.java | 4 ++ .../nugget/datagen/ModRecipeProvider.java | 3 + .../nugget/item/ModCreativeModeTabs.java | 3 + .../xyz/sillyangel/nugget/item/ModItems.java | 10 ++- .../nugget/trim/ModTrimMaterials.java | 31 +++++++++ .../nugget/trim/ModTrimPatterns.java | 28 ++++++++ .../nugget/util/ModItemProperites.java | 5 ++ .../assets/minecraft/atlases/armor_trims.json | 63 ++++++++++++++++++ .../assets/nuggetmod/lang/en_us.json | 6 +- .../entity/horse/armor/nugget_horse_armor.png | Bin 0 -> 921 bytes .../textures/trims/color_palettes/nugget.png | Bin 0 -> 140 bytes .../textures/trims/models/armor/nugget.png | Bin 0 -> 584 bytes .../trims/models/armor/nugget_leggings.png | Bin 0 -> 328 bytes 17 files changed, 178 insertions(+), 4 deletions(-) create mode 100644 src/main/java/xyz/sillyangel/nugget/datagen/ModDatapackEntries.java create mode 100644 src/main/java/xyz/sillyangel/nugget/trim/ModTrimMaterials.java create mode 100644 src/main/java/xyz/sillyangel/nugget/trim/ModTrimPatterns.java create mode 100644 src/main/java/xyz/sillyangel/nugget/util/ModItemProperites.java create mode 100644 src/main/resources/assets/minecraft/atlases/armor_trims.json create mode 100644 src/main/resources/assets/nuggetmod/textures/entity/horse/armor/nugget_horse_armor.png create mode 100644 src/main/resources/assets/nuggetmod/textures/trims/color_palettes/nugget.png create mode 100644 src/main/resources/assets/nuggetmod/textures/trims/models/armor/nugget.png create mode 100644 src/main/resources/assets/nuggetmod/textures/trims/models/armor/nugget_leggings.png diff --git a/gradle.properties b/gradle.properties index 43d86cb..f53bdeb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -48,7 +48,7 @@ mod_name=Nugget Mod # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. mod_license=MIT # The mod version. See https://semver.org/ -mod_version=1.1.0 +mod_version=1.1.1 # The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. # This should match the base package used for the mod sources. # See https://maven.apache.org/guides/mini/guide-naming-conventions.html diff --git a/src/main/java/xyz/sillyangel/nugget/datagen/DataGenerators.java b/src/main/java/xyz/sillyangel/nugget/datagen/DataGenerators.java index 14d48a0..e15f49e 100644 --- a/src/main/java/xyz/sillyangel/nugget/datagen/DataGenerators.java +++ b/src/main/java/xyz/sillyangel/nugget/datagen/DataGenerators.java @@ -35,5 +35,7 @@ public class DataGenerators { generator.addProvider(event.includeClient(), new ModItemModelProvider(packOutput, existingFileHelper)); generator.addProvider(event.includeClient(), new ModBlockStateProvider(packOutput, existingFileHelper)); + + generator.addProvider(event.includeServer(), new ModDatapackEntries(packOutput, lookupProvider)); } } \ No newline at end of file diff --git a/src/main/java/xyz/sillyangel/nugget/datagen/ModDatapackEntries.java b/src/main/java/xyz/sillyangel/nugget/datagen/ModDatapackEntries.java new file mode 100644 index 0000000..e4a1070 --- /dev/null +++ b/src/main/java/xyz/sillyangel/nugget/datagen/ModDatapackEntries.java @@ -0,0 +1,24 @@ +package xyz.sillyangel.nugget.datagen; + +import xyz.sillyangel.nugget.NuggetMod; +import net.minecraftforge.common.data.DatapackBuiltinEntriesProvider; +import xyz.sillyangel.nugget.trim.ModTrimMaterials; +import xyz.sillyangel.nugget.trim.ModTrimPatterns; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.RegistrySetBuilder; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.PackOutput; +import net.minecraftforge.common.data.DatapackBuiltinEntriesProvider; + +import java.util.Set; +import java.util.concurrent.CompletableFuture; + +public class ModDatapackEntries extends DatapackBuiltinEntriesProvider { + public static final RegistrySetBuilder BUILDER = new RegistrySetBuilder() + .add(Registries.TRIM_MATERIAL, ModTrimMaterials::bootstrap) + .add(Registries.TRIM_PATTERN, ModTrimPatterns::bootstrap); + + public ModDatapackEntries(PackOutput output, CompletableFuture registries) { + super(output, registries, BUILDER, Set.of(NuggetMod.MOD_ID)); + } +} \ No newline at end of file diff --git a/src/main/java/xyz/sillyangel/nugget/datagen/ModItemModelProvider.java b/src/main/java/xyz/sillyangel/nugget/datagen/ModItemModelProvider.java index d06c610..11e7aff 100644 --- a/src/main/java/xyz/sillyangel/nugget/datagen/ModItemModelProvider.java +++ b/src/main/java/xyz/sillyangel/nugget/datagen/ModItemModelProvider.java @@ -41,6 +41,7 @@ public class ModItemModelProvider extends ItemModelProvider { @Override protected void registerModels() { + basicItem(ModItems.NUGGET_HORSE_ARMOR.get()); basicItem(ModItems.NUGGET.get()); basicItem(ModItems.RAW_NUGGET.get()); diff --git a/src/main/java/xyz/sillyangel/nugget/datagen/ModItemTagProvider.java b/src/main/java/xyz/sillyangel/nugget/datagen/ModItemTagProvider.java index 7568d3f..be9dcdd 100644 --- a/src/main/java/xyz/sillyangel/nugget/datagen/ModItemTagProvider.java +++ b/src/main/java/xyz/sillyangel/nugget/datagen/ModItemTagProvider.java @@ -34,5 +34,9 @@ public class ModItemTagProvider extends ItemTagsProvider { .add(ModItems.NUGGET_CHESTPLATE.get()) .add(ModItems.NUGGET_LEGGINGS.get()) .add(ModItems.NUGGET_BOOTS.get()); + tag(ItemTags.TRIM_MATERIALS) + .add(ModItems.NUGGET.get()); + tag(ItemTags.TRIM_TEMPLATES) + .add(ModItems.NUGGET_SMITHING_TEMPLATE.get()); } } \ No newline at end of file diff --git a/src/main/java/xyz/sillyangel/nugget/datagen/ModRecipeProvider.java b/src/main/java/xyz/sillyangel/nugget/datagen/ModRecipeProvider.java index c2ee966..d64c2f6 100644 --- a/src/main/java/xyz/sillyangel/nugget/datagen/ModRecipeProvider.java +++ b/src/main/java/xyz/sillyangel/nugget/datagen/ModRecipeProvider.java @@ -7,6 +7,7 @@ import xyz.sillyangel.nugget.item.ModItems; import net.minecraft.core.HolderLookup; import net.minecraft.data.PackOutput; import net.minecraft.data.recipes.*; +import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.crafting.*; import net.minecraft.world.level.ItemLike; import net.minecraftforge.common.crafting.conditions.IConditionBuilder; @@ -122,6 +123,8 @@ public class ModRecipeProvider extends RecipeProvider implements IConditionBuild .define('A', ModItems.NUGGET.get()) .unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(pRecipeOutput); + trimSmithing(pRecipeOutput, ModItems.NUGGET_SMITHING_TEMPLATE.get(), ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget")); + oreSmelting(pRecipeOutput, NUGGET_SMELTABLES, RecipeCategory.MISC, ModItems.NUGGET.get(), 0.25f, 200, "nugget"); oreBlasting(pRecipeOutput, NUGGET_SMELTABLES, RecipeCategory.MISC, ModItems.NUGGET.get(), 0.25f, 100, "nugget"); diff --git a/src/main/java/xyz/sillyangel/nugget/item/ModCreativeModeTabs.java b/src/main/java/xyz/sillyangel/nugget/item/ModCreativeModeTabs.java index 2c137dc..243a8ae 100644 --- a/src/main/java/xyz/sillyangel/nugget/item/ModCreativeModeTabs.java +++ b/src/main/java/xyz/sillyangel/nugget/item/ModCreativeModeTabs.java @@ -32,6 +32,9 @@ public class ModCreativeModeTabs { output.accept(ModItems.NUGGET_LEGGINGS.get()); output.accept(ModItems.NUGGET_BOOTS.get()); + output.accept(ModItems.NUGGET_HORSE_ARMOR.get()); + output.accept(ModItems.NUGGET_SMITHING_TEMPLATE.get()); + }).build()); public static final RegistryObject NUGGET_BLOCKS_TAB = CREATIVE_MODE_TABS.register("nuggetmod_blocks_tab", diff --git a/src/main/java/xyz/sillyangel/nugget/item/ModItems.java b/src/main/java/xyz/sillyangel/nugget/item/ModItems.java index 3648a2e..b1d14d0 100644 --- a/src/main/java/xyz/sillyangel/nugget/item/ModItems.java +++ b/src/main/java/xyz/sillyangel/nugget/item/ModItems.java @@ -5,6 +5,7 @@ import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; import net.minecraftforge.registries.RegistryObject; import net.minecraft.world.item.*; import java.util.List; @@ -55,8 +56,13 @@ public class ModItems { public static final RegistryObject NUGGET_BOOTS = ITEMS.register("nugget_boots", () -> new ArmorItem(ModArmorMaterials.NUGGET_ARMOR_MATERIAL, ArmorItem.Type.BOOTS, new Item.Properties().durability(ArmorItem.Type.BOOTS.getDurability(25)))); - - + // horse armor + public static final RegistryObject NUGGET_HORSE_ARMOR = ITEMS.register("nugget_horse_armor", + () -> new AnimalArmorItem(ModArmorMaterials.NUGGET_ARMOR_MATERIAL, AnimalArmorItem.BodyType.EQUESTRIAN, + false, new Item.Properties().stacksTo(1))); + // smithing temp + public static final RegistryObject NUGGET_SMITHING_TEMPLATE = ITEMS.register("nugget_armor_trim_smithing_template", + () -> SmithingTemplateItem.createArmorTrimTemplate(ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget"))); public static void register(IEventBus eventBus) { ITEMS.register(eventBus); } diff --git a/src/main/java/xyz/sillyangel/nugget/trim/ModTrimMaterials.java b/src/main/java/xyz/sillyangel/nugget/trim/ModTrimMaterials.java new file mode 100644 index 0000000..87cc81e --- /dev/null +++ b/src/main/java/xyz/sillyangel/nugget/trim/ModTrimMaterials.java @@ -0,0 +1,31 @@ +package xyz.sillyangel.nugget.trim; + +import xyz.sillyangel.nugget.NuggetMod; +import xyz.sillyangel.nugget.item.ModItems; +import net.minecraft.Util; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.worldgen.BootstrapContext; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.Style; +import net.minecraft.network.chat.TextColor; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.armortrim.TrimMaterial; + +import java.util.Map; + +public class ModTrimMaterials { + public static final ResourceKey NUGGET = + ResourceKey.create(Registries.TRIM_MATERIAL, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget")); + + public static void bootstrap(BootstrapContext context) { + register(context, NUGGET, ModItems.NUGGET.get(), Style.EMPTY.withColor(TextColor.parseColor("#f9b042").getOrThrow()), 0.1F); + } + private static void register(BootstrapContext context, ResourceKey trimKey, Item item, + Style style, float itemModelIndex) { + TrimMaterial trimmaterial = TrimMaterial.create(trimKey.location().getPath(), item, itemModelIndex, + Component.translatable(Util.makeDescriptionId("trim_material", trimKey.location())).withStyle(style), Map.of()); + context.register(trimKey, trimmaterial); + } +} \ No newline at end of file diff --git a/src/main/java/xyz/sillyangel/nugget/trim/ModTrimPatterns.java b/src/main/java/xyz/sillyangel/nugget/trim/ModTrimPatterns.java new file mode 100644 index 0000000..aa0612f --- /dev/null +++ b/src/main/java/xyz/sillyangel/nugget/trim/ModTrimPatterns.java @@ -0,0 +1,28 @@ +package xyz.sillyangel.nugget.trim; + +import xyz.sillyangel.nugget.NuggetMod; +import xyz.sillyangel.nugget.item.ModItems; +import net.minecraft.Util; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.worldgen.BootstrapContext; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.armortrim.TrimPattern; +import net.minecraftforge.registries.ForgeRegistries; + +public class ModTrimPatterns { + public static final ResourceKey NUGGET = ResourceKey.create(Registries.TRIM_PATTERN, + ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget")); + + public static void bootstrap(BootstrapContext context) { + register(context, ModItems.NUGGET_SMITHING_TEMPLATE.get(), NUGGET); + } + + private static void register(BootstrapContext context, Item item, ResourceKey key) { + TrimPattern trimPattern = new TrimPattern(key.location(), ForgeRegistries.ITEMS.getHolder(item).get(), + Component.translatable(Util.makeDescriptionId("trim_pattern", key.location())), false); + context.register(key, trimPattern); + } +} \ No newline at end of file diff --git a/src/main/java/xyz/sillyangel/nugget/util/ModItemProperites.java b/src/main/java/xyz/sillyangel/nugget/util/ModItemProperites.java new file mode 100644 index 0000000..dac47e2 --- /dev/null +++ b/src/main/java/xyz/sillyangel/nugget/util/ModItemProperites.java @@ -0,0 +1,5 @@ +package xyz.sillyangel.nugget.util; + +public class ModItemProperites { + +} diff --git a/src/main/resources/assets/minecraft/atlases/armor_trims.json b/src/main/resources/assets/minecraft/atlases/armor_trims.json new file mode 100644 index 0000000..cf03301 --- /dev/null +++ b/src/main/resources/assets/minecraft/atlases/armor_trims.json @@ -0,0 +1,63 @@ +{ + "replace": false, + "sources": [ + { + "type": "paletted_permutations", + "textures": [ + "trims/models/armor/coast", + "trims/models/armor/coast_leggings", + "trims/models/armor/sentry", + "trims/models/armor/sentry_leggings", + "trims/models/armor/dune", + "trims/models/armor/dune_leggings", + "trims/models/armor/wild", + "trims/models/armor/wild_leggings", + "trims/models/armor/ward", + "trims/models/armor/ward_leggings", + "trims/models/armor/eye", + "trims/models/armor/eye_leggings", + "trims/models/armor/vex", + "trims/models/armor/vex_leggings", + "trims/models/armor/tide", + "trims/models/armor/tide_leggings", + "trims/models/armor/snout", + "trims/models/armor/snout_leggings", + "trims/models/armor/rib", + "trims/models/armor/rib_leggings", + "trims/models/armor/spire", + "trims/models/armor/spire_leggings", + "trims/models/armor/wayfinder", + "trims/models/armor/wayfinder_leggings", + "trims/models/armor/shaper", + "trims/models/armor/shaper_leggings", + "trims/models/armor/silence", + "trims/models/armor/silence_leggings", + "trims/models/armor/raiser", + "trims/models/armor/raiser_leggings", + "trims/models/armor/host", + "trims/models/armor/host_leggings", + "nuggetmod:trims/models/armor/nugget", + "nuggetmod:trims/models/armor/nugget_leggings" + + ], + "palette_key": "trims/color_palettes/trim_palette", + "permutations": { + "quartz": "trims/color_palettes/quartz", + "iron": "trims/color_palettes/iron", + "gold": "trims/color_palettes/gold", + "diamond": "trims/color_palettes/diamond", + "netherite": "trims/color_palettes/netherite", + "redstone": "trims/color_palettes/redstone", + "copper": "trims/color_palettes/copper", + "emerald": "trims/color_palettes/emerald", + "lapis": "trims/color_palettes/lapis", + "amethyst": "trims/color_palettes/amethyst", + "iron_darker": "trims/color_palettes/iron_darker", + "gold_darker": "trims/color_palettes/gold_darker", + "diamond_darker": "trims/color_palettes/diamond_darker", + "netherite_darker": "trims/color_palettes/netherite_darker", + "nugget": "nuggetmod:trims/color_palettes/nugget" + } + } + ] + } \ No newline at end of file diff --git a/src/main/resources/assets/nuggetmod/lang/en_us.json b/src/main/resources/assets/nuggetmod/lang/en_us.json index e1a8432..6ddba48 100644 --- a/src/main/resources/assets/nuggetmod/lang/en_us.json +++ b/src/main/resources/assets/nuggetmod/lang/en_us.json @@ -12,6 +12,7 @@ "item.nuggetmod.nugget_shovel": "Nugget Shovel", "item.nuggetmod.nugget_axe": "Nugget Axe", "item.nuggetmod.nugget_hoe": "Nugget Hoe", + "item.nuggetmod.nugget_horse_armor": "Nugget Horse Armor", "item.nuggetmod.nugget_helmet": "Nugget Helmet", "item.nuggetmod.nugget_chestplate": "Nugget Chestplate", @@ -21,5 +22,8 @@ "creativetab.nuggetmod.nugget_items": "Nugget Mod Items", "creativetab.nuggetmod.nugget_blocks": "Nugget Mod Blocks", - "item.nuggetmod.nugget.tooltip": "THE NUGGET" + "item.nuggetmod.nugget.tooltip": "THE NUGGET", + + "trim_pattern.nuggetmod.nugget": "Nugget Armor Trim", + "trim_material.nuggetmod.nugget": "Nugget Material" } \ No newline at end of file diff --git a/src/main/resources/assets/nuggetmod/textures/entity/horse/armor/nugget_horse_armor.png b/src/main/resources/assets/nuggetmod/textures/entity/horse/armor/nugget_horse_armor.png new file mode 100644 index 0000000000000000000000000000000000000000..963fbfecc0730e955b3b28198698c20528fa88b9 GIT binary patch literal 921 zcmV;K17`e*P)e!vLShXLNUUVf;40-l00(p4KnY%0{<0a9+W^6t zR{%bV$>K)Lf~AQDi-)0Y(JcV}W0TsC0MWzz5Fmb;7wf$fP(BRHrRMzYV&29pucLiN zhms*Fad8&(EdYiKI>R`ck9@r^r~uoGojXxNab-V2WwU{$LZ;GVe* zi?Hu5&3k5T01zK#M87G)cr_w*vrdlyPUVSh*Re__W%~OF;8%U2hzyUsuM!}nLuvwE zEmdJe>Fw@!O|xvj7T~wm5&qKxAQM?KV%cn?m>i}rs|roPqJnG+nq|mNz@oyi$pnKZ zWtv~L+JL9kk2gkKRk$m`ah1THiyv>?xTtVnf@8I)f4lneMuJ6!`$mkbU+%}>t_mF~ zx~YO!$&M7gs1P@e4LY6FDZ!$`R|!hR=vHBWX5+Zo3*SCCC?lT-7DFXX_uV!I_ELfg zr~=BRu-E`coE(B!$)=o}fOSGr^{&X%z9(-<5{_r_^n)Z^3&9eJejLaF=$qna$^oid zM`Hyt^C2PkI>0^eK@{oCO|{#S9GG z!XV7ZFl&wkP*5VkC&cy3!}Bi>&AYoe_fo6PnsoIlPiapb0SP|VRr(3FKsCIcE{-7; gbCOd+f`XVB7;Z6Su3xb3Gf;xT)78&qol`;+0D9vjr2qf` literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/nuggetmod/textures/trims/models/armor/nugget.png b/src/main/resources/assets/nuggetmod/textures/trims/models/armor/nugget.png new file mode 100644 index 0000000000000000000000000000000000000000..ca590d13a8a22b205eb00de10a2e213300b15d3d GIT binary patch literal 584 zcmV-O0=NB%P)U|?Y2 z;NSoN09@YKWdHyG33O6UQvm<}|NsC0|Nl1vo74aR0kKI$K~#90V`KmUA*C}6H~=G< zP?o>@0G|SZ~@uxvWGQ5aE_kYENqU10XC~6F$?f1U=_*0df_v=%2-} zfKBHd0R__c30NVEp}_e6{r3!lLIUUhGYEWOVB;2GeDA*iS%JgnfA>EMDO|L0000HYaZfQjEnx?oNz1PwLbIIh+L^k;M!Q z+`=Ht$S`Y;1W-^Sz$e5NNH;VzELgDMz<~n^2?-7k4hjkiK*4$E4`c!{94;0+%{$DOyuKG`3W$hU9M7nC_^GGI>eTgL zkL&jQpMS)rGc9lLDR-7AlYV=6slta1=Po+@yB_`TLC}F$dlf@E{{PFGvkz!{cho#f z-B%}D>;KznX&C&kJyQSQc2myx06oCq M>FVdQ&MBb@03!2${{R30 literal 0 HcmV?d00001