Skip to content

Commit eb20e10

Browse files
Updates to loot tables, and potions
1 parent 7a00ca1 commit eb20e10

1 file changed

Lines changed: 16 additions & 8 deletions

File tree

src/main/java/com/eightsidedsquare/contentcontent/core/ContentItems.java

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@
1414
import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents;
1515
import net.fabricmc.fabric.api.loot.v2.LootTableEvents;
1616
import net.fabricmc.fabric.api.loot.v2.LootTableEvents.Modify;
17+
import net.fabricmc.fabric.api.loot.v3.FabricLootPoolBuilder;
18+
import net.fabricmc.fabric.api.loot.v3.FabricLootTableBuilder;
1719
import net.fabricmc.fabric.api.registry.CompostingChanceRegistry;
20+
import net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistryBuilder;
1821
import net.fabricmc.fabric.api.registry.FuelRegistry;
1922
import net.minecraft.block.BlockState;
2023
import net.minecraft.block.Blocks;
@@ -24,18 +27,22 @@
2427
import net.minecraft.entity.Entity;
2528
import net.minecraft.item.*;
2629
import net.minecraft.loot.LootPool;
30+
import net.minecraft.loot.LootTable;
2731
import net.minecraft.loot.LootTables;
2832
import net.minecraft.loot.condition.LootCondition;
2933
import net.minecraft.loot.condition.RandomChanceLootCondition;
3034
import net.minecraft.loot.entry.ItemEntry;
35+
import net.minecraft.loot.function.SetCountLootFunction;
3136
import net.minecraft.loot.provider.number.UniformLootNumberProvider;
37+
import net.minecraft.potion.Potion;
3238
import net.minecraft.potion.Potions;
3339
import net.minecraft.recipe.BrewingRecipeRegistry;
3440
import net.minecraft.recipe.RecipeSerializer;
3541
import net.minecraft.recipe.SpecialRecipeSerializer;
3642
import net.minecraft.recipe.book.CraftingRecipeCategory;
3743
import net.minecraft.registry.Registries;
3844
import net.minecraft.registry.Registry;
45+
import net.minecraft.registry.entry.RegistryEntry;
3946
import net.minecraft.server.world.ServerWorld;
4047
import net.minecraft.sound.SoundCategory;
4148
import net.minecraft.sound.SoundEvent;
@@ -253,21 +260,22 @@ public static void init() {
253260
FuelRegistry.INSTANCE.add(ContentItemTags.BRANCHES_THAT_BURN, 150);
254261
UniformLootNumberProvider lootTableRange = UniformLootNumberProvider.create(1.0F, 1.0F);
255262
LootCondition chanceLootCondition = RandomChanceLootCondition.builder(0.05F).build();
256-
LootTableEvents.MODIFY
257-
.register(
258-
(Modify)(resourceManager, lootManager, id, supplier, setter) -> {
263+
LootTableEvents.MODIFY.register(
264+
(resourceManager, lootManager, id, tableBuilder, source) -> {
259265
if (LootTables.ABANDONED_MINESHAFT_CHEST.equals(id) || LootTables.BURIED_TREASURE_CHEST.equals(id) || LootTables.SIMPLE_DUNGEON_CHEST.equals(id) || LootTables.ANCIENT_CITY_CHEST.equals(id)) {
260266
LootPool lootPool = LootPool.builder()
261267
.rolls(lootTableRange)
262268
.conditionally(chanceLootCondition)
263269
.with(ItemEntry.builder(FOLLY_SEED).build())
264-
.build();
265-
supplier.pool(lootPool);
270+
.apply(SetCountLootFunction.builder(UniformLootNumberProvider.create(1.0f, 2.0f))).build();
271+
tableBuilder.pool(lootPool);
266272
}
267273
}
268274
);
269-
BrewingRecipeRegistry.Builder.registerPotionRecipe(Potions.AWKWARD, ACORN, ContentPotions.RUSTLING);
270-
BrewingRecipeRegistry.Builder.registerPotionRecipe(ContentPotions.RUSTLING, Items.REDSTONE, ContentPotions.LONG_RUSTLING);
275+
FabricBrewingRecipeRegistryBuilder.BUILD.register(builder -> {
276+
builder.registerPotionRecipe(Potions.AWKWARD, ACORN, (RegistryEntry<Potion>) ContentPotions.RUSTLING);
277+
builder.registerPotionRecipe((RegistryEntry<Potion>) ContentPotions.RUSTLING, Items.REDSTONE, (RegistryEntry<Potion>) ContentPotions.LONG_RUSTLING);
278+
});
271279
registerDispenserBehaviors();
272280
}
273281

@@ -281,8 +289,8 @@ private static void registerDispenserBehaviors() {
281289
Items.GOAT_HORN,
282290
new FallibleItemDispenserBehavior() {
283291
protected ItemStack dispenseSilently(BlockPointer pointer, ItemStack stack) {
284-
Direction d = (Direction)world.getBlockState().get(DispenserBlock.FACING);
285292
ServerWorld world = pointer.world();
293+
Direction d = (Direction)world.getBlockState().get(DispenserBlock.FACING);
286294
BlockState state = world.getBlockState(pointer.pos().offset(d));
287295
if (state.isAir() || state.isOf(Blocks.NOTE_BLOCK)) {
288296
float pitch = state.isOf(Blocks.NOTE_BLOCK)

0 commit comments

Comments
 (0)