From 2b589410f504d23c2ce9ffd8edd23aafee9fc7e9 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Mon, 31 Mar 2025 08:57:04 +0700 Subject: [PATCH 1/3] Move triggers and worldgen to server subpackage --- .../ru/dbotthepony/mc/otm/datagen/WorldGen.kt | 2 +- .../datagen/advancements/AdvancementData.kt | 4 +- .../advancements/AndroidAdvancementsData.kt | 26 +++++------ .../advancements/ExopackAdvancementsData.kt | 12 ++--- .../advancements/MachineAdvancementsData.kt | 2 +- .../mixin/InventoryChangeTriggerMixin.java | 2 +- .../mixin/SimpleCriterionTriggerMixin.java | 2 +- .../mc/otm/OverdriveThatMatters.kt | 2 +- .../entity/blackhole/BlackHoleBlockEntity.kt | 2 +- .../energy/BatteryBackedEnergyStorage.kt | 4 +- .../exopack/AbstractExopackSlotUpgradeItem.kt | 2 +- .../mc/otm/item/tool/ExplosiveHammerItem.kt | 2 +- .../otm/menu/matter/MatterReplicatorMenu.kt | 2 +- .../mc/otm/player/ExopackContainer.kt | 2 +- .../mc/otm/player/MatteryPlayer.kt | 22 +++++----- .../mc/otm/player/android/AndroidResearch.kt | 2 +- .../android/feature/EnderTeleporterFeature.kt | 2 +- .../android/feature/FallDampenersFeature.kt | 2 +- .../android/feature/NanobotsArmorFeature.kt | 2 +- .../android/feature/ShockwaveFeature.kt | 4 +- .../mc/otm/registry/MCriteriaTriggers.kt | 44 +++++++++---------- .../mc/otm/registry/data/MWorldGenFeatures.kt | 2 +- .../feature/BlackHolePlacer.kt | 4 +- .../triggers/AndroidResearchTrigger.kt | 4 +- .../triggers/AndroidTravelUnderwater.kt | 4 +- .../{ => server}/triggers/ExopackTriggers.kt | 4 +- .../otm/{ => server}/triggers/HurtTrigger.kt | 4 +- .../otm/{ => server}/triggers/ItemTrigger.kt | 4 +- .../triggers/KillAsAndroidTrigger.kt | 18 +++++--- .../triggers/MCriterionTrigger.kt | 2 +- .../triggers/MatteryInventoryChangeTrigger.kt | 2 +- .../triggers/NanobotsArmorTrigger.kt | 4 +- .../{ => server}/triggers/SimpleTriggers.kt | 2 +- .../{ => server}/triggers/SingletonTrigger.kt | 4 +- 34 files changed, 104 insertions(+), 98 deletions(-) rename src/main/kotlin/ru/dbotthepony/mc/otm/{worldgen => server}/feature/BlackHolePlacer.kt (94%) rename src/main/kotlin/ru/dbotthepony/mc/otm/{ => server}/triggers/AndroidResearchTrigger.kt (93%) rename src/main/kotlin/ru/dbotthepony/mc/otm/{ => server}/triggers/AndroidTravelUnderwater.kt (92%) rename src/main/kotlin/ru/dbotthepony/mc/otm/{ => server}/triggers/ExopackTriggers.kt (95%) rename src/main/kotlin/ru/dbotthepony/mc/otm/{ => server}/triggers/HurtTrigger.kt (95%) rename src/main/kotlin/ru/dbotthepony/mc/otm/{ => server}/triggers/ItemTrigger.kt (93%) rename src/main/kotlin/ru/dbotthepony/mc/otm/{ => server}/triggers/KillAsAndroidTrigger.kt (91%) rename src/main/kotlin/ru/dbotthepony/mc/otm/{ => server}/triggers/MCriterionTrigger.kt (98%) rename src/main/kotlin/ru/dbotthepony/mc/otm/{ => server}/triggers/MatteryInventoryChangeTrigger.kt (99%) rename src/main/kotlin/ru/dbotthepony/mc/otm/{ => server}/triggers/NanobotsArmorTrigger.kt (91%) rename src/main/kotlin/ru/dbotthepony/mc/otm/{ => server}/triggers/SimpleTriggers.kt (96%) rename src/main/kotlin/ru/dbotthepony/mc/otm/{ => server}/triggers/SingletonTrigger.kt (89%) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/WorldGen.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/WorldGen.kt index dfe022d06..f3acfdf65 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/WorldGen.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/WorldGen.kt @@ -29,7 +29,7 @@ import ru.dbotthepony.mc.otm.data.world.EllipsoidPlacement import ru.dbotthepony.mc.otm.data.world.StandardDeviationHeightProvider import ru.dbotthepony.mc.otm.registry.game.MBlocks import ru.dbotthepony.mc.otm.registry.data.MWorldGenFeatures -import ru.dbotthepony.mc.otm.worldgen.feature.BlackHolePlacerFeature +import ru.dbotthepony.mc.otm.server.feature.BlackHolePlacerFeature private object ConfiguredFeatures { val TRITANIUM_ORE = key("tritanium_ore") diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AdvancementData.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AdvancementData.kt index bf6eea17a..0cfdd85d3 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AdvancementData.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AdvancementData.kt @@ -13,8 +13,8 @@ import ru.dbotthepony.mc.otm.datagen.modLocation import ru.dbotthepony.mc.otm.registry.MItemTags import ru.dbotthepony.mc.otm.registry.game.MItems import ru.dbotthepony.mc.otm.registry.MRegistry -import ru.dbotthepony.mc.otm.triggers.BlackHoleTrigger -import ru.dbotthepony.mc.otm.triggers.NailedEntityTrigger +import ru.dbotthepony.mc.otm.server.triggers.BlackHoleTrigger +import ru.dbotthepony.mc.otm.server.triggers.NailedEntityTrigger import java.util.function.Consumer fun addAdvancements(serializer: Consumer, lang: MatteryLanguageProvider) { diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AndroidAdvancementsData.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AndroidAdvancementsData.kt index de8f02320..0692c5e48 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AndroidAdvancementsData.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AndroidAdvancementsData.kt @@ -16,19 +16,19 @@ import ru.dbotthepony.mc.otm.datagen.modLocation import ru.dbotthepony.mc.otm.registry.game.AndroidFeatures import ru.dbotthepony.mc.otm.registry.game.MItems import ru.dbotthepony.mc.otm.registry.MNames -import ru.dbotthepony.mc.otm.triggers.AndroidBatteryTrigger -import ru.dbotthepony.mc.otm.triggers.AndroidResearchTrigger -import ru.dbotthepony.mc.otm.triggers.AndroidTravelUnderwater -import ru.dbotthepony.mc.otm.triggers.BecomeAndroidDeathTrigger -import ru.dbotthepony.mc.otm.triggers.BecomeAndroidSleepTrigger -import ru.dbotthepony.mc.otm.triggers.BecomeAndroidTrigger -import ru.dbotthepony.mc.otm.triggers.BecomeHumaneTrigger -import ru.dbotthepony.mc.otm.triggers.EnderTeleporterFallDeathTrigger -import ru.dbotthepony.mc.otm.triggers.FallDampenersSaveTrigger -import ru.dbotthepony.mc.otm.triggers.KillAsAndroidTrigger -import ru.dbotthepony.mc.otm.triggers.NanobotsArmorTrigger -import ru.dbotthepony.mc.otm.triggers.ShockwaveDamageMobTrigger -import ru.dbotthepony.mc.otm.triggers.ShockwaveTrigger +import ru.dbotthepony.mc.otm.server.triggers.AndroidBatteryTrigger +import ru.dbotthepony.mc.otm.server.triggers.AndroidResearchTrigger +import ru.dbotthepony.mc.otm.server.triggers.AndroidTravelUnderwater +import ru.dbotthepony.mc.otm.server.triggers.BecomeAndroidDeathTrigger +import ru.dbotthepony.mc.otm.server.triggers.BecomeAndroidSleepTrigger +import ru.dbotthepony.mc.otm.server.triggers.BecomeAndroidTrigger +import ru.dbotthepony.mc.otm.server.triggers.BecomeHumaneTrigger +import ru.dbotthepony.mc.otm.server.triggers.EnderTeleporterFallDeathTrigger +import ru.dbotthepony.mc.otm.server.triggers.FallDampenersSaveTrigger +import ru.dbotthepony.mc.otm.server.triggers.KillAsAndroidTrigger +import ru.dbotthepony.mc.otm.server.triggers.NanobotsArmorTrigger +import ru.dbotthepony.mc.otm.server.triggers.ShockwaveDamageMobTrigger +import ru.dbotthepony.mc.otm.server.triggers.ShockwaveTrigger import java.util.* import java.util.function.Consumer diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/ExopackAdvancementsData.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/ExopackAdvancementsData.kt index aaecd7031..f7aa15f43 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/ExopackAdvancementsData.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/ExopackAdvancementsData.kt @@ -8,12 +8,12 @@ import net.minecraft.world.item.Items import ru.dbotthepony.mc.otm.datagen.lang.MatteryLanguageProvider import ru.dbotthepony.mc.otm.datagen.modLocation import ru.dbotthepony.mc.otm.registry.game.MItems -import ru.dbotthepony.mc.otm.triggers.ExopackBatterySlotTrigger -import ru.dbotthepony.mc.otm.triggers.ExopackGainedCraftingTrigger -import ru.dbotthepony.mc.otm.triggers.ExopackGainedEnderAccessTrigger -import ru.dbotthepony.mc.otm.triggers.ExopackGainedSmeltingTrigger -import ru.dbotthepony.mc.otm.triggers.ExopackObtainedTrigger -import ru.dbotthepony.mc.otm.triggers.ExopackSlotsExpandedTrigger +import ru.dbotthepony.mc.otm.server.triggers.ExopackBatterySlotTrigger +import ru.dbotthepony.mc.otm.server.triggers.ExopackGainedCraftingTrigger +import ru.dbotthepony.mc.otm.server.triggers.ExopackGainedEnderAccessTrigger +import ru.dbotthepony.mc.otm.server.triggers.ExopackGainedSmeltingTrigger +import ru.dbotthepony.mc.otm.server.triggers.ExopackObtainedTrigger +import ru.dbotthepony.mc.otm.server.triggers.ExopackSlotsExpandedTrigger import java.util.function.Consumer fun addExopackAdvancements(serializer: Consumer, lang: MatteryLanguageProvider, root: AdvancementHolder, zpm: AdvancementHolder) { diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/MachineAdvancementsData.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/MachineAdvancementsData.kt index dea7f5d24..5ef50616a 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/MachineAdvancementsData.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/MachineAdvancementsData.kt @@ -13,7 +13,7 @@ import ru.dbotthepony.mc.otm.util.registryName import ru.dbotthepony.mc.otm.datagen.lang.MatteryLanguageProvider import ru.dbotthepony.mc.otm.datagen.modLocation import ru.dbotthepony.mc.otm.registry.game.MItems -import ru.dbotthepony.mc.otm.triggers.TakeItemOutOfReplicatorTrigger +import ru.dbotthepony.mc.otm.server.triggers.TakeItemOutOfReplicatorTrigger import java.util.function.Consumer data class CraftEntry( diff --git a/src/main/java/ru/dbotthepony/mc/otm/mixin/InventoryChangeTriggerMixin.java b/src/main/java/ru/dbotthepony/mc/otm/mixin/InventoryChangeTriggerMixin.java index 70dcb7462..e2e634af2 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/mixin/InventoryChangeTriggerMixin.java +++ b/src/main/java/ru/dbotthepony/mc/otm/mixin/InventoryChangeTriggerMixin.java @@ -6,7 +6,7 @@ import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.item.ItemStack; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; -import ru.dbotthepony.mc.otm.triggers.MatteryInventoryChangeTrigger; +import ru.dbotthepony.mc.otm.server.triggers.MatteryInventoryChangeTrigger; @Mixin(InventoryChangeTrigger.class) public abstract class InventoryChangeTriggerMixin { diff --git a/src/main/java/ru/dbotthepony/mc/otm/mixin/SimpleCriterionTriggerMixin.java b/src/main/java/ru/dbotthepony/mc/otm/mixin/SimpleCriterionTriggerMixin.java index e12c49b2e..e45b8aa71 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/mixin/SimpleCriterionTriggerMixin.java +++ b/src/main/java/ru/dbotthepony/mc/otm/mixin/SimpleCriterionTriggerMixin.java @@ -9,7 +9,7 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import ru.dbotthepony.mc.otm.triggers.MatteryInventoryChangeTrigger; +import ru.dbotthepony.mc.otm.server.triggers.MatteryInventoryChangeTrigger; // i tried to mixin into InventoryChangeTrigger with extends SimpleCriterionTrigger and @Overwrite+@Override // while also defining SimpleCriterionTrigger methods non final in accesstransfoer diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/OverdriveThatMatters.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/OverdriveThatMatters.kt index 572532f27..1f66d1b96 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/OverdriveThatMatters.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/OverdriveThatMatters.kt @@ -93,7 +93,7 @@ import ru.dbotthepony.mc.otm.registry.data.MPlacementModifiers import ru.dbotthepony.mc.otm.registry.data.MWorldGenFeatures import ru.dbotthepony.mc.otm.server.MCommands import ru.dbotthepony.mc.otm.storage.StorageStack -import ru.dbotthepony.mc.otm.triggers.KillAsAndroidTrigger +import ru.dbotthepony.mc.otm.server.triggers.KillAsAndroidTrigger import thedarkcolour.kotlinforforge.neoforge.forge.DIST import thedarkcolour.kotlinforforge.neoforge.forge.FORGE_BUS import thedarkcolour.kotlinforforge.neoforge.forge.LOADING_CONTEXT diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/blackhole/BlackHoleBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/blackhole/BlackHoleBlockEntity.kt index 8eec319b6..32c624152 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/blackhole/BlackHoleBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/blackhole/BlackHoleBlockEntity.kt @@ -46,7 +46,7 @@ import ru.dbotthepony.mc.otm.util.otmRandom import ru.dbotthepony.mc.otm.matter.MatterManager import ru.dbotthepony.mc.otm.registry.MDamageTypes import ru.dbotthepony.mc.otm.registry.MatteryDamageSource -import ru.dbotthepony.mc.otm.triggers.BlackHoleTrigger +import ru.dbotthepony.mc.otm.server.triggers.BlackHoleTrigger import kotlin.math.pow import kotlin.math.roundToInt import kotlin.math.sqrt diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/energy/BatteryBackedEnergyStorage.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/energy/BatteryBackedEnergyStorage.kt index 87b42d762..3be3e1206 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/energy/BatteryBackedEnergyStorage.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/energy/BatteryBackedEnergyStorage.kt @@ -18,8 +18,8 @@ import ru.dbotthepony.mc.otm.util.math.Decimal import ru.dbotthepony.mc.otm.util.getDecimal import ru.dbotthepony.mc.otm.util.set import ru.dbotthepony.mc.otm.registry.StatNames -import ru.dbotthepony.mc.otm.triggers.AndroidBatteryTrigger -import ru.dbotthepony.mc.otm.triggers.ExopackBatterySlotTrigger +import ru.dbotthepony.mc.otm.server.triggers.AndroidBatteryTrigger +import ru.dbotthepony.mc.otm.server.triggers.ExopackBatterySlotTrigger class BatteryBackedEnergyStorage( private val ply: Player, diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/exopack/AbstractExopackSlotUpgradeItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/exopack/AbstractExopackSlotUpgradeItem.kt index 88beff626..2371504df 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/exopack/AbstractExopackSlotUpgradeItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/exopack/AbstractExopackSlotUpgradeItem.kt @@ -24,7 +24,7 @@ import ru.dbotthepony.mc.otm.util.nextUUID import ru.dbotthepony.mc.otm.util.otmRandom import ru.dbotthepony.mc.otm.registry.game.MItems import ru.dbotthepony.mc.otm.runIfClient -import ru.dbotthepony.mc.otm.triggers.ExopackSlotsExpandedTrigger +import ru.dbotthepony.mc.otm.server.triggers.ExopackSlotsExpandedTrigger import java.util.UUID abstract class AbstractExopackSlotUpgradeItem(properties: Properties = defaultProperties()) : Item(properties) { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/tool/ExplosiveHammerItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/tool/ExplosiveHammerItem.kt index 0e9b1aab0..d8eb95ca9 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/tool/ExplosiveHammerItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/tool/ExplosiveHammerItem.kt @@ -40,7 +40,7 @@ import ru.dbotthepony.mc.otm.util.math.* import ru.dbotthepony.mc.otm.registry.MDamageTypes import ru.dbotthepony.mc.otm.registry.game.MDataComponentTypes import ru.dbotthepony.mc.otm.registry.MatteryDamageSource -import ru.dbotthepony.mc.otm.triggers.NailedEntityTrigger +import ru.dbotthepony.mc.otm.server.triggers.NailedEntityTrigger import ru.dbotthepony.mc.otm.util.TranslatableComponent import ru.dbotthepony.mc.otm.util.damageType import ru.dbotthepony.mc.otm.util.getExplosionResistance diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterReplicatorMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterReplicatorMenu.kt index 5ff733a6a..a08123a40 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterReplicatorMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterReplicatorMenu.kt @@ -17,7 +17,7 @@ import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput import ru.dbotthepony.mc.otm.menu.makeUpgradeSlots import ru.dbotthepony.mc.otm.menu.widget.ProfiledLevelGaugeWidget import ru.dbotthepony.mc.otm.registry.game.MMenus -import ru.dbotthepony.mc.otm.triggers.TakeItemOutOfReplicatorTrigger +import ru.dbotthepony.mc.otm.server.triggers.TakeItemOutOfReplicatorTrigger class MatterReplicatorMenu @JvmOverloads constructor( p_38852_: Int, diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/player/ExopackContainer.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/player/ExopackContainer.kt index 945f76272..ca20177d1 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/player/ExopackContainer.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/player/ExopackContainer.kt @@ -7,7 +7,7 @@ import ru.dbotthepony.mc.otm.container.EnhancedContainer import ru.dbotthepony.mc.otm.container.IContainerSlot import ru.dbotthepony.mc.otm.container.IEnhancedContainer import ru.dbotthepony.mc.otm.container.ItemFilter -import ru.dbotthepony.mc.otm.triggers.MatteryInventoryChangeTrigger +import ru.dbotthepony.mc.otm.server.triggers.MatteryInventoryChangeTrigger class ExopackContainer(size: Int, val player: MatteryPlayer) : EnhancedContainer(size) { private inner class Slot(slot: Int) : IContainerSlot.Simple(slot, this@ExopackContainer), IPlayerInventorySlot { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/player/MatteryPlayer.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/player/MatteryPlayer.kt index d5746d439..ce9a31826 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/player/MatteryPlayer.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/player/MatteryPlayer.kt @@ -101,17 +101,17 @@ import ru.dbotthepony.mc.otm.registry.game.AndroidFeatures import ru.dbotthepony.mc.otm.registry.MDamageTypes import ru.dbotthepony.mc.otm.registry.game.MItems import ru.dbotthepony.mc.otm.registry.MatteryDamageSource -import ru.dbotthepony.mc.otm.triggers.AndroidResearchTrigger -import ru.dbotthepony.mc.otm.triggers.AndroidTravelUnderwater -import ru.dbotthepony.mc.otm.triggers.BecomeAndroidDeathTrigger -import ru.dbotthepony.mc.otm.triggers.BecomeAndroidSleepTrigger -import ru.dbotthepony.mc.otm.triggers.BecomeAndroidTrigger -import ru.dbotthepony.mc.otm.triggers.BecomeHumaneTrigger -import ru.dbotthepony.mc.otm.triggers.ExopackGainedCraftingTrigger -import ru.dbotthepony.mc.otm.triggers.ExopackGainedEnderAccessTrigger -import ru.dbotthepony.mc.otm.triggers.ExopackGainedSmeltingTrigger -import ru.dbotthepony.mc.otm.triggers.ExopackObtainedTrigger -import ru.dbotthepony.mc.otm.triggers.ExopackSlotsExpandedTrigger +import ru.dbotthepony.mc.otm.server.triggers.AndroidResearchTrigger +import ru.dbotthepony.mc.otm.server.triggers.AndroidTravelUnderwater +import ru.dbotthepony.mc.otm.server.triggers.BecomeAndroidDeathTrigger +import ru.dbotthepony.mc.otm.server.triggers.BecomeAndroidSleepTrigger +import ru.dbotthepony.mc.otm.server.triggers.BecomeAndroidTrigger +import ru.dbotthepony.mc.otm.server.triggers.BecomeHumaneTrigger +import ru.dbotthepony.mc.otm.server.triggers.ExopackGainedCraftingTrigger +import ru.dbotthepony.mc.otm.server.triggers.ExopackGainedEnderAccessTrigger +import ru.dbotthepony.mc.otm.server.triggers.ExopackGainedSmeltingTrigger +import ru.dbotthepony.mc.otm.server.triggers.ExopackObtainedTrigger +import ru.dbotthepony.mc.otm.server.triggers.ExopackSlotsExpandedTrigger import ru.dbotthepony.mc.otm.util.ResourceLocation import ru.dbotthepony.mc.otm.util.TranslatableComponent import ru.dbotthepony.mc.otm.util.damageType diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/player/android/AndroidResearch.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/player/android/AndroidResearch.kt index a1668b1cf..174ad6799 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/player/android/AndroidResearch.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/player/android/AndroidResearch.kt @@ -20,7 +20,7 @@ import ru.dbotthepony.mc.otm.util.TranslatableComponent import ru.dbotthepony.mc.otm.util.registryName import ru.dbotthepony.mc.otm.util.set import ru.dbotthepony.mc.otm.milliTime -import ru.dbotthepony.mc.otm.triggers.AndroidResearchTrigger +import ru.dbotthepony.mc.otm.server.triggers.AndroidResearchTrigger import kotlin.math.absoluteValue class AndroidResearch(val type: AndroidResearchType, val capability: MatteryPlayer) : INBTSerializable { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/player/android/feature/EnderTeleporterFeature.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/player/android/feature/EnderTeleporterFeature.kt index a6b6d88fa..567f86a56 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/player/android/feature/EnderTeleporterFeature.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/player/android/feature/EnderTeleporterFeature.kt @@ -52,7 +52,7 @@ import ru.dbotthepony.mc.otm.util.math.times import ru.dbotthepony.mc.otm.util.otmRandom import ru.dbotthepony.mc.otm.milliTime import ru.dbotthepony.mc.otm.registry.game.AndroidFeatures -import ru.dbotthepony.mc.otm.triggers.EnderTeleporterFallDeathTrigger +import ru.dbotthepony.mc.otm.server.triggers.EnderTeleporterFallDeathTrigger import java.util.* import kotlin.math.sin diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/player/android/feature/FallDampenersFeature.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/player/android/feature/FallDampenersFeature.kt index c833ff9ff..ff6796043 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/player/android/feature/FallDampenersFeature.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/player/android/feature/FallDampenersFeature.kt @@ -7,7 +7,7 @@ import ru.dbotthepony.mc.otm.player.MatteryPlayer import ru.dbotthepony.mc.otm.config.PlayerConfig import ru.dbotthepony.mc.otm.util.isFall import ru.dbotthepony.mc.otm.registry.game.AndroidFeatures -import ru.dbotthepony.mc.otm.triggers.FallDampenersSaveTrigger +import ru.dbotthepony.mc.otm.server.triggers.FallDampenersSaveTrigger class FallDampenersFeature(capability: MatteryPlayer) : AndroidFeature(AndroidFeatures.FALL_DAMPENERS, capability) { override fun onHurt(event: LivingIncomingDamageEvent) { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/player/android/feature/NanobotsArmorFeature.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/player/android/feature/NanobotsArmorFeature.kt index 08de370a5..f149f38a9 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/player/android/feature/NanobotsArmorFeature.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/player/android/feature/NanobotsArmorFeature.kt @@ -16,7 +16,7 @@ import ru.dbotthepony.mc.otm.registry.game.AndroidFeatures import ru.dbotthepony.mc.otm.registry.StatNames import ru.dbotthepony.mc.otm.util.set import ru.dbotthepony.mc.otm.onceServer -import ru.dbotthepony.mc.otm.triggers.NanobotsArmorTrigger +import ru.dbotthepony.mc.otm.server.triggers.NanobotsArmorTrigger import kotlin.math.roundToInt class NanobotsArmorFeature(android: MatteryPlayer) : AndroidFeature(AndroidFeatures.NANOBOTS_ARMOR, android) { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/player/android/feature/ShockwaveFeature.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/player/android/feature/ShockwaveFeature.kt index 477c21b48..a15d60f97 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/player/android/feature/ShockwaveFeature.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/player/android/feature/ShockwaveFeature.kt @@ -30,8 +30,8 @@ import ru.dbotthepony.mc.otm.registry.game.AndroidFeatures import ru.dbotthepony.mc.otm.registry.MDamageTypes import ru.dbotthepony.mc.otm.registry.game.MSoundEvents import ru.dbotthepony.mc.otm.registry.MatteryDamageSource -import ru.dbotthepony.mc.otm.triggers.ShockwaveDamageMobTrigger -import ru.dbotthepony.mc.otm.triggers.ShockwaveTrigger +import ru.dbotthepony.mc.otm.server.triggers.ShockwaveDamageMobTrigger +import ru.dbotthepony.mc.otm.server.triggers.ShockwaveTrigger import kotlin.math.pow import kotlin.math.roundToInt diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MCriteriaTriggers.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MCriteriaTriggers.kt index a097b2137..e25568fcb 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MCriteriaTriggers.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MCriteriaTriggers.kt @@ -2,28 +2,28 @@ package ru.dbotthepony.mc.otm.registry import net.minecraft.core.registries.BuiltInRegistries import net.neoforged.bus.api.IEventBus -import ru.dbotthepony.mc.otm.triggers.AndroidBatteryTrigger -import ru.dbotthepony.mc.otm.triggers.AndroidResearchTrigger -import ru.dbotthepony.mc.otm.triggers.AndroidTravelUnderwater -import ru.dbotthepony.mc.otm.triggers.BecomeAndroidDeathTrigger -import ru.dbotthepony.mc.otm.triggers.BecomeAndroidSleepTrigger -import ru.dbotthepony.mc.otm.triggers.BecomeAndroidTrigger -import ru.dbotthepony.mc.otm.triggers.BecomeHumaneTrigger -import ru.dbotthepony.mc.otm.triggers.BlackHoleTrigger -import ru.dbotthepony.mc.otm.triggers.EnderTeleporterFallDeathTrigger -import ru.dbotthepony.mc.otm.triggers.ExopackBatterySlotTrigger -import ru.dbotthepony.mc.otm.triggers.ExopackGainedCraftingTrigger -import ru.dbotthepony.mc.otm.triggers.ExopackGainedEnderAccessTrigger -import ru.dbotthepony.mc.otm.triggers.ExopackGainedSmeltingTrigger -import ru.dbotthepony.mc.otm.triggers.ExopackObtainedTrigger -import ru.dbotthepony.mc.otm.triggers.ExopackSlotsExpandedTrigger -import ru.dbotthepony.mc.otm.triggers.FallDampenersSaveTrigger -import ru.dbotthepony.mc.otm.triggers.KillAsAndroidTrigger -import ru.dbotthepony.mc.otm.triggers.NailedEntityTrigger -import ru.dbotthepony.mc.otm.triggers.NanobotsArmorTrigger -import ru.dbotthepony.mc.otm.triggers.ShockwaveDamageMobTrigger -import ru.dbotthepony.mc.otm.triggers.ShockwaveTrigger -import ru.dbotthepony.mc.otm.triggers.TakeItemOutOfReplicatorTrigger +import ru.dbotthepony.mc.otm.server.triggers.AndroidBatteryTrigger +import ru.dbotthepony.mc.otm.server.triggers.AndroidResearchTrigger +import ru.dbotthepony.mc.otm.server.triggers.AndroidTravelUnderwater +import ru.dbotthepony.mc.otm.server.triggers.BecomeAndroidDeathTrigger +import ru.dbotthepony.mc.otm.server.triggers.BecomeAndroidSleepTrigger +import ru.dbotthepony.mc.otm.server.triggers.BecomeAndroidTrigger +import ru.dbotthepony.mc.otm.server.triggers.BecomeHumaneTrigger +import ru.dbotthepony.mc.otm.server.triggers.BlackHoleTrigger +import ru.dbotthepony.mc.otm.server.triggers.EnderTeleporterFallDeathTrigger +import ru.dbotthepony.mc.otm.server.triggers.ExopackBatterySlotTrigger +import ru.dbotthepony.mc.otm.server.triggers.ExopackGainedCraftingTrigger +import ru.dbotthepony.mc.otm.server.triggers.ExopackGainedEnderAccessTrigger +import ru.dbotthepony.mc.otm.server.triggers.ExopackGainedSmeltingTrigger +import ru.dbotthepony.mc.otm.server.triggers.ExopackObtainedTrigger +import ru.dbotthepony.mc.otm.server.triggers.ExopackSlotsExpandedTrigger +import ru.dbotthepony.mc.otm.server.triggers.FallDampenersSaveTrigger +import ru.dbotthepony.mc.otm.server.triggers.KillAsAndroidTrigger +import ru.dbotthepony.mc.otm.server.triggers.NailedEntityTrigger +import ru.dbotthepony.mc.otm.server.triggers.NanobotsArmorTrigger +import ru.dbotthepony.mc.otm.server.triggers.ShockwaveDamageMobTrigger +import ru.dbotthepony.mc.otm.server.triggers.ShockwaveTrigger +import ru.dbotthepony.mc.otm.server.triggers.TakeItemOutOfReplicatorTrigger object MCriteriaTriggers { private val registrar = MDeferredRegister(BuiltInRegistries.TRIGGER_TYPES) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/data/MWorldGenFeatures.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/data/MWorldGenFeatures.kt index dc15e0189..570b083d2 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/data/MWorldGenFeatures.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/data/MWorldGenFeatures.kt @@ -3,7 +3,7 @@ package ru.dbotthepony.mc.otm.registry.data import net.minecraft.core.registries.BuiltInRegistries import net.neoforged.bus.api.IEventBus import ru.dbotthepony.mc.otm.registry.MDeferredRegister -import ru.dbotthepony.mc.otm.worldgen.feature.BlackHolePlacerFeature +import ru.dbotthepony.mc.otm.server.feature.BlackHolePlacerFeature object MWorldGenFeatures { private val registry = MDeferredRegister(BuiltInRegistries.FEATURE) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/worldgen/feature/BlackHolePlacer.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/server/feature/BlackHolePlacer.kt similarity index 94% rename from src/main/kotlin/ru/dbotthepony/mc/otm/worldgen/feature/BlackHolePlacer.kt rename to src/main/kotlin/ru/dbotthepony/mc/otm/server/feature/BlackHolePlacer.kt index f2d9a7939..bb06edb80 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/worldgen/feature/BlackHolePlacer.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/server/feature/BlackHolePlacer.kt @@ -1,4 +1,4 @@ -package ru.dbotthepony.mc.otm.worldgen.feature +package ru.dbotthepony.mc.otm.server.feature import com.mojang.serialization.codecs.RecordCodecBuilder import net.minecraft.world.level.levelgen.feature.Feature @@ -16,7 +16,7 @@ object BlackHolePlacerFeature : Feature( it.group( DecimalCodec.fieldOf("matter_min").forGetter(Config::minMatter), DecimalCodec.fieldOf("matter_max").forGetter(Config::maxMatter) - ).apply(it, ::Config) + ).apply(it, BlackHolePlacerFeature::Config) } ) { data class Config(val minMatter: Decimal, val maxMatter: Decimal) : FeatureConfiguration diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/triggers/AndroidResearchTrigger.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/AndroidResearchTrigger.kt similarity index 93% rename from src/main/kotlin/ru/dbotthepony/mc/otm/triggers/AndroidResearchTrigger.kt rename to src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/AndroidResearchTrigger.kt index b1e0f4637..e34bc3162 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/triggers/AndroidResearchTrigger.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/AndroidResearchTrigger.kt @@ -1,4 +1,4 @@ -package ru.dbotthepony.mc.otm.triggers +package ru.dbotthepony.mc.otm.server.triggers import com.mojang.serialization.Codec import com.mojang.serialization.codecs.RecordCodecBuilder @@ -20,7 +20,7 @@ object AndroidResearchTrigger : MCriterionTrigger, player: Optional = Optional.empty()) : AbstractInstance(player), Predicate { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/triggers/AndroidTravelUnderwater.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/AndroidTravelUnderwater.kt similarity index 92% rename from src/main/kotlin/ru/dbotthepony/mc/otm/triggers/AndroidTravelUnderwater.kt rename to src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/AndroidTravelUnderwater.kt index 3f5228c8b..8bef690c3 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/triggers/AndroidTravelUnderwater.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/AndroidTravelUnderwater.kt @@ -1,4 +1,4 @@ -package ru.dbotthepony.mc.otm.triggers +package ru.dbotthepony.mc.otm.server.triggers import com.mojang.serialization.Codec import com.mojang.serialization.codecs.RecordCodecBuilder @@ -19,7 +19,7 @@ object AndroidTravelUnderwater : MCriterionTrigger = Optional.empty()) : AbstractInstance(playerPredicate) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/triggers/ExopackTriggers.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/ExopackTriggers.kt similarity index 95% rename from src/main/kotlin/ru/dbotthepony/mc/otm/triggers/ExopackTriggers.kt rename to src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/ExopackTriggers.kt index faf3c187b..d2062b362 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/triggers/ExopackTriggers.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/ExopackTriggers.kt @@ -1,4 +1,4 @@ -package ru.dbotthepony.mc.otm.triggers +package ru.dbotthepony.mc.otm.server.triggers import com.mojang.serialization.Codec import com.mojang.serialization.codecs.RecordCodecBuilder @@ -22,7 +22,7 @@ object ExopackSlotsExpandedTrigger : MCriterionTrigger = Optional.empty()) : AbstractInstance(player) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/triggers/KillAsAndroidTrigger.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/KillAsAndroidTrigger.kt similarity index 91% rename from src/main/kotlin/ru/dbotthepony/mc/otm/triggers/KillAsAndroidTrigger.kt rename to src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/KillAsAndroidTrigger.kt index bec5db37d..13b54ac9c 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/triggers/KillAsAndroidTrigger.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/KillAsAndroidTrigger.kt @@ -1,4 +1,4 @@ -package ru.dbotthepony.mc.otm.triggers +package ru.dbotthepony.mc.otm.server.triggers import com.google.common.collect.ImmutableList import com.mojang.serialization.Codec @@ -28,7 +28,7 @@ object KillAsAndroidTrigger : MCriterionTrigger(R ContextAwarePredicate.CODEC.optionalFieldOf("entityPredicate").forGetter(Instance::predicate), FEATURE_CODEC.fieldOf("featurePredicate").forGetter(Instance::featurePredicate), ContextAwarePredicate.CODEC.optionalFieldOf("player").forGetter(Instance::playerPredicate) - ).apply(it, ::Instance) + ).apply(it, KillAsAndroidTrigger::Instance) } enum class PredicateType(codec: Lazy>) : StringRepresentable { @@ -37,22 +37,28 @@ object KillAsAndroidTrigger : MCriterionTrigger(R }), HAS(lazy { RecordCodecBuilder.mapCodec { - it.group(ResourceLocation.CODEC.fieldOf("name").forGetter(Has::name)).apply(it, ::Has) + it.group(ResourceLocation.CODEC.fieldOf("name").forGetter(Has::name)).apply(it, + KillAsAndroidTrigger::Has + ) } }), NOT(lazy { RecordCodecBuilder.mapCodec { - it.group(FEATURE_CODEC.fieldOf("parent").forGetter(Not::parent)).apply(it, ::Not) + it.group(FEATURE_CODEC.fieldOf("parent").forGetter(Not::parent)).apply(it, KillAsAndroidTrigger::Not) } }), AND(lazy { RecordCodecBuilder.mapCodec { - it.group(FEATURE_CODEC.listOf().fieldOf("children").forGetter(And::children)).apply(it, ::And) + it.group(FEATURE_CODEC.listOf().fieldOf("children").forGetter(And::children)).apply(it, + KillAsAndroidTrigger::And + ) } }), OR(lazy { RecordCodecBuilder.mapCodec { - it.group(FEATURE_CODEC.listOf().fieldOf("children").forGetter(OrPredicate::children)).apply(it, ::OrPredicate) + it.group(FEATURE_CODEC.listOf().fieldOf("children").forGetter(OrPredicate::children)).apply(it, + KillAsAndroidTrigger::OrPredicate + ) } }); diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/triggers/MCriterionTrigger.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/MCriterionTrigger.kt similarity index 98% rename from src/main/kotlin/ru/dbotthepony/mc/otm/triggers/MCriterionTrigger.kt rename to src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/MCriterionTrigger.kt index b5be0f6aa..35ecc2b45 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/triggers/MCriterionTrigger.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/MCriterionTrigger.kt @@ -1,4 +1,4 @@ -package ru.dbotthepony.mc.otm.triggers +package ru.dbotthepony.mc.otm.server.triggers import com.mojang.serialization.Codec import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/triggers/MatteryInventoryChangeTrigger.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/MatteryInventoryChangeTrigger.kt similarity index 99% rename from src/main/kotlin/ru/dbotthepony/mc/otm/triggers/MatteryInventoryChangeTrigger.kt rename to src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/MatteryInventoryChangeTrigger.kt index 68ce0c16f..b496ba06a 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/triggers/MatteryInventoryChangeTrigger.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/MatteryInventoryChangeTrigger.kt @@ -1,4 +1,4 @@ -package ru.dbotthepony.mc.otm.triggers +package ru.dbotthepony.mc.otm.server.triggers import com.mojang.serialization.Codec import it.unimi.dsi.fastutil.objects.ObjectArrayList diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/triggers/NanobotsArmorTrigger.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/NanobotsArmorTrigger.kt similarity index 91% rename from src/main/kotlin/ru/dbotthepony/mc/otm/triggers/NanobotsArmorTrigger.kt rename to src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/NanobotsArmorTrigger.kt index e2be4eb79..d6acf7f67 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/triggers/NanobotsArmorTrigger.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/NanobotsArmorTrigger.kt @@ -1,4 +1,4 @@ -package ru.dbotthepony.mc.otm.triggers +package ru.dbotthepony.mc.otm.server.triggers import com.mojang.serialization.Codec import com.mojang.serialization.codecs.RecordCodecBuilder @@ -14,7 +14,7 @@ object NanobotsArmorTrigger : MCriterionTrigger(R it.group( Doubles.CODEC.fieldOf("predicate").forGetter(Instance::predicate), ContextAwarePredicate.CODEC.optionalFieldOf("player").forGetter(Instance::playerPredicate), - ).apply(it, ::Instance) + ).apply(it, NanobotsArmorTrigger::Instance) } fun trigger(player: ServerPlayer, damageAbsorbed: Double) { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/triggers/SimpleTriggers.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/SimpleTriggers.kt similarity index 96% rename from src/main/kotlin/ru/dbotthepony/mc/otm/triggers/SimpleTriggers.kt rename to src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/SimpleTriggers.kt index 6e7e06071..ad9d9f4c2 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/triggers/SimpleTriggers.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/SimpleTriggers.kt @@ -1,4 +1,4 @@ -package ru.dbotthepony.mc.otm.triggers +package ru.dbotthepony.mc.otm.server.triggers import ru.dbotthepony.mc.otm.OverdriveThatMatters import ru.dbotthepony.mc.otm.util.ResourceLocation diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/triggers/SingletonTrigger.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/SingletonTrigger.kt similarity index 89% rename from src/main/kotlin/ru/dbotthepony/mc/otm/triggers/SingletonTrigger.kt rename to src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/SingletonTrigger.kt index 4b51ffba2..099f1d30a 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/triggers/SingletonTrigger.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/server/triggers/SingletonTrigger.kt @@ -1,4 +1,4 @@ -package ru.dbotthepony.mc.otm.triggers +package ru.dbotthepony.mc.otm.server.triggers import com.mojang.serialization.Codec import com.mojang.serialization.codecs.RecordCodecBuilder @@ -11,7 +11,7 @@ class SingletonTrigger(id: ResourceLocation) : MCriterionTrigger = RecordCodecBuilder.create { it.group( ContextAwarePredicate.CODEC.optionalFieldOf("player").forGetter(Instance::playerPredicate) - ).apply(it, ::Instance) + ).apply(it, SingletonTrigger::Instance) } val empty = Instance() From 9b1c192f0903695b4f8b0efef9e40db31a1b3810 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Mon, 31 Mar 2025 09:12:12 +0700 Subject: [PATCH 2/3] Provide "enhanced" (count unlimited) item stack codecs --- .../dbotthepony/mc/otm/block/entity/Jobs.kt | 3 ++- .../matter/MatterEntanglerBlockEntity.kt | 3 ++- .../matter/MatterReplicatorBlockEntity.kt | 3 ++- .../mc/otm/container/EnhancedContainer.kt | 5 ++-- .../mc/otm/container/slotted/ContainerSlot.kt | 5 ++-- .../otm/container/slotted/SlottedContainer.kt | 7 ++--- .../otm/data/codec/EnhancedItemStackCodecs.kt | 26 +++++++++++++++++++ .../condition/ItemInInventoryCondition.kt | 3 ++- .../mc/otm/recipe/MatterEntanglerRecipe.kt | 3 ++- 9 files changed, 46 insertions(+), 12 deletions(-) create mode 100644 src/main/kotlin/ru/dbotthepony/mc/otm/data/codec/EnhancedItemStackCodecs.kt diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/Jobs.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/Jobs.kt index 434b79133..c9df0f764 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/Jobs.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/Jobs.kt @@ -18,6 +18,7 @@ import ru.dbotthepony.mc.otm.util.math.weakGreaterThan import ru.dbotthepony.mc.otm.util.math.weakLessThan import ru.dbotthepony.mc.otm.util.set import ru.dbotthepony.mc.otm.data.codec.DecimalCodec +import ru.dbotthepony.mc.otm.data.codec.EnhancedItemStackCodecs private fun isReason(status: Any?, reason: Any) = status == null || status == reason private val LOGGER = LogManager.getLogger() @@ -67,7 +68,7 @@ open class ItemJob( ) : Job(ticks, power, experience) { companion object { fun itemCodec(builder: RecordCodecBuilder.Instance): Products.P4, ItemStack, Double, Decimal, Float> { - return builder.group(ItemStack.CODEC.fieldOf("Item").forGetter(ItemJob::itemStack)).and(basicCodec(builder)) + return builder.group(EnhancedItemStackCodecs.CODEC.fieldOf("Item").forGetter(ItemJob::itemStack)).and(basicCodec(builder)) } val CODEC: Codec by lazy { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterEntanglerBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterEntanglerBlockEntity.kt index 4b9ba0cc0..79e9bb716 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterEntanglerBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterEntanglerBlockEntity.kt @@ -38,6 +38,7 @@ import ru.dbotthepony.mc.otm.util.math.Decimal import ru.dbotthepony.mc.otm.container.ItemStackKey import ru.dbotthepony.mc.otm.container.asKey import ru.dbotthepony.mc.otm.data.codec.DecimalCodec +import ru.dbotthepony.mc.otm.data.codec.EnhancedItemStackCodecs import ru.dbotthepony.mc.otm.data.codec.minRange import ru.dbotthepony.mc.otm.graph.matter.MatterNode import ru.dbotthepony.mc.otm.menu.matter.MatterEntanglerMenu @@ -53,7 +54,7 @@ class MatterEntanglerBlockEntity(blockPos: BlockPos, blockState: BlockState) : M companion object { val CODEC: Codec = RecordCodecBuilder.create { it.group( - ItemStack.CODEC.fieldOf("itemStack").forGetter(ItemJob::itemStack), + EnhancedItemStackCodecs.CODEC.fieldOf("itemStack").forGetter(ItemJob::itemStack), DecimalCodec.minRange(Decimal.ZERO).fieldOf("matter").forGetter(Job::matter), Codec.DOUBLE.minRange(0.0).fieldOf("ticks").forGetter(ItemJob::ticks), Codec.FLOAT.minRange(0f).optionalFieldOf("experience", 0f).forGetter(Job::experience) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterReplicatorBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterReplicatorBlockEntity.kt index 0d99da45b..0e362dd67 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterReplicatorBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterReplicatorBlockEntity.kt @@ -30,6 +30,7 @@ import ru.dbotthepony.mc.otm.container.slotted.SlottedContainer import ru.dbotthepony.mc.otm.util.math.Decimal import ru.dbotthepony.mc.otm.util.otmRandom import ru.dbotthepony.mc.otm.data.codec.DecimalCodec +import ru.dbotthepony.mc.otm.data.codec.EnhancedItemStackCodecs import ru.dbotthepony.mc.otm.data.codec.minRange import ru.dbotthepony.mc.otm.graph.matter.MatterNode import ru.dbotthepony.mc.otm.matter.MatterManager @@ -55,7 +56,7 @@ class MatterReplicatorBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : val CODEC: Codec by lazy { RecordCodecBuilder.create { it.group( - ItemStack.CODEC.fieldOf("Item").forGetter(ReplicatorJob::itemStack), + EnhancedItemStackCodecs.CODEC.fieldOf("Item").forGetter(ReplicatorJob::itemStack), DecimalCodec.minRange(Decimal.ZERO).fieldOf("matterPerTick").forGetter(ReplicatorJob::matterPerTick), UUIDUtil.CODEC.fieldOf("task").forGetter(ReplicatorJob::task), DecimalCodec.minRange(Decimal.ZERO).fieldOf("matterValue").forGetter(ReplicatorJob::matterValue), diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/container/EnhancedContainer.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/container/EnhancedContainer.kt index 9fafb973b..3301ad261 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/container/EnhancedContainer.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/container/EnhancedContainer.kt @@ -13,6 +13,7 @@ import net.minecraft.world.item.ItemStack import net.neoforged.neoforge.common.util.INBTSerializable import org.apache.logging.log4j.LogManager import ru.dbotthepony.mc.otm.container.slotted.SlottedContainer +import ru.dbotthepony.mc.otm.data.codec.EnhancedItemStackCodecs import ru.dbotthepony.mc.otm.util.isNotEmpty import ru.dbotthepony.mc.otm.util.set @@ -133,7 +134,7 @@ abstract class EnhancedContainer(private val size: Int) if (items[i].isNotEmpty) { attached = true - tag["item"] = ItemStack.OPTIONAL_CODEC.encodeStart(ops, items[i]) + tag["item"] = EnhancedItemStackCodecs.OPTIONAL_CODEC.encodeStart(ops, items[i]) .getOrThrow { RuntimeException("Unable to serialize item ${items[i]} at slot $i: $it") } } @@ -165,7 +166,7 @@ abstract class EnhancedContainer(private val size: Int) if (!seenSlots.add(slot)) continue if ("item" in element) { - ItemStack.OPTIONAL_CODEC.decode(ops, element["item"]) + EnhancedItemStackCodecs.OPTIONAL_CODEC.decode(ops, element["item"]) .map { it.first } .ifError { LOGGER.error("Failed to deserialize item stack in slot $slot: ${it.message()}") } .ifSuccess { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/container/slotted/ContainerSlot.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/container/slotted/ContainerSlot.kt index ec1139e49..6f629403c 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/container/slotted/ContainerSlot.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/container/slotted/ContainerSlot.kt @@ -8,6 +8,7 @@ import net.minecraft.world.item.ItemStack import net.neoforged.neoforge.common.util.INBTSerializable import org.apache.logging.log4j.LogManager import ru.dbotthepony.mc.otm.container.IAutomatedContainerSlot +import ru.dbotthepony.mc.otm.data.codec.EnhancedItemStackCodecs import ru.dbotthepony.mc.otm.util.isNotEmpty import ru.dbotthepony.mc.otm.util.set import ru.dbotthepony.mc.otm.data.getOrNull @@ -97,13 +98,13 @@ open class ContainerSlot( override fun serializeNBT(provider: HolderLookup.Provider): CompoundTag { return CompoundTag().also { - it["item"] = ItemStack.OPTIONAL_CODEC.encodeStart(provider.createSerializationContext(NbtOps.INSTANCE), item) + it["item"] = EnhancedItemStackCodecs.OPTIONAL_CODEC.encodeStart(provider.createSerializationContext(NbtOps.INSTANCE), item) .getOrThrow { RuntimeException("Unable to serialize $item in slot $slot: $it") } } } override fun deserializeNBT(provider: HolderLookup.Provider, nbt: CompoundTag) { - _item = ItemStack.OPTIONAL_CODEC.decode(provider.createSerializationContext(NbtOps.INSTANCE), nbt["item"]) + _item = EnhancedItemStackCodecs.OPTIONAL_CODEC.decode(provider.createSerializationContext(NbtOps.INSTANCE), nbt["item"]) .ifError { LOGGER.error("Unable to deserialize item at slot $slot: ${it.message()}") } .getOrNull()?.first ?: ItemStack.EMPTY diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/container/slotted/SlottedContainer.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/container/slotted/SlottedContainer.kt index e1561b3b9..bad20a22b 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/container/slotted/SlottedContainer.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/container/slotted/SlottedContainer.kt @@ -23,6 +23,7 @@ import ru.dbotthepony.mc.otm.container.IAutomatedContainer import ru.dbotthepony.mc.otm.container.IFilteredContainerSlot import ru.dbotthepony.mc.otm.container.ItemFilter import ru.dbotthepony.mc.otm.container.balance +import ru.dbotthepony.mc.otm.data.codec.EnhancedItemStackCodecs import ru.dbotthepony.mc.otm.util.isNotEmpty import ru.dbotthepony.mc.otm.util.set import ru.dbotthepony.mc.otm.data.codec.minRange @@ -183,7 +184,7 @@ class SlottedContainer( companion object { val CODEC: Codec = RecordCodecBuilder.create { it.group( - ItemStack.OPTIONAL_CODEC.fieldOf("item").forGetter { it.item }, + EnhancedItemStackCodecs.OPTIONAL_CODEC.fieldOf("item").forGetter { it.item }, Codec.INT.minRange(0).fieldOf("slot").forGetter { it.slot }, ).apply(it, SlottedContainer::LegacySerializedItem) } @@ -227,7 +228,7 @@ class SlottedContainer( for (entry in lostItems) { if ("item" in entry) { - ItemStack.OPTIONAL_CODEC.decode(provider, entry["item"]) + EnhancedItemStackCodecs.OPTIONAL_CODEC.decode(provider, entry["item"]) .ifError { LOGGER.warn("Unable to deserialize 'lost' item: ${it.message()}") } .ifSuccess { if (it.first.isNotEmpty) result.add(it.first) } } @@ -275,7 +276,7 @@ class SlottedContainer( slots[slot].item = item bitmap[slot] = item.isNotEmpty } else if (item.isNotEmpty) { - ItemStack.CODEC.encodeStart(provider.createSerializationContext(NbtOps.INSTANCE), item) + EnhancedItemStackCodecs.CODEC.encodeStart(provider.createSerializationContext(NbtOps.INSTANCE), item) .ifError { LOGGER.warn("Unable to serialize 'lost' item: ${it.message()}") } .ifSuccess { s -> this.provider = provider diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/data/codec/EnhancedItemStackCodecs.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/data/codec/EnhancedItemStackCodecs.kt new file mode 100644 index 000000000..a8bc96564 --- /dev/null +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/data/codec/EnhancedItemStackCodecs.kt @@ -0,0 +1,26 @@ +package ru.dbotthepony.mc.otm.data.codec + +import com.mojang.serialization.Codec +import com.mojang.serialization.codecs.RecordCodecBuilder +import net.minecraft.core.component.DataComponentPatch +import net.minecraft.util.ExtraCodecs +import net.minecraft.world.item.ItemStack +import java.util.* +import kotlin.jvm.optionals.getOrElse + +object EnhancedItemStackCodecs { + val CODEC: Codec by lazy { + RecordCodecBuilder.create { + it.group( + ItemStack.ITEM_NON_AIR_CODEC.fieldOf("id").forGetter(ItemStack::getItemHolder), + Codec.INT.minRange(1).fieldOf("count").orElse(1).forGetter(ItemStack::getCount), + DataComponentPatch.CODEC.optionalFieldOf("components", DataComponentPatch.EMPTY).forGetter(ItemStack::getComponentsPatch) + ).apply(it, ::ItemStack) + } + } + + val OPTIONAL_CODEC: Codec by lazy { + ExtraCodecs.optionalEmptyMap(CODEC) + .xmap({ it.getOrElse { ItemStack.EMPTY } }, { if (it.isEmpty) Optional.empty() else Optional.of(it) }) + } +} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/data/condition/ItemInInventoryCondition.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/data/condition/ItemInInventoryCondition.kt index 5f9c68dde..a18ce2413 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/data/condition/ItemInInventoryCondition.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/data/condition/ItemInInventoryCondition.kt @@ -10,6 +10,7 @@ import net.minecraft.world.level.storage.loot.predicates.LootItemCondition import net.minecraft.world.level.storage.loot.predicates.LootItemConditionType import ru.dbotthepony.mc.otm.capability.items import ru.dbotthepony.kommons.collect.filter +import ru.dbotthepony.mc.otm.data.codec.EnhancedItemStackCodecs import ru.dbotthepony.mc.otm.data.get import ru.dbotthepony.mc.otm.registry.data.MLootItemConditions @@ -48,7 +49,7 @@ data class ItemInInventoryCondition( val CODEC: MapCodec by lazy { RecordCodecBuilder.mapCodec { it.group( - ItemStack.CODEC.fieldOf("item").forGetter(ItemInInventoryCondition::item), + EnhancedItemStackCodecs.CODEC.fieldOf("item").forGetter(ItemInInventoryCondition::item), Codec.BOOL.optionalFieldOf("matchComponents", false).forGetter(ItemInInventoryCondition::matchComponents), Codec.BOOL.optionalFieldOf("matchCosmetics", false).forGetter(ItemInInventoryCondition::matchCosmetics), ).apply(it, ::ItemInInventoryCondition) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/recipe/MatterEntanglerRecipe.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/recipe/MatterEntanglerRecipe.kt index 0e3cd3295..4001d6454 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/recipe/MatterEntanglerRecipe.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/recipe/MatterEntanglerRecipe.kt @@ -22,6 +22,7 @@ import ru.dbotthepony.kommons.collect.filterNotNull import ru.dbotthepony.kommons.collect.map import ru.dbotthepony.mc.otm.util.math.Decimal import ru.dbotthepony.mc.otm.data.codec.DecimalCodec +import ru.dbotthepony.mc.otm.data.codec.EnhancedItemStackCodecs import ru.dbotthepony.mc.otm.data.codec.minRange import ru.dbotthepony.mc.otm.network.StreamCodecs import ru.dbotthepony.mc.otm.network.optional @@ -168,7 +169,7 @@ open class MatterEntanglerRecipe( ShapedRecipePattern.MAP_CODEC.fieldOf("ingredients").forGetter(MatterEntanglerRecipe::ingredients), DecimalCodec.minRange(Decimal.ZERO).fieldOf("matter").forGetter(MatterEntanglerRecipe::matter), Codec.DOUBLE.minRange(0.0).fieldOf("ticks").forGetter(MatterEntanglerRecipe::ticks), - ItemStack.CODEC.fieldOf("result").forGetter(MatterEntanglerRecipe::result), + EnhancedItemStackCodecs.CODEC.fieldOf("result").forGetter(MatterEntanglerRecipe::result), Codec.FLOAT.minRange(0f).optionalFieldOf("experience", 0f).forGetter(MatterEntanglerRecipe::experience), (DataComponentType.CODEC as Codec>).optionalFieldOf("uuidKey").forGetter(MatterEntanglerRecipe::uuidKey), UUIDUtil.STRING_CODEC.optionalFieldOf("fixedUuid").forGetter(MatterEntanglerRecipe::fixedUuid) From a956d9a34f089f22c6f944c05e9637a3cc007cf3 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Mon, 31 Mar 2025 09:32:32 +0700 Subject: [PATCH 3/3] Move feature to world subpackage --- src/data/kotlin/ru/dbotthepony/mc/otm/datagen/WorldGen.kt | 2 +- .../ru/dbotthepony/mc/otm/registry/data/MWorldGenFeatures.kt | 2 +- .../mc/otm/server/{ => world}/feature/BlackHolePlacer.kt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename src/main/kotlin/ru/dbotthepony/mc/otm/server/{ => world}/feature/BlackHolePlacer.kt (96%) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/WorldGen.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/WorldGen.kt index f3acfdf65..559c48235 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/WorldGen.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/WorldGen.kt @@ -29,7 +29,7 @@ import ru.dbotthepony.mc.otm.data.world.EllipsoidPlacement import ru.dbotthepony.mc.otm.data.world.StandardDeviationHeightProvider import ru.dbotthepony.mc.otm.registry.game.MBlocks import ru.dbotthepony.mc.otm.registry.data.MWorldGenFeatures -import ru.dbotthepony.mc.otm.server.feature.BlackHolePlacerFeature +import ru.dbotthepony.mc.otm.server.world.feature.BlackHolePlacerFeature private object ConfiguredFeatures { val TRITANIUM_ORE = key("tritanium_ore") diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/data/MWorldGenFeatures.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/data/MWorldGenFeatures.kt index 570b083d2..e41c5f59a 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/data/MWorldGenFeatures.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/data/MWorldGenFeatures.kt @@ -3,7 +3,7 @@ package ru.dbotthepony.mc.otm.registry.data import net.minecraft.core.registries.BuiltInRegistries import net.neoforged.bus.api.IEventBus import ru.dbotthepony.mc.otm.registry.MDeferredRegister -import ru.dbotthepony.mc.otm.server.feature.BlackHolePlacerFeature +import ru.dbotthepony.mc.otm.server.world.feature.BlackHolePlacerFeature object MWorldGenFeatures { private val registry = MDeferredRegister(BuiltInRegistries.FEATURE) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/server/feature/BlackHolePlacer.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/server/world/feature/BlackHolePlacer.kt similarity index 96% rename from src/main/kotlin/ru/dbotthepony/mc/otm/server/feature/BlackHolePlacer.kt rename to src/main/kotlin/ru/dbotthepony/mc/otm/server/world/feature/BlackHolePlacer.kt index bb06edb80..a3dcb0af6 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/server/feature/BlackHolePlacer.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/server/world/feature/BlackHolePlacer.kt @@ -1,4 +1,4 @@ -package ru.dbotthepony.mc.otm.server.feature +package ru.dbotthepony.mc.otm.server.world.feature import com.mojang.serialization.codecs.RecordCodecBuilder import net.minecraft.world.level.levelgen.feature.Feature