From f8a32ac2c3eac44353f173f06b6d212bd63d4d15 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Sat, 26 Nov 2022 11:56:16 +0700 Subject: [PATCH] properly register loot item conditions --- .../otm/data/condition/HasExosuitCondition.kt | 2 +- .../mc/otm/registry/MLootItemConditions.kt | 29 ++++++++----------- .../dbotthepony/mc/otm/registry/MRegistry.kt | 2 +- 3 files changed, 14 insertions(+), 19 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/data/condition/HasExosuitCondition.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/data/condition/HasExosuitCondition.kt index 1c4318ad7..c51ffee1e 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/data/condition/HasExosuitCondition.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/data/condition/HasExosuitCondition.kt @@ -23,7 +23,7 @@ object HasExosuitCondition : LootItemCondition, Serializer, } override fun getType(): LootItemConditionType { - return MLootItemConditions.HAS_EXOSUIT + return MLootItemConditions.HAS_EXOPACK } override fun serialize(p_79325_: JsonObject, p_79326_: HasExosuitCondition, p_79327_: JsonSerializationContext) { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MLootItemConditions.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MLootItemConditions.kt index 6070f0c7c..f2bbb7f62 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MLootItemConditions.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MLootItemConditions.kt @@ -1,9 +1,9 @@ package ru.dbotthepony.mc.otm.registry import net.minecraft.core.Registry -import net.minecraft.resources.ResourceLocation import net.minecraft.world.level.storage.loot.predicates.LootItemConditionType -import net.minecraftforge.registries.RegisterEvent +import net.minecraftforge.eventbus.api.IEventBus +import net.minecraftforge.registries.DeferredRegister import ru.dbotthepony.mc.otm.OverdriveThatMatters import ru.dbotthepony.mc.otm.data.condition.ChanceWithPlaytimeCondition import ru.dbotthepony.mc.otm.data.condition.HasExosuitCondition @@ -13,21 +13,16 @@ import ru.dbotthepony.mc.otm.data.condition.KilledByRealPlayerOrIndirectly import ru.dbotthepony.mc.otm.data.condition.ChanceCondition object MLootItemConditions { - val HAS_EXOSUIT = LootItemConditionType(HasExosuitCondition) - val KILLED_BY_REAL_PLAYER = LootItemConditionType(KilledByRealPlayer) - val KILLED_BY_REAL_PLAYER_OR_INDIRECTLY = LootItemConditionType(KilledByRealPlayerOrIndirectly) - val CHANCE_WITH_PLAYTIME = LootItemConditionType(ChanceWithPlaytimeCondition) - val ITEM_IN_INVENTORY = LootItemConditionType(ItemInInventoryCondition) - val CHANCE = LootItemConditionType(ChanceCondition.Companion) + private val registry = DeferredRegister.create(Registry.LOOT_ITEM_REGISTRY, OverdriveThatMatters.MOD_ID) - internal fun register(event: RegisterEvent) { - if (event.getVanillaRegistry() == Registry.LOOT_CONDITION_TYPE) { - Registry.LOOT_CONDITION_TYPE.register(ResourceLocation(OverdriveThatMatters.MOD_ID, "has_exosuit"), HAS_EXOSUIT) - Registry.LOOT_CONDITION_TYPE.register(ResourceLocation(OverdriveThatMatters.MOD_ID, "chance_with_playtime"), CHANCE_WITH_PLAYTIME) - Registry.LOOT_CONDITION_TYPE.register(ResourceLocation(OverdriveThatMatters.MOD_ID, "item_in_inventory"), ITEM_IN_INVENTORY) - Registry.LOOT_CONDITION_TYPE.register(ResourceLocation(OverdriveThatMatters.MOD_ID, "killed_by_real_player"), KILLED_BY_REAL_PLAYER) - Registry.LOOT_CONDITION_TYPE.register(ResourceLocation(OverdriveThatMatters.MOD_ID, "killed_by_real_player_or_indirectly"), KILLED_BY_REAL_PLAYER_OR_INDIRECTLY) - Registry.LOOT_CONDITION_TYPE.register(ResourceLocation(OverdriveThatMatters.MOD_ID, "chance"), CHANCE) - } + val HAS_EXOPACK: LootItemConditionType by registry.register("has_exosuit") { LootItemConditionType(HasExosuitCondition) } + val CHANCE_WITH_PLAYTIME: LootItemConditionType by registry.register("chance_with_playtime") { LootItemConditionType(ChanceWithPlaytimeCondition) } + val ITEM_IN_INVENTORY: LootItemConditionType by registry.register("item_in_inventory") { LootItemConditionType(ItemInInventoryCondition) } + val KILLED_BY_REAL_PLAYER: LootItemConditionType by registry.register("killed_by_real_player") { LootItemConditionType(KilledByRealPlayer) } + val KILLED_BY_REAL_PLAYER_OR_INDIRECTLY: LootItemConditionType by registry.register("killed_by_real_player_or_indirectly") { LootItemConditionType(KilledByRealPlayerOrIndirectly) } + val CHANCE: LootItemConditionType by registry.register("chance") { LootItemConditionType(ChanceCondition.Companion) } + + internal fun register(bus: IEventBus) { + registry.register(bus) } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MRegistry.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MRegistry.kt index 2dc559cf9..da076c070 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MRegistry.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MRegistry.kt @@ -225,7 +225,6 @@ object MRegistry { bus.addListener(this::initializeClient) bus.addListener(this::initializeCommon) bus.addListener(MStats::registerVanilla) - bus.addListener(MLootItemConditions::register) MBlocks.register(bus) MBlockEntities.register(bus) @@ -236,6 +235,7 @@ object MRegistry { MSoundEvents.register(bus) LootModifiers.register(bus) MItemFunctionTypes.register(bus) + MLootItemConditions.register(bus) MRecipes.register(bus)