Skip to content

Commit 52cd6fc

Browse files
Add jungle pyramid loot
Coffee beans now have a chance of spawning in jungle pyramid chests
1 parent c759466 commit 52cd6fc

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

src/main/java/com/chikoritalover/caffeinated/Caffeinated.java

+34
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22

33
import com.chikoritalover.caffeinated.registry.*;
44
import net.fabricmc.api.ModInitializer;
5+
import net.fabricmc.fabric.api.loot.v2.LootTableEvents;
6+
import net.minecraft.item.ItemConvertible;
7+
import net.minecraft.loot.LootPool;
8+
import net.minecraft.loot.LootTables;
9+
import net.minecraft.loot.condition.LootCondition;
10+
import net.minecraft.loot.condition.RandomChanceLootCondition;
11+
import net.minecraft.loot.entry.ItemEntry;
12+
import net.minecraft.loot.provider.number.UniformLootNumberProvider;
13+
import net.minecraft.util.Identifier;
514
import net.minecraft.util.registry.Registry;
615
import org.slf4j.Logger;
716
import org.slf4j.LoggerFactory;
@@ -26,5 +35,30 @@ public void onInitialize() {
2635
ModSoundEvents.register();
2736
ModStatusEffects.register();
2837
ModTradeOffers.register();
38+
39+
registerLootTableEvents();
40+
}
41+
42+
public void registerLootTableEvents() {
43+
addLootTablePool(1, 1, 0.5F, LootTables.JUNGLE_TEMPLE_CHEST, ModItems.COFFEE_BEANS, 1, 3);
44+
}
45+
46+
private void addLootTablePool(int minRolls, int maxRolls, float chance, Identifier lootTable, ItemConvertible item) {
47+
addLootTablePool(minRolls, maxRolls, chance, lootTable, item, 1, 1);
48+
}
49+
50+
private void addLootTablePool(int minRolls, int maxRolls, float chance, Identifier lootTable, ItemConvertible item, int minCount, int maxCount) {
51+
UniformLootNumberProvider lootTableRange = UniformLootNumberProvider.create(minRolls, maxRolls);
52+
LootCondition condition = RandomChanceLootCondition.builder(chance).build();
53+
LootTableEvents.MODIFY.register((resourceManager, lootManager, id, supplier, setter) -> {
54+
if (lootTable.equals(id)) {
55+
LootPool lootPool = LootPool.builder()
56+
.rolls(lootTableRange)
57+
.conditionally(condition)
58+
.with(ItemEntry.builder(item).build()).build();
59+
60+
supplier.pool(lootPool);
61+
}
62+
});
2963
}
3064
}

0 commit comments

Comments
 (0)