diff --git a/src/main/java/de/jottyfan/minecraft/Quickly.java b/src/main/java/de/jottyfan/minecraft/Quickly.java index a877312..edd4e56 100644 --- a/src/main/java/de/jottyfan/minecraft/Quickly.java +++ b/src/main/java/de/jottyfan/minecraft/Quickly.java @@ -4,16 +4,11 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import de.jottyfan.minecraft.block.QuicklyBlocks; +import de.jottyfan.minecraft.composter.QuicklyComposter; import de.jottyfan.minecraft.feature.QuicklyFeatures; import de.jottyfan.minecraft.item.QuicklyItems; +import de.jottyfan.minecraft.loot.QuicklyLootTables; import net.fabricmc.api.ModInitializer; -import net.fabricmc.fabric.api.loot.v3.LootTableEvents; -import net.fabricmc.fabric.api.registry.CompostingChanceRegistry; -import net.minecraft.resources.Identifier; -import net.minecraft.world.level.storage.loot.LootPool; -import net.minecraft.world.level.storage.loot.entries.LootItem; -import net.minecraft.world.level.storage.loot.predicates.LootItemRandomChanceCondition; -import net.minecraft.world.level.storage.loot.providers.number.ConstantValue; /** * * @author jotty @@ -24,30 +19,6 @@ public class Quickly implements ModInitializer { public static final Logger LOGGER = LogManager.getLogger(MOD_ID); - private void registerComposterItems() { - CompostingChanceRegistry.INSTANCE.add(QuicklyItems.COTTONSEED, 0.5f); - CompostingChanceRegistry.INSTANCE.add(QuicklyItems.COTTON, 0.75f); - } - - private void registerLootTableChanges() { - LootTableEvents.MODIFY.register((key, tableBuilder, source, registries) -> { - if (source.isBuiltin()) { - // TODO: maybe, better harvest cotton from dry grass instead? - Identifier shortGrass = Identifier.fromNamespaceAndPath("minecraft", "blocks/short_grass"); - Identifier tallGrass = Identifier.fromNamespaceAndPath("minecraft", "blocks/tall_grass"); - if (key.identifier().equals(shortGrass)) { - LootPool.Builder poolBuilder = LootPool.lootPool() - .setRolls(ConstantValue.exactly(1f)) - .when(LootItemRandomChanceCondition.randomChance(0.1f)) - .add(LootItem.lootTableItem(QuicklyItems.COTTONSEED)); - tableBuilder.withPool(poolBuilder); - } else if (key.identifier().equals(tallGrass)) { - // for the canola loot table block later - } - } - }); - } - @Override public void onInitialize() { LOGGER.info("loading {}", MOD_ID); @@ -55,8 +26,7 @@ public class Quickly implements ModInitializer { QuicklyItems.registerModItems(); QuicklyBlocks.registerModBlocks(); QuicklyFeatures.registerFeatures(); - registerComposterItems(); - registerLootTableChanges(); - + QuicklyComposter.registerComposterItems(); + QuicklyLootTables.registerChanges(); } } \ No newline at end of file diff --git a/src/main/java/de/jottyfan/minecraft/composter/QuicklyComposter.java b/src/main/java/de/jottyfan/minecraft/composter/QuicklyComposter.java new file mode 100644 index 0000000..8310cd8 --- /dev/null +++ b/src/main/java/de/jottyfan/minecraft/composter/QuicklyComposter.java @@ -0,0 +1,18 @@ +package de.jottyfan.minecraft.composter; + +import de.jottyfan.minecraft.item.QuicklyItems; +import net.fabricmc.fabric.api.registry.CompostingChanceRegistry; + +/** + * + * @author jotty + * + */ +public class QuicklyComposter { + + public static final void registerComposterItems() { + CompostingChanceRegistry.INSTANCE.add(QuicklyItems.COTTONSEED, 0.5f); + CompostingChanceRegistry.INSTANCE.add(QuicklyItems.COTTON, 0.75f); + } + +} diff --git a/src/main/java/de/jottyfan/minecraft/item/QuicklyItems.java b/src/main/java/de/jottyfan/minecraft/item/QuicklyItems.java index 5167e22..8b97b71 100644 --- a/src/main/java/de/jottyfan/minecraft/item/QuicklyItems.java +++ b/src/main/java/de/jottyfan/minecraft/item/QuicklyItems.java @@ -25,6 +25,7 @@ public class QuicklyItems { public static final Item COTTON = registerItem("cotton"); public static final Item COTTONPLANT = registerItem("cottonplant"); public static final Item COTTONSEED = registerItem("cottonseed", properties -> new Plant(properties, "blockcottonplant")); + public static final Item ROTTENFLESHSTRIPES = registerItem("rotten_flesh_stripes"); private static final Item registerItem(String name) { return QuicklyItems.registerItem(name, new Item.Properties()); @@ -52,6 +53,7 @@ public class QuicklyItems { item.accept(TURQUOISEINGOT); item.accept(COTTON); item.accept(COTTONSEED); + item.accept(ROTTENFLESHSTRIPES); }); } } diff --git a/src/main/java/de/jottyfan/minecraft/loot/QuicklyLootTables.java b/src/main/java/de/jottyfan/minecraft/loot/QuicklyLootTables.java new file mode 100644 index 0000000..4cc31b9 --- /dev/null +++ b/src/main/java/de/jottyfan/minecraft/loot/QuicklyLootTables.java @@ -0,0 +1,36 @@ +package de.jottyfan.minecraft.loot; + +import de.jottyfan.minecraft.item.QuicklyItems; +import net.fabricmc.fabric.api.loot.v3.LootTableEvents; +import net.minecraft.resources.Identifier; +import net.minecraft.world.level.storage.loot.LootPool; +import net.minecraft.world.level.storage.loot.entries.LootItem; +import net.minecraft.world.level.storage.loot.predicates.LootItemRandomChanceCondition; +import net.minecraft.world.level.storage.loot.providers.number.ConstantValue; + +/** + * + * @author jotty + * + */ +public class QuicklyLootTables { + + public static final void registerChanges() { + LootTableEvents.MODIFY.register((key, tableBuilder, source, registries) -> { + if (source.isBuiltin()) { + // TODO: maybe, better harvest cotton from dry grass instead? + Identifier shortGrass = Identifier.fromNamespaceAndPath("minecraft", "blocks/short_grass"); + Identifier tallGrass = Identifier.fromNamespaceAndPath("minecraft", "blocks/tall_grass"); + if (key.identifier().equals(shortGrass)) { + LootPool.Builder poolBuilder = LootPool.lootPool() + .setRolls(ConstantValue.exactly(1f)) + .when(LootItemRandomChanceCondition.randomChance(0.1f)) + .add(LootItem.lootTableItem(QuicklyItems.COTTONSEED)); + tableBuilder.withPool(poolBuilder); + } else if (key.identifier().equals(tallGrass)) { + // for the canola loot table block later + } + } + }); + } +} diff --git a/src/main/resources/assets/quickly/items/rotten_flesh_stripes.json b/src/main/resources/assets/quickly/items/rotten_flesh_stripes.json new file mode 100644 index 0000000..c11e692 --- /dev/null +++ b/src/main/resources/assets/quickly/items/rotten_flesh_stripes.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "quickly:item/rotten_flesh_stripes" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickly/lang/de_de.json b/src/main/resources/assets/quickly/lang/de_de.json index ba7abfd..b9f66ba 100644 --- a/src/main/resources/assets/quickly/lang/de_de.json +++ b/src/main/resources/assets/quickly/lang/de_de.json @@ -7,6 +7,7 @@ "item.quickly.oredeepslateturquoise": "Türkistiefenerz", "item.quickly.oreturquoise": "Türkiserz", "item.quickly.rawturquoise": "rohes Türkis", + "item.quickly.rotten_flesh_stripes": "geschnittenes Gammelfleisch", "item.quickly.stub": "Stummel", "item.quickly.turquoiseingot": "Türkisbarren" } diff --git a/src/main/resources/assets/quickly/lang/en_us.json b/src/main/resources/assets/quickly/lang/en_us.json index ec2ee68..5d2d913 100644 --- a/src/main/resources/assets/quickly/lang/en_us.json +++ b/src/main/resources/assets/quickly/lang/en_us.json @@ -7,6 +7,7 @@ "item.quickly.oredeepslateturquoise": "turquoise deepslate ore", "item.quickly.oreturquoise": "turquoise ore", "item.quickly.rawturquoise": "raw turquoise", + "item.quickly.rotten_flesh_stripes": "rotton flesh stripes", "item.quickly.stub": "stub", "item.quickly.turquoiseingot": "turquoise ingot" } diff --git a/src/main/resources/assets/quickly/models/item/rotten_flesh_stripes.json b/src/main/resources/assets/quickly/models/item/rotten_flesh_stripes.json new file mode 100644 index 0000000..aab805a --- /dev/null +++ b/src/main/resources/assets/quickly/models/item/rotten_flesh_stripes.json @@ -0,0 +1,6 @@ +{ + "parent": "item/coal", + "textures": { + "layer0": "quickly:item/rotten_flesh_stripes" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickly/textures/item/rotten_flesh_stripes.png b/src/main/resources/assets/quickly/textures/item/rotten_flesh_stripes.png new file mode 100644 index 0000000..229a057 Binary files /dev/null and b/src/main/resources/assets/quickly/textures/item/rotten_flesh_stripes.png differ diff --git a/src/main/resources/data/quickly/recipe/smoking_leather_from_flesh_stripes.json b/src/main/resources/data/quickly/recipe/smoking_leather_from_flesh_stripes.json new file mode 100644 index 0000000..ec12309 --- /dev/null +++ b/src/main/resources/data/quickly/recipe/smoking_leather_from_flesh_stripes.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smoking", + "ingredient": "quickly:rotten_flesh_stripes", + "result": { + "id":"minecraft:leather" + }, + "experience": 0, + "cookingtime": 100 +} diff --git a/src/main/resources/data/quickly/recipe/stonecutting_flesh_stripes.json b/src/main/resources/data/quickly/recipe/stonecutting_flesh_stripes.json new file mode 100644 index 0000000..2dbbc0f --- /dev/null +++ b/src/main/resources/data/quickly/recipe/stonecutting_flesh_stripes.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:rotten_flesh", + "result": { + "id": "quickly:rotten_flesh_stripes" + }, + "count": 2 +}