Skip to content

Commit

Permalink
refactor(loot): register condition types using deferred register
Browse files Browse the repository at this point in the history
  • Loading branch information
WakelessSloth56 committed Apr 4, 2022
1 parent 9116b12 commit ca0e8fa
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 8 deletions.
2 changes: 1 addition & 1 deletion src/main/java/org/auioc/mods/arnicalib/Initialization.java
Expand Up @@ -55,10 +55,10 @@ private void modSetup() {
AHPacketHandler.init();
AHCommandArguments.init();
modEventBus.register(AHGlobalLootModifiers.class);
AHLootItemConditions.LOOT_CONDITION_TYPES.register(modEventBus);
modEventBus.addGenericListener(
GlobalLootModifierSerializer.class, // It works within any RegistryEvent.Register
(RegistryEvent.Register event) -> {
AHLootItemConditions.init();
AHLootItemFunctions.init();
}
);
Expand Down
@@ -1,20 +1,23 @@
package org.auioc.mods.arnicalib.server.loot;

import java.util.function.Supplier;
import org.auioc.mods.arnicalib.ArnicaLib;
import org.auioc.mods.arnicalib.server.loot.predicate.ModLoadedCondition;
import net.minecraft.core.Registry;
import net.minecraft.world.level.storage.loot.Serializer;
import net.minecraft.world.level.storage.loot.predicates.LootItemCondition;
import net.minecraft.world.level.storage.loot.predicates.LootItemConditionType;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.RegistryObject;

public final class AHLootItemConditions {

public static void init() {}
public static final DeferredRegister<LootItemConditionType> LOOT_CONDITION_TYPES = DeferredRegister.create(Registry.LOOT_ITEM_REGISTRY, ArnicaLib.MOD_ID);

public static final LootItemConditionType MOD_LOADED = register("mod_loaded", new ModLoadedCondition.SerializerX());

private static LootItemConditionType register(String id, Serializer<? extends LootItemCondition> serializer) {
return Registry.register(Registry.LOOT_CONDITION_TYPE, ArnicaLib.id(id), new LootItemConditionType(serializer));
private static RegistryObject<LootItemConditionType> register(String id, Supplier<Serializer<? extends LootItemCondition>> serializerSup) {
return LOOT_CONDITION_TYPES.register(id, () -> new LootItemConditionType(serializerSup.get()));
}

public static final RegistryObject<LootItemConditionType> MOD_LOADED = register("mod_loaded", ModLoadedCondition.SerializerX::new);

}
Expand Up @@ -26,7 +26,7 @@ public boolean test(LootContext ctx) {

@Override
public LootItemConditionType getType() {
return AHLootItemConditions.MOD_LOADED;
return AHLootItemConditions.MOD_LOADED.get();
}


Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/META-INF/mods.toml
Expand Up @@ -18,7 +18,7 @@ Shared library for AH's Minecraft mods.
[[dependencies.arnicalib]]
modId="forge"
mandatory=true
versionRange="[40,)"
versionRange="[40.0.35,)"
ordering="NONE"
side="BOTH"
[[dependencies.arnicalib]]
Expand Down

0 comments on commit ca0e8fa

Please sign in to comment.