diff --git a/.gitignore b/.gitignore index 12f8644..ae9e5ef 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,5 @@ run # Files from Forge MDK forge*changelog.txt + +run-data diff --git a/run-data/config/fml.toml b/run-data/config/fml.toml new file mode 100644 index 0000000..f843a0b --- /dev/null +++ b/run-data/config/fml.toml @@ -0,0 +1,25 @@ +#Early window height +earlyWindowHeight = 480 +#Early window framebuffer scale +earlyWindowFBScale = 1 +#Enable forge global version checking +versionCheck = true +#Early window provider +earlyWindowProvider = "fmlearlywindow" +#Early window width +earlyWindowWidth = 854 +#Early window starts maximized +earlyWindowMaximized = false +#Default config path for servers +defaultConfigPath = "defaultconfigs" +#Disables Optimized DFU client-side - already disabled on servers +disableOptimizedDFU = true +#Skip specific GL versions, may help with buggy graphics card drivers +earlyWindowSkipGLVersions = [] +#Should we control the window. Disabling this disables new GL features and can be bad for mods that rely on them. +earlyWindowControl = true +#Max threads for early initialization parallelism, -1 is based on processor count +maxThreads = -1 +#Squir? +earlyWindowSquir = false + diff --git a/src/generated/resources/assets/hon/lang/en_us.json b/src/generated/resources/assets/hon/lang/en_us.json new file mode 100644 index 0000000..e7cfabd --- /dev/null +++ b/src/generated/resources/assets/hon/lang/en_us.json @@ -0,0 +1,9 @@ +{ + "item.hon.iron_tongs": "Iron Tongs", + "item.hon.mittens": "Mitts", + "item.hon.wooden_tongs": "Wooden Tongs", + "item_group.hon.hon": "Hot Or Not Tab", + "tooltip.hon.cold": "This Item feels Cold to the touch", + "tooltip.hon.hot": "This Item feels Hot to the touch", + "tooltip.hon.protectivegear": "This Item protects from negative effect from hot/cold items, put in offhand to use" +} \ No newline at end of file diff --git a/src/generated/resources/assets/hon/models/item/iron_tongs.json b/src/generated/resources/assets/hon/models/item/iron_tongs.json new file mode 100644 index 0000000..3b04d04 --- /dev/null +++ b/src/generated/resources/assets/hon/models/item/iron_tongs.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hon:item/iron_tongs" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/hon/models/item/mittens.json b/src/generated/resources/assets/hon/models/item/mittens.json new file mode 100644 index 0000000..d7aae67 --- /dev/null +++ b/src/generated/resources/assets/hon/models/item/mittens.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hon:item/mittens" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/hon/models/item/wooden_tongs.json b/src/generated/resources/assets/hon/models/item/wooden_tongs.json new file mode 100644 index 0000000..0e76e95 --- /dev/null +++ b/src/generated/resources/assets/hon/models/item/wooden_tongs.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hon:item/wooden_tongs" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/hon/advancements/recipes/tools/iron_tongs.json b/src/generated/resources/data/hon/advancements/recipes/tools/iron_tongs.json new file mode 100644 index 0000000..286fbd1 --- /dev/null +++ b/src/generated/resources/data/hon/advancements/recipes/tools/iron_tongs.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:iron_ingot" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hon:iron_tongs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_iron_ingot", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "hon:iron_tongs" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/hon/advancements/recipes/tools/mittens.json b/src/generated/resources/data/hon/advancements/recipes/tools/mittens.json new file mode 100644 index 0000000..7526822 --- /dev/null +++ b/src/generated/resources/data/hon/advancements/recipes/tools/mittens.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_leather": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:leather" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hon:mittens" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_leather", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "hon:mittens" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/hon/advancements/recipes/tools/wooden_tongs.json b/src/generated/resources/data/hon/advancements/recipes/tools/wooden_tongs.json new file mode 100644 index 0000000..3d2dc91 --- /dev/null +++ b/src/generated/resources/data/hon/advancements/recipes/tools/wooden_tongs.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stick": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:stick" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hon:wooden_tongs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_stick", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "hon:wooden_tongs" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/hon/recipes/iron_tongs.json b/src/generated/resources/data/hon/recipes/iron_tongs.json new file mode 100644 index 0000000..73bede7 --- /dev/null +++ b/src/generated/resources/data/hon/recipes/iron_tongs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "I": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "I I", + "I I", + " I " + ], + "result": { + "item": "hon:iron_tongs" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/hon/recipes/mittens.json b/src/generated/resources/data/hon/recipes/mittens.json new file mode 100644 index 0000000..43b0074 --- /dev/null +++ b/src/generated/resources/data/hon/recipes/mittens.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "L": { + "item": "minecraft:leather" + } + }, + "pattern": [ + "LLL", + " LL", + "LLL" + ], + "result": { + "item": "hon:mittens" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/hon/recipes/wooden_tongs.json b/src/generated/resources/data/hon/recipes/wooden_tongs.json new file mode 100644 index 0000000..09241ba --- /dev/null +++ b/src/generated/resources/data/hon/recipes/wooden_tongs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "S": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "S S", + "S S", + " S " + ], + "result": { + "item": "hon:wooden_tongs" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/main/java/com/kitp13/hon/HotOrNot.java b/src/main/java/com/kitp13/hon/HotOrNot.java index 13c5708..8b9b44a 100644 --- a/src/main/java/com/kitp13/hon/HotOrNot.java +++ b/src/main/java/com/kitp13/hon/HotOrNot.java @@ -30,7 +30,7 @@ public class HotOrNot { public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MODID); public static final DeferredRegister TABREGISTER = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, MODID); - public static RegistryObject MITTS = ITEMS.register("mitttens", () -> new HonItem(1023)); + public static RegistryObject MITTS = ITEMS.register("mittens", () -> new HonItem(1023)); public static final RegistryObject WOODEN_TONGS = ITEMS.register("wooden_tongs", () -> new HonItem(127)); public static final RegistryObject IRON_TONGS = ITEMS.register("iron_tongs", () -> new HonItem(511)); diff --git a/src/main/java/com/kitp13/hon/datagen/DataGen.java b/src/main/java/com/kitp13/hon/datagen/DataGen.java new file mode 100644 index 0000000..f1e2c90 --- /dev/null +++ b/src/main/java/com/kitp13/hon/datagen/DataGen.java @@ -0,0 +1,18 @@ +package com.kitp13.hon.datagen; + +import com.kitp13.hon.HotOrNot; +import net.minecraft.data.DataGenerator; +import net.minecraftforge.data.event.GatherDataEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; + +@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD) +public class DataGen { + @SubscribeEvent + public static void gatherData(GatherDataEvent event) { + DataGenerator generator = event.getGenerator(); + generator.addProvider(event.includeClient(), new LangEN_US(generator.getPackOutput(), HotOrNot.MODID, "en_us")); + generator.addProvider(event.includeClient(), new ItemModel(generator.getPackOutput(), HotOrNot.MODID, event.getExistingFileHelper())); + generator.addProvider(event.includeServer(), new Recipes(generator.getPackOutput())); + } +} diff --git a/src/main/java/com/kitp13/hon/datagen/ItemModel.java b/src/main/java/com/kitp13/hon/datagen/ItemModel.java new file mode 100644 index 0000000..739312b --- /dev/null +++ b/src/main/java/com/kitp13/hon/datagen/ItemModel.java @@ -0,0 +1,30 @@ +package com.kitp13.hon.datagen; + +import com.kitp13.hon.HotOrNot; +import net.minecraft.data.PackOutput; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.Item; +import net.minecraftforge.client.model.generators.ItemModelBuilder; +import net.minecraftforge.client.model.generators.ItemModelProvider; +import net.minecraftforge.common.data.ExistingFileHelper; +import net.minecraftforge.registries.RegistryObject; + +public class ItemModel extends ItemModelProvider{ + + public ItemModel(PackOutput output, String modid, ExistingFileHelper existingFileHelper) { + super(output, modid, existingFileHelper); + } + + @Override + protected void registerModels() { + this.item(HotOrNot.WOODEN_TONGS); + this.item(HotOrNot.IRON_TONGS); + this.item(HotOrNot.MITTS); + } + + private ItemModelBuilder item(RegistryObject item){ + return withExistingParent(item.getId().getPath(), + new ResourceLocation("item/generated")).texture("layer0", + new ResourceLocation(HotOrNot.MODID, "item/" + item.getId().getPath())); + } +} diff --git a/src/main/java/com/kitp13/hon/datagen/LangEN_US.java b/src/main/java/com/kitp13/hon/datagen/LangEN_US.java new file mode 100644 index 0000000..02027c8 --- /dev/null +++ b/src/main/java/com/kitp13/hon/datagen/LangEN_US.java @@ -0,0 +1,22 @@ +package com.kitp13.hon.datagen; + +import com.kitp13.hon.HotOrNot; +import net.minecraft.data.PackOutput; +import net.minecraftforge.common.data.LanguageProvider; + +public class LangEN_US extends LanguageProvider { + public LangEN_US(PackOutput output, String modid, String locale) { + super(output, modid, locale); + } + + @Override + protected void addTranslations() { + add(HotOrNot.WOODEN_TONGS.get(), "Wooden Tongs"); + add(HotOrNot.IRON_TONGS.get(), "Iron Tongs"); + add(HotOrNot.MITTS.get(), "Mitts"); + add("tooltip.hon.cold", "This Item feels Cold to the touch"); + add("tooltip.hon.hot", "This Item feels Hot to the touch"); + add("tooltip.hon.protectivegear", "This Item protects from negative effect from hot/cold items, put in offhand to use"); + add("item_group.hon.hon", "Hot Or Not Tab"); + } +} diff --git a/src/main/java/com/kitp13/hon/datagen/Recipes.java b/src/main/java/com/kitp13/hon/datagen/Recipes.java new file mode 100644 index 0000000..abd8ec5 --- /dev/null +++ b/src/main/java/com/kitp13/hon/datagen/Recipes.java @@ -0,0 +1,37 @@ +package com.kitp13.hon.datagen; + +import com.kitp13.hon.HotOrNot; +import net.minecraft.data.PackOutput; +import net.minecraft.data.recipes.FinishedRecipe; +import net.minecraft.data.recipes.RecipeCategory; +import net.minecraft.data.recipes.RecipeProvider; +import net.minecraft.data.recipes.ShapedRecipeBuilder; +import net.minecraft.world.item.Items; +import net.minecraftforge.common.crafting.conditions.IConditionBuilder; +import org.jetbrains.annotations.NotNull; + +import java.util.function.Consumer; + +public class Recipes extends RecipeProvider implements IConditionBuilder { + public Recipes(PackOutput p_248933_) { + super(p_248933_); + } + + @Override + protected void buildRecipes(@NotNull Consumer consumer) { + ShapedRecipeBuilder.shaped(RecipeCategory.TOOLS, HotOrNot.MITTS.get()) + .pattern("LLL") + .pattern(" LL") + .pattern("LLL") + .define('L', Items.LEATHER) + .unlockedBy(getHasName(Items.LEATHER),has(Items.LEATHER)).save(consumer); + ShapedRecipeBuilder.shaped(RecipeCategory.TOOLS, HotOrNot.WOODEN_TONGS.get()) + .pattern("S S").pattern("S S").pattern(" S ") + .define('S', Items.STICK) + .unlockedBy(getHasName(Items.STICK),has(Items.STICK)).save(consumer); + ShapedRecipeBuilder.shaped(RecipeCategory.TOOLS, HotOrNot.IRON_TONGS.get()) + .pattern("I I").pattern("I I").pattern(" I ") + .define('I', Items.IRON_INGOT) + .unlockedBy(getHasName(Items.IRON_INGOT),has(Items.IRON_INGOT)).save(consumer); + } +}