diff options
| -rw-r--r-- | README.md | 11 | ||||
| -rw-r--r-- | build.gradle | 2 | ||||
| -rw-r--r-- | gradle.properties | 8 | ||||
| -rw-r--r-- | src/client/java/com/example/ExampleModClient.java | 10 | ||||
| -rw-r--r-- | src/client/java/com/example/mixin/client/ExampleClientMixin.java | 15 | ||||
| -rw-r--r-- | src/client/resources/modid.client.mixins.json | 11 | ||||
| -rw-r--r-- | src/main/java/com/example/ExampleMod.java | 22 | ||||
| -rw-r--r-- | src/main/java/com/example/mixin/ExampleMixin.java | 15 | ||||
| -rw-r--r-- | src/main/java/dev/figboot/SmeltingTouchMod.java | 49 | ||||
| -rw-r--r-- | src/main/java/dev/figboot/enchant/SmeltingTouchEnchantment.java | 15 | ||||
| -rw-r--r-- | src/main/resources/assets/modid/icon.png | bin | 453 -> 0 bytes | |||
| -rw-r--r-- | src/main/resources/assets/smeltingtouch/icon.png | bin | 0 -> 17938 bytes | |||
| -rw-r--r-- | src/main/resources/assets/smeltingtouch/lang/en_us.json | 3 | ||||
| -rw-r--r-- | src/main/resources/fabric.mod.json | 28 | ||||
| -rw-r--r-- | src/main/resources/modid.mixins.json | 11 |
15 files changed, 83 insertions, 117 deletions
@@ -1,9 +1,2 @@ -# Fabric Example Mod - -## Setup - -For setup instructions please see the [fabric wiki page](https://fabricmc.net/wiki/tutorial:setup) that relates to the IDE that you are using. - -## License - -This template is available under the CC0 license. Feel free to learn from it and incorporate it in your own projects. +# smelting touch +this mod is smelting :3 diff --git a/build.gradle b/build.gradle index 8446969..fc32147 100644 --- a/build.gradle +++ b/build.gradle @@ -85,4 +85,4 @@ publishing { // The repositories here will be used for publishing your artifact, not for // retrieving dependencies. } -}
\ No newline at end of file +} diff --git a/gradle.properties b/gradle.properties index 97d4019..ab7e75c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,9 +4,9 @@ org.gradle.parallel=true # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=1.20.5 -yarn_mappings=1.20.5+build.1 -loader_version=0.15.10 +minecraft_version=1.20.6 +yarn_mappings=1.20.6+build.1 +loader_version=0.15.11 # Mod Properties mod_version=1.0.0 @@ -14,4 +14,4 @@ maven_group=com.example archives_base_name=modid # Dependencies -fabric_version=0.97.5+1.20.5
\ No newline at end of file +fabric_version=0.97.8+1.20.6 diff --git a/src/client/java/com/example/ExampleModClient.java b/src/client/java/com/example/ExampleModClient.java deleted file mode 100644 index e2b0436..0000000 --- a/src/client/java/com/example/ExampleModClient.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.example; - -import net.fabricmc.api.ClientModInitializer; - -public class ExampleModClient implements ClientModInitializer { - @Override - public void onInitializeClient() { - // This entrypoint is suitable for setting up client-specific logic, such as rendering. - } -}
\ No newline at end of file diff --git a/src/client/java/com/example/mixin/client/ExampleClientMixin.java b/src/client/java/com/example/mixin/client/ExampleClientMixin.java deleted file mode 100644 index 061b0ef..0000000 --- a/src/client/java/com/example/mixin/client/ExampleClientMixin.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.example.mixin.client; - -import net.minecraft.client.MinecraftClient; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(MinecraftClient.class) -public class ExampleClientMixin { - @Inject(at = @At("HEAD"), method = "run") - private void run(CallbackInfo info) { - // This code is injected into the start of MinecraftClient.run()V - } -}
\ No newline at end of file diff --git a/src/client/resources/modid.client.mixins.json b/src/client/resources/modid.client.mixins.json deleted file mode 100644 index 9341450..0000000 --- a/src/client/resources/modid.client.mixins.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "required": true, - "package": "com.example.mixin.client", - "compatibilityLevel": "JAVA_21", - "client": [ - "ExampleClientMixin" - ], - "injectors": { - "defaultRequire": 1 - } -}
\ No newline at end of file diff --git a/src/main/java/com/example/ExampleMod.java b/src/main/java/com/example/ExampleMod.java deleted file mode 100644 index f97cce9..0000000 --- a/src/main/java/com/example/ExampleMod.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.example; - -import net.fabricmc.api.ModInitializer; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class ExampleMod implements ModInitializer { - // This logger is used to write text to the console and the log file. - // It is considered best practice to use your mod id as the logger's name. - // That way, it's clear which mod wrote info, warnings, and errors. - public static final Logger LOGGER = LoggerFactory.getLogger("modid"); - - @Override - public void onInitialize() { - // This code runs as soon as Minecraft is in a mod-load-ready state. - // However, some things (like resources) may still be uninitialized. - // Proceed with mild caution. - - LOGGER.info("Hello Fabric world!"); - } -}
\ No newline at end of file diff --git a/src/main/java/com/example/mixin/ExampleMixin.java b/src/main/java/com/example/mixin/ExampleMixin.java deleted file mode 100644 index 3c4212c..0000000 --- a/src/main/java/com/example/mixin/ExampleMixin.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.example.mixin; - -import net.minecraft.server.MinecraftServer; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(MinecraftServer.class) -public class ExampleMixin { - @Inject(at = @At("HEAD"), method = "loadWorld") - private void init(CallbackInfo info) { - // This code is injected into the start of MinecraftServer.loadWorld()V - } -}
\ No newline at end of file diff --git a/src/main/java/dev/figboot/SmeltingTouchMod.java b/src/main/java/dev/figboot/SmeltingTouchMod.java new file mode 100644 index 0000000..fd2cdd3 --- /dev/null +++ b/src/main/java/dev/figboot/SmeltingTouchMod.java @@ -0,0 +1,49 @@ +package dev.figboot; + +import dev.figboot.enchant.SmeltingTouchEnchantment; +import net.fabricmc.api.ModInitializer; +import net.fabricmc.fabric.api.loot.v2.LootTableEvents; +import net.minecraft.block.Blocks; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.item.Items; +import net.minecraft.loot.LootPool; +import net.minecraft.loot.condition.MatchToolLootCondition; +import net.minecraft.loot.entry.ItemEntry; +import net.minecraft.loot.function.FurnaceSmeltLootFunction; +import net.minecraft.predicate.NumberRange; +import net.minecraft.predicate.item.EnchantmentPredicate; +import net.minecraft.predicate.item.EnchantmentsPredicate; +import net.minecraft.predicate.item.ItemPredicate; +import net.minecraft.predicate.item.ItemSubPredicateTypes; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; +import net.minecraft.registry.tag.ItemTags; +import net.minecraft.util.Identifier; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Collections; + +public class SmeltingTouchMod implements ModInitializer { + public static final Logger LOGGER = LoggerFactory.getLogger("smeltingtouch"); + + public static final SmeltingTouchEnchantment SMELTING_TOUCH = new SmeltingTouchEnchantment( + Enchantment.properties(ItemTags.MINING_LOOT_ENCHANTABLE, 1, 1, + Enchantment.constantCost(15), Enchantment.constantCost(65), 8, + EquipmentSlot.MAINHAND)); + + @Override + public void onInitialize() { + LOGGER.info("initializing mod>....."); + Registry.register(Registries.ENCHANTMENT, new Identifier("smeltingtouch:smeltingtouch"), SMELTING_TOUCH); + + LootTableEvents.MODIFY.register((key, tableBuilder, source) -> { + if (source.isBuiltin() && key.getValue().getPath().startsWith("blocks/")) { + tableBuilder.apply(FurnaceSmeltLootFunction.builder() + .conditionally(MatchToolLootCondition.builder(ItemPredicate.Builder.create().subPredicate(ItemSubPredicateTypes.ENCHANTMENTS, + EnchantmentsPredicate.enchantments(Collections.singletonList(new EnchantmentPredicate(SMELTING_TOUCH, NumberRange.IntRange.atLeast(1)))))))); + } + }); + } +} diff --git a/src/main/java/dev/figboot/enchant/SmeltingTouchEnchantment.java b/src/main/java/dev/figboot/enchant/SmeltingTouchEnchantment.java new file mode 100644 index 0000000..8f950ec --- /dev/null +++ b/src/main/java/dev/figboot/enchant/SmeltingTouchEnchantment.java @@ -0,0 +1,15 @@ +package dev.figboot.enchant; + +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.Enchantments; + +public class SmeltingTouchEnchantment extends Enchantment { + public SmeltingTouchEnchantment(Enchantment.Properties props) { + super(props); + } + + @Override + protected boolean canAccept(Enchantment other) { + return super.canAccept(other) && other != Enchantments.SILK_TOUCH; + } +} diff --git a/src/main/resources/assets/modid/icon.png b/src/main/resources/assets/modid/icon.png Binary files differdeleted file mode 100644 index 047b91f..0000000 --- a/src/main/resources/assets/modid/icon.png +++ /dev/null diff --git a/src/main/resources/assets/smeltingtouch/icon.png b/src/main/resources/assets/smeltingtouch/icon.png Binary files differnew file mode 100644 index 0000000..01f95b1 --- /dev/null +++ b/src/main/resources/assets/smeltingtouch/icon.png diff --git a/src/main/resources/assets/smeltingtouch/lang/en_us.json b/src/main/resources/assets/smeltingtouch/lang/en_us.json new file mode 100644 index 0000000..b84043f --- /dev/null +++ b/src/main/resources/assets/smeltingtouch/lang/en_us.json @@ -0,0 +1,3 @@ +{ + "enchantment.smeltingtouch.smeltingtouch": "Smelting Touch" +} diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 802b85d..80a3fe0 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -1,41 +1,31 @@ { "schemaVersion": 1, - "id": "modid", + "id": "smeltingtouch", "version": "${version}", - "name": "Example mod", - "description": "This is an example description! Tell everyone what your mod is about!", + "name": "Smelting Touch", + "description": "This mod adds the Smelting Touch enchantment.", "authors": [ - "Me!" + "Astrx", + "figboot" ], "contact": { - "homepage": "https://fabricmc.net/", - "sources": "https://github.com/FabricMC/fabric-example-mod" }, "license": "CC0-1.0", - "icon": "assets/modid/icon.png", + "icon": "assets/smeltingtouch/icon.png", "environment": "*", "entrypoints": { "main": [ - "com.example.ExampleMod" - ], - "client": [ - "com.example.ExampleModClient" + "dev.figboot.SmeltingTouchMod" ] }, "mixins": [ - "modid.mixins.json", - { - "config": "modid.client.mixins.json", - "environment": "client" - } ], "depends": { "fabricloader": ">=0.15.10", - "minecraft": "~1.20.5", + "minecraft": "~1.20.6", "java": ">=21", "fabric-api": "*" }, "suggests": { - "another-mod": "*" } -}
\ No newline at end of file +} diff --git a/src/main/resources/modid.mixins.json b/src/main/resources/modid.mixins.json deleted file mode 100644 index f7fc0a3..0000000 --- a/src/main/resources/modid.mixins.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "required": true, - "package": "com.example.mixin", - "compatibilityLevel": "JAVA_21", - "mixins": [ - "ExampleMixin" - ], - "injectors": { - "defaultRequire": 1 - } -}
\ No newline at end of file |
