diff --git a/src/main/java/com/tterrag/registrate/mixin/accessor/FluidBlockAccessor.java b/src/main/java/com/tterrag/registrate/mixin/accessor/FluidBlockAccessor.java deleted file mode 100644 index 53e7b17..0000000 --- a/src/main/java/com/tterrag/registrate/mixin/accessor/FluidBlockAccessor.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.tterrag.registrate.mixin.accessor; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Invoker; - -import net.minecraft.world.level.block.LiquidBlock; -import net.minecraft.world.level.block.state.BlockBehaviour; -import net.minecraft.world.level.material.FlowingFluid; - -@Mixin(LiquidBlock.class) -public interface FluidBlockAccessor { - @Invoker("") - static LiquidBlock callInit(FlowingFluid fluid, BlockBehaviour.Properties settings) { - throw new AssertionError(); - } -} diff --git a/src/main/java/com/tterrag/registrate/mixin/accessor/LootTableProviderAccessor.java b/src/main/java/com/tterrag/registrate/mixin/accessor/LootTableProviderAccessor.java index 0095e07..9f13beb 100644 --- a/src/main/java/com/tterrag/registrate/mixin/accessor/LootTableProviderAccessor.java +++ b/src/main/java/com/tterrag/registrate/mixin/accessor/LootTableProviderAccessor.java @@ -11,7 +11,6 @@ @Mixin(LootTableProvider.class) public interface LootTableProviderAccessor { - @Mutable @Accessor - void setSubProviders(List entries); + List getSubProviders(); } diff --git a/src/main/java/com/tterrag/registrate/mixin/accessor/SpawnEggItemAccessor.java b/src/main/java/com/tterrag/registrate/mixin/accessor/SpawnEggItemAccessor.java deleted file mode 100644 index 1964140..0000000 --- a/src/main/java/com/tterrag/registrate/mixin/accessor/SpawnEggItemAccessor.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.tterrag.registrate.mixin.accessor; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; -import java.util.Map; - -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.item.SpawnEggItem; - -@Mixin(SpawnEggItem.class) -public interface SpawnEggItemAccessor { - @Accessor("BY_ID") - static Map, SpawnEggItem> getEggMap() { - throw new AssertionError(); - } -} diff --git a/src/main/java/com/tterrag/registrate/providers/loot/RegistrateBlockLootTables.java b/src/main/java/com/tterrag/registrate/providers/loot/RegistrateBlockLootTables.java index 319ba62..a8b8183 100644 --- a/src/main/java/com/tterrag/registrate/providers/loot/RegistrateBlockLootTables.java +++ b/src/main/java/com/tterrag/registrate/providers/loot/RegistrateBlockLootTables.java @@ -1,11 +1,13 @@ package com.tterrag.registrate.providers.loot; +import java.util.concurrent.CompletableFuture; import java.util.function.Consumer; import javax.annotation.processing.Generated; import com.tterrag.registrate.AbstractRegistrate; +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.minecraft.core.HolderLookup; import net.minecraft.core.registries.Registries; import net.minecraft.data.loot.BlockLootSubProvider; @@ -27,7 +29,7 @@ public class RegistrateBlockLootTables extends VanillaBlockLoot implements Regis private final AbstractRegistrate parent; private final Consumer callback; - public RegistrateBlockLootTables(HolderLookup.Provider provider, AbstractRegistrate parent, Consumer callback) { + public RegistrateBlockLootTables(HolderLookup.Provider provider, AbstractRegistrate parent, Consumer callback, FabricDataOutput output) { super(provider); this.parent = parent; this.callback = callback; diff --git a/src/main/java/com/tterrag/registrate/providers/loot/RegistrateEntityLootTables.java b/src/main/java/com/tterrag/registrate/providers/loot/RegistrateEntityLootTables.java index deae301..2f8b868 100644 --- a/src/main/java/com/tterrag/registrate/providers/loot/RegistrateEntityLootTables.java +++ b/src/main/java/com/tterrag/registrate/providers/loot/RegistrateEntityLootTables.java @@ -28,8 +28,8 @@ public class RegistrateEntityLootTables extends SimpleFabricLootTableProvider im private final Map, Builder> entries = new HashMap<>(); - public RegistrateEntityLootTables(AbstractRegistrate parent, FabricDataOutput output, CompletableFuture provider, Consumer callback) { - super(output, provider, LootContextParamSets.ENTITY); + public RegistrateEntityLootTables(HolderLookup.Provider provider, AbstractRegistrate parent, Consumer callback, FabricDataOutput output) { + super(output, CompletableFuture.supplyAsync(() -> provider), LootContextParamSets.ENTITY); this.parent = parent; this.callback = callback; } diff --git a/src/main/java/com/tterrag/registrate/providers/loot/RegistrateLootTableProvider.java b/src/main/java/com/tterrag/registrate/providers/loot/RegistrateLootTableProvider.java index 8f72c62..fe4843e 100644 --- a/src/main/java/com/tterrag/registrate/providers/loot/RegistrateLootTableProvider.java +++ b/src/main/java/com/tterrag/registrate/providers/loot/RegistrateLootTableProvider.java @@ -1,6 +1,8 @@ package com.tterrag.registrate.providers.loot; import com.google.common.collect.*; +import com.mojang.datafixers.util.Function4; +import com.mojang.datafixers.util.Function5; import com.tterrag.registrate.AbstractRegistrate; import com.tterrag.registrate.fabric.CustomValidationLootProvider; import com.tterrag.registrate.fabric.NonNullTriFunction; @@ -49,7 +51,7 @@ public interface LootType { T getLootCreator(HolderLookup.Provider provider, AbstractRegistrate parent, Consumer callback, FabricDataOutput output); LootContextParamSet getLootSet(); - static LootType register(String name, LootContextParamSet set, TriFunction, T> factory) { + static LootType register(String name, LootContextParamSet set, Function4, Consumer, FabricDataOutput, T> factory) { LootType type = new LootType() { @Override public T getLootCreator(HolderLookup.Provider provider, AbstractRegistrate parent, Consumer callback, FabricDataOutput output) { @@ -77,7 +79,7 @@ public LootContextParamSet getLootSet() { private CompletableFuture provider; public RegistrateLootTableProvider(AbstractRegistrate parent, PackOutput packOutput, CompletableFuture provider) { - super(packOutput, Set.of(), VanillaLootTableProvider.create(packOutput, provider).getTables(), provider); + super(packOutput, Set.of(), ((LootTableProviderAccessor) VanillaLootTableProvider.create(packOutput, provider)).getSubProviders(), provider); this.parent = parent; this.provider = provider; } diff --git a/src/main/resources/registrate-fabric.mixins.json b/src/main/resources/registrate-fabric.mixins.json index 5ee3ac1..5f66f82 100644 --- a/src/main/resources/registrate-fabric.mixins.json +++ b/src/main/resources/registrate-fabric.mixins.json @@ -5,10 +5,8 @@ "compatibilityLevel": "JAVA_8", "mixins": [ "LootTableProviderMixin", - "accessor.FluidBlockAccessor", "accessor.LootContextParamSetsAccessor", "accessor.LootTableProviderAccessor", - "accessor.SpawnEggItemAccessor", "accessor.SpawnPlacementsAccessor" ], "client": [