# Removed
- FabricItemStack.isSuitableFor (replaced with vanilla component)
- FabricItemStack.getFoodComponent (replaced with vanilla component)
- ResourceReloadListenerKeys.LOOT_TABLES
- fabric-resource-conditions-api-v1 support for loot tables

# Disabled modules
- fabric-loot-api-v2
- fabric-mining-level-api-v1
This commit is contained in:
modmuss 2024-03-20 19:08:34 +00:00 committed by GitHub
parent 3a09d40a83
commit e9d2a72b4f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
36 changed files with 74 additions and 702 deletions
fabric-object-builder-api-v1/src
main/java/net/fabricmc/fabric
api/object/builder/v1/block
mixin/object/builder
testmod/java/net/fabricmc/fabric/test/object/builder

View file

@ -26,10 +26,11 @@ import net.minecraft.block.MapColor;
import net.minecraft.block.enums.Instrument;
import net.minecraft.block.piston.PistonBehavior;
import net.minecraft.entity.EntityType;
import net.minecraft.loot.LootTable;
import net.minecraft.registry.RegistryKey;
import net.minecraft.resource.featuretoggle.FeatureFlag;
import net.minecraft.sound.BlockSoundGroup;
import net.minecraft.util.DyeColor;
import net.minecraft.util.Identifier;
import net.fabricmc.fabric.mixin.object.builder.AbstractBlockAccessor;
import net.fabricmc.fabric.mixin.object.builder.AbstractBlockSettingsAccessor;
@ -407,7 +408,7 @@ public class FabricBlockSettings extends AbstractBlock.Settings {
}
@Deprecated
public FabricBlockSettings drops(Identifier dropTableId) {
public FabricBlockSettings drops(RegistryKey<LootTable> dropTableId) {
((AbstractBlockSettingsAccessor) this).setLootTableId(dropTableId);
return this;
}

View file

@ -29,9 +29,10 @@ import net.minecraft.block.MapColor;
import net.minecraft.block.enums.Instrument;
import net.minecraft.block.piston.PistonBehavior;
import net.minecraft.entity.EntityType;
import net.minecraft.loot.LootTable;
import net.minecraft.registry.RegistryKey;
import net.minecraft.resource.featuretoggle.FeatureSet;
import net.minecraft.sound.BlockSoundGroup;
import net.minecraft.util.Identifier;
@Mixin(AbstractBlock.Settings.class)
public interface AbstractBlockSettingsAccessor {
@ -100,7 +101,7 @@ public interface AbstractBlockSettingsAccessor {
Optional<AbstractBlock.Offsetter> getOffsetter();
@Accessor
Identifier getLootTableId();
RegistryKey<LootTable> getLootTableId();
@Accessor
boolean getBlockBreakParticles();
@ -149,7 +150,7 @@ public interface AbstractBlockSettingsAccessor {
void setIsAir(boolean isAir);
@Accessor
void setLootTableId(Identifier lootTableId);
void setLootTableId(RegistryKey<LootTable> lootTableId);
@Accessor
void setToolRequired(boolean toolRequired);

View file

@ -25,6 +25,7 @@ import java.util.Optional;
import com.mojang.brigadier.exceptions.SimpleCommandExceptionType;
import net.minecraft.component.DataComponentTypes;
import net.minecraft.entity.Entity;
import net.minecraft.entity.passive.WanderingTraderEntity;
import net.minecraft.item.Item;
@ -67,7 +68,7 @@ public class VillagerTypeTest1 implements ModInitializer {
builder.pool(
FOOD_POOL_ID,
5,
Registries.ITEM.stream().filter(item -> item.getFoodComponent() != null).map(
Registries.ITEM.stream().filter(item -> item.getDefaultStack().contains(DataComponentTypes.FOOD)).map(
item -> new SimpleTradeFactory(new TradeOffer(new TradedItem(Items.NETHERITE_INGOT), new ItemStack(item), 3, 4, 0.15F))
).toList()
);