diff --git a/src/main/java/ru/dbotthepony/mc/otm/capability/MatteryCapability.java b/src/main/java/ru/dbotthepony/mc/otm/capability/MatteryCapability.java index fbea8708e..dc0966b1f 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/capability/MatteryCapability.java +++ b/src/main/java/ru/dbotthepony/mc/otm/capability/MatteryCapability.java @@ -4,6 +4,7 @@ import mekanism.api.energy.IStrictEnergyHandler; import net.minecraftforge.common.capabilities.*; import org.jetbrains.annotations.NotNull; import ru.dbotthepony.mc.otm.capability.drive.IMatteryDrive; +import ru.dbotthepony.mc.otm.capability.energy.IMatteryEnergyStorage; import ru.dbotthepony.mc.otm.capability.matter.IMatterHandler; import ru.dbotthepony.mc.otm.capability.matter.IReplicationTaskProvider; import ru.dbotthepony.mc.otm.capability.matter.IPatternStorage; diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/ServerConfig.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/ServerConfig.kt index 3bac5a3ce..38d82e1ab 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/ServerConfig.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/ServerConfig.kt @@ -10,7 +10,7 @@ import ru.dbotthepony.mc.otm.block.entity.matter.MatterDecomposerBlockEntity import ru.dbotthepony.mc.otm.block.entity.matter.MatterRecyclerBlockEntity import ru.dbotthepony.mc.otm.block.entity.matter.MatterReplicatorBlockEntity import ru.dbotthepony.mc.otm.block.entity.matter.MatterScannerBlockEntity -import ru.dbotthepony.mc.otm.capability.BlockEnergyStorageImpl +import ru.dbotthepony.mc.otm.capability.energy.BlockEnergyStorageImpl import ru.dbotthepony.mc.otm.core.Decimal import ru.dbotthepony.mc.otm.core.defineDecimal import ru.dbotthepony.mc.otm.item.EnergySwordItem diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/EnderTeleporterFeature.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/EnderTeleporterFeature.kt index 453e38637..ddfc81482 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/EnderTeleporterFeature.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/EnderTeleporterFeature.kt @@ -30,7 +30,7 @@ import ru.dbotthepony.mc.otm.ServerConfig import ru.dbotthepony.mc.otm.android.AndroidActiveFeature import ru.dbotthepony.mc.otm.android.AndroidResearchManager import ru.dbotthepony.mc.otm.capability.MatteryPlayerCapability -import ru.dbotthepony.mc.otm.capability.extractEnergyInnerExact +import ru.dbotthepony.mc.otm.capability.energy.extractEnergyInnerExact import ru.dbotthepony.mc.otm.capability.matteryPlayer import ru.dbotthepony.mc.otm.client.render.DynamicBufferSource import ru.dbotthepony.mc.otm.client.render.ResearchIcons diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/ItemMagnetFeature.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/ItemMagnetFeature.kt index 55f579594..8607776d1 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/ItemMagnetFeature.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/ItemMagnetFeature.kt @@ -5,25 +5,19 @@ import net.minecraft.ChatFormatting import net.minecraft.client.multiplayer.ClientLevel import net.minecraft.network.FriendlyByteBuf import net.minecraft.resources.ResourceLocation -import net.minecraft.server.level.ServerLevel -import net.minecraft.server.level.ServerPlayer import net.minecraft.world.entity.Entity import net.minecraft.world.entity.item.ItemEntity -import net.minecraftforge.event.ForgeEventFactory import net.minecraftforge.network.NetworkEvent import ru.dbotthepony.mc.otm.OverdriveThatMatters import ru.dbotthepony.mc.otm.ServerConfig import ru.dbotthepony.mc.otm.android.AndroidResearchManager import ru.dbotthepony.mc.otm.android.AndroidSwitchableFeature import ru.dbotthepony.mc.otm.capability.MatteryPlayerCapability -import ru.dbotthepony.mc.otm.capability.extractEnergyInner -import ru.dbotthepony.mc.otm.capability.extractEnergyInnerExact +import ru.dbotthepony.mc.otm.capability.energy.extractEnergyInnerExact import ru.dbotthepony.mc.otm.client.minecraft import ru.dbotthepony.mc.otm.client.render.ResearchIcons -import ru.dbotthepony.mc.otm.core.TextComponent import ru.dbotthepony.mc.otm.core.Vector import ru.dbotthepony.mc.otm.core.formatPower -import ru.dbotthepony.mc.otm.core.formatSi import ru.dbotthepony.mc.otm.core.getEntitiesInEllipsoid import ru.dbotthepony.mc.otm.core.minus import ru.dbotthepony.mc.otm.core.plus diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/JumpBoostFeature.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/JumpBoostFeature.kt index 6490a1816..767e72d5f 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/JumpBoostFeature.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/JumpBoostFeature.kt @@ -3,7 +3,6 @@ package ru.dbotthepony.mc.otm.android.feature import com.mojang.blaze3d.systems.RenderSystem import com.mojang.blaze3d.vertex.PoseStack import net.minecraft.ChatFormatting -import net.minecraft.nbt.CompoundTag import net.minecraft.network.FriendlyByteBuf import net.minecraft.resources.ResourceLocation import net.minecraft.server.level.ServerPlayer @@ -15,13 +14,12 @@ import ru.dbotthepony.mc.otm.ServerConfig import ru.dbotthepony.mc.otm.android.AndroidResearchManager import ru.dbotthepony.mc.otm.android.AndroidSwitchableFeature import ru.dbotthepony.mc.otm.capability.MatteryPlayerCapability -import ru.dbotthepony.mc.otm.capability.extractEnergyInnerExact +import ru.dbotthepony.mc.otm.capability.energy.extractEnergyInnerExact import ru.dbotthepony.mc.otm.capability.matteryPlayer import ru.dbotthepony.mc.otm.client.render.ResearchIcons import ru.dbotthepony.mc.otm.core.Vector import ru.dbotthepony.mc.otm.core.formatPower import ru.dbotthepony.mc.otm.core.plus -import ru.dbotthepony.mc.otm.core.set import ru.dbotthepony.mc.otm.network.MatteryPacket import ru.dbotthepony.mc.otm.network.MatteryPlayerNetworkChannel import ru.dbotthepony.mc.otm.network.enqueueWork diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/NanobotsArmorFeature.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/NanobotsArmorFeature.kt index f1f9723d9..f6449b8b2 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/NanobotsArmorFeature.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/NanobotsArmorFeature.kt @@ -8,7 +8,7 @@ import ru.dbotthepony.mc.otm.OverdriveThatMatters import ru.dbotthepony.mc.otm.android.AndroidFeature import ru.dbotthepony.mc.otm.android.AndroidResearchManager import ru.dbotthepony.mc.otm.capability.MatteryPlayerCapability -import ru.dbotthepony.mc.otm.capability.extractEnergyInnerExact +import ru.dbotthepony.mc.otm.capability.energy.extractEnergyInnerExact import ru.dbotthepony.mc.otm.core.Decimal import ru.dbotthepony.mc.otm.registry.AndroidFeatures import ru.dbotthepony.mc.otm.registry.StatNames diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/NightVisionFeature.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/NightVisionFeature.kt index 4eeed3849..e41db1702 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/NightVisionFeature.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/NightVisionFeature.kt @@ -6,7 +6,7 @@ import net.minecraft.world.effect.MobEffects import ru.dbotthepony.mc.otm.ServerConfig import ru.dbotthepony.mc.otm.android.AndroidSwitchableFeature import ru.dbotthepony.mc.otm.capability.MatteryPlayerCapability -import ru.dbotthepony.mc.otm.capability.extractEnergyInnerExact +import ru.dbotthepony.mc.otm.capability.energy.extractEnergyInnerExact import ru.dbotthepony.mc.otm.client.render.ResearchIcons import ru.dbotthepony.mc.otm.registry.AndroidFeatures diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/ShockwaveFeature.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/ShockwaveFeature.kt index 1a6d43de2..4b83bc39f 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/ShockwaveFeature.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/ShockwaveFeature.kt @@ -17,7 +17,7 @@ import ru.dbotthepony.mc.otm.ServerConfig import ru.dbotthepony.mc.otm.android.AndroidResearchManager import ru.dbotthepony.mc.otm.android.AndroidSwitchableFeature import ru.dbotthepony.mc.otm.capability.MatteryPlayerCapability -import ru.dbotthepony.mc.otm.capability.extractEnergyInnerExact +import ru.dbotthepony.mc.otm.capability.energy.extractEnergyInnerExact import ru.dbotthepony.mc.otm.client.render.ResearchIcons import ru.dbotthepony.mc.otm.core.Vector import ru.dbotthepony.mc.otm.core.formatPower diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/AndroidStationBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/AndroidStationBlock.kt index 2767cd147..d128ac6e1 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/AndroidStationBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/AndroidStationBlock.kt @@ -21,10 +21,9 @@ import net.minecraft.world.phys.shapes.CollisionContext import net.minecraft.world.phys.shapes.VoxelShape import ru.dbotthepony.mc.otm.block.entity.AndroidStationBlockEntity import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity -import ru.dbotthepony.mc.otm.block.entity.MatteryWorkerBlockEntity import ru.dbotthepony.mc.otm.block.entity.WorkerState import ru.dbotthepony.mc.otm.capability.MatteryCapability -import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage import ru.dbotthepony.mc.otm.core.orNull import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.shapes.BlockShapes @@ -89,4 +88,4 @@ class AndroidStationBlock : MatteryBlock(), EntityBlock { companion object { private val SHAPE = BlockShapes.ANDROID_STATION.computeShape() } -} \ No newline at end of file +} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/ChemicalGeneratorBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/ChemicalGeneratorBlock.kt index 294569aca..8adae472c 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/ChemicalGeneratorBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/ChemicalGeneratorBlock.kt @@ -22,8 +22,8 @@ import net.minecraft.world.phys.shapes.VoxelShape import ru.dbotthepony.mc.otm.block.entity.ChemicalGeneratorBlockEntity import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity import ru.dbotthepony.mc.otm.block.entity.WorkerState -import ru.dbotthepony.mc.otm.capability.GeneratorEnergyStorage -import ru.dbotthepony.mc.otm.capability.ItemEnergyStorageImpl +import ru.dbotthepony.mc.otm.capability.energy.GeneratorEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.ItemEnergyStorageImpl import ru.dbotthepony.mc.otm.container.MatteryContainer import ru.dbotthepony.mc.otm.core.TranslatableComponent import ru.dbotthepony.mc.otm.core.map diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/PlatePressBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/PlatePressBlock.kt index 910a7581a..1e54ad9b9 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/PlatePressBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/PlatePressBlock.kt @@ -19,7 +19,6 @@ import net.minecraft.world.phys.shapes.VoxelShape import ru.dbotthepony.mc.otm.block.entity.MatteryWorkerBlockEntity import ru.dbotthepony.mc.otm.block.entity.PlatePressBlockEntity import ru.dbotthepony.mc.otm.block.entity.WorkerState -import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.shapes.BlockShapes diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/AndroidStationBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/AndroidStationBlockEntity.kt index ec79fb785..49db8e737 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/AndroidStationBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/AndroidStationBlockEntity.kt @@ -12,7 +12,7 @@ import net.minecraft.world.level.block.state.BlockState import net.minecraft.world.phys.AABB import net.minecraftforge.common.ForgeConfigSpec import ru.dbotthepony.mc.otm.capability.MatteryCapability -import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage import ru.dbotthepony.mc.otm.core.Decimal import ru.dbotthepony.mc.otm.core.DecimalConfigValue import ru.dbotthepony.mc.otm.core.defineDecimal diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/BatteryBankBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/BatteryBankBlockEntity.kt index dab1c48a2..0a7aebe52 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/BatteryBankBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/BatteryBankBlockEntity.kt @@ -23,6 +23,7 @@ import ru.dbotthepony.mc.otm.block.BatteryBankBlock import ru.dbotthepony.mc.otm.block.IDroppableContainer import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock import ru.dbotthepony.mc.otm.capability.* +import ru.dbotthepony.mc.otm.capability.energy.IMatteryEnergyStorage import ru.dbotthepony.mc.otm.compat.mekanism.Mattery2MekanismEnergyWrapper import ru.dbotthepony.mc.otm.container.MatteryContainer import ru.dbotthepony.mc.otm.container.MatteryContainerHooks diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/ChemicalGeneratorBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/ChemicalGeneratorBlockEntity.kt index 612303fda..3a492a89c 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/ChemicalGeneratorBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/ChemicalGeneratorBlockEntity.kt @@ -22,6 +22,7 @@ import ru.dbotthepony.mc.otm.* import ru.dbotthepony.mc.otm.block.IDroppableContainer import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock import ru.dbotthepony.mc.otm.capability.* +import ru.dbotthepony.mc.otm.capability.energy.GeneratorEnergyStorage import ru.dbotthepony.mc.otm.container.MatteryContainer import ru.dbotthepony.mc.otm.container.MatteryContainerHooks import ru.dbotthepony.mc.otm.core.* diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/EnergyCounterBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/EnergyCounterBlockEntity.kt index 613ee4eb9..17d29a0dd 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/EnergyCounterBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/EnergyCounterBlockEntity.kt @@ -19,6 +19,7 @@ import net.minecraftforge.energy.IEnergyStorage import ru.dbotthepony.mc.otm.* import ru.dbotthepony.mc.otm.block.EnergyCounterBlock import ru.dbotthepony.mc.otm.capability.* +import ru.dbotthepony.mc.otm.capability.energy.IMatteryEnergyStorage import ru.dbotthepony.mc.otm.compat.mekanism.Mattery2MekanismEnergyWrapper import ru.dbotthepony.mc.otm.core.* import ru.dbotthepony.mc.otm.menu.EnergyCounterMenu diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/EnergyServoBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/EnergyServoBlockEntity.kt index cdcff1a5b..b0f07a5e1 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/EnergyServoBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/EnergyServoBlockEntity.kt @@ -14,7 +14,7 @@ import net.minecraftforge.common.capabilities.Capability import net.minecraftforge.common.capabilities.ForgeCapabilities import net.minecraftforge.common.util.LazyOptional import ru.dbotthepony.mc.otm.block.IDroppableContainer -import ru.dbotthepony.mc.otm.capability.IMatteryEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.IMatteryEnergyStorage import ru.dbotthepony.mc.otm.capability.MatteryCapability import ru.dbotthepony.mc.otm.capability.canSetBatteryMattery import ru.dbotthepony.mc.otm.capability.energy diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/MatteryPoweredBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/MatteryPoweredBlockEntity.kt index 4200a73ad..51745fd3e 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/MatteryPoweredBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/MatteryPoweredBlockEntity.kt @@ -15,6 +15,9 @@ import net.minecraftforge.common.capabilities.Capability import net.minecraftforge.common.capabilities.ForgeCapabilities import net.minecraftforge.common.util.LazyOptional import ru.dbotthepony.mc.otm.capability.* +import ru.dbotthepony.mc.otm.capability.energy.BlockEnergyStorageImpl +import ru.dbotthepony.mc.otm.capability.energy.IMatteryEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.ItemEnergyStorageImpl import ru.dbotthepony.mc.otm.container.MatteryContainer import ru.dbotthepony.mc.otm.core.Decimal import ru.dbotthepony.mc.otm.core.ifHas diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/MatteryWorkerBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/MatteryWorkerBlockEntity.kt index f37d6dc87..e9486f406 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/MatteryWorkerBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/MatteryWorkerBlockEntity.kt @@ -10,7 +10,7 @@ import net.minecraft.world.item.ItemStack import net.minecraft.world.item.TooltipFlag import net.minecraft.world.level.BlockGetter import net.minecraft.world.level.block.Block -import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage import ru.dbotthepony.mc.otm.core.* import ru.dbotthepony.mc.otm.core.map diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/PlatePressBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/PlatePressBlockEntity.kt index d64a5e533..f7d36a62c 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/PlatePressBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/PlatePressBlockEntity.kt @@ -16,7 +16,7 @@ import net.minecraftforge.common.util.LazyOptional import ru.dbotthepony.mc.otm.ServerConfig import ru.dbotthepony.mc.otm.block.IDroppableContainer import ru.dbotthepony.mc.otm.core.TranslatableComponent -import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage import ru.dbotthepony.mc.otm.container.MatteryContainer import ru.dbotthepony.mc.otm.container.MatteryContainerHooks import ru.dbotthepony.mc.otm.core.Decimal diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterBottlerBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterBottlerBlockEntity.kt index dbe384158..b4e8b6f1b 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterBottlerBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterBottlerBlockEntity.kt @@ -22,9 +22,9 @@ import ru.dbotthepony.mc.otm.block.IDroppableContainer import ru.dbotthepony.mc.otm.block.matter.MatterBottlerBlock import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity import ru.dbotthepony.mc.otm.block.entity.WorkerState -import ru.dbotthepony.mc.otm.capability.BlockEnergyStorageImpl +import ru.dbotthepony.mc.otm.capability.energy.BlockEnergyStorageImpl import ru.dbotthepony.mc.otm.capability.MatteryCapability -import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage import ru.dbotthepony.mc.otm.capability.matter.IMatterHandler import ru.dbotthepony.mc.otm.capability.matter.MatterDirection import ru.dbotthepony.mc.otm.capability.matter.MatterHandlerImpl diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterDecomposerBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterDecomposerBlockEntity.kt index e691f44ad..1cb743713 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterDecomposerBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterDecomposerBlockEntity.kt @@ -20,9 +20,9 @@ import net.minecraftforge.items.IItemHandler import ru.dbotthepony.mc.otm.ConciseBalanceValues import ru.dbotthepony.mc.otm.block.IDroppableContainer import ru.dbotthepony.mc.otm.block.entity.MatteryWorkerBlockEntity -import ru.dbotthepony.mc.otm.capability.BlockEnergyStorageImpl +import ru.dbotthepony.mc.otm.capability.energy.BlockEnergyStorageImpl import ru.dbotthepony.mc.otm.capability.MatteryCapability -import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage import ru.dbotthepony.mc.otm.capability.matter.IMatterHandler import ru.dbotthepony.mc.otm.capability.matter.MatterDirection import ru.dbotthepony.mc.otm.capability.matter.MatterHandlerImpl diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterRecyclerBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterRecyclerBlockEntity.kt index dab3fded8..242635b4a 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterRecyclerBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterRecyclerBlockEntity.kt @@ -20,9 +20,9 @@ import net.minecraftforge.common.util.LazyOptional import ru.dbotthepony.mc.otm.ConciseBalanceValues import ru.dbotthepony.mc.otm.block.IDroppableContainer import ru.dbotthepony.mc.otm.block.entity.MatteryWorkerBlockEntity -import ru.dbotthepony.mc.otm.capability.BlockEnergyStorageImpl +import ru.dbotthepony.mc.otm.capability.energy.BlockEnergyStorageImpl import ru.dbotthepony.mc.otm.capability.MatteryCapability -import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage import ru.dbotthepony.mc.otm.capability.matter.IMatterHandler import ru.dbotthepony.mc.otm.capability.matter.MatterDirection import ru.dbotthepony.mc.otm.capability.matter.MatterHandlerImpl 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 ca1961477..a74cc615a 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 @@ -19,9 +19,9 @@ import net.minecraftforge.common.util.LazyOptional import ru.dbotthepony.mc.otm.ConciseBalanceValues import ru.dbotthepony.mc.otm.block.IDroppableContainer import ru.dbotthepony.mc.otm.block.entity.MatteryWorkerBlockEntity -import ru.dbotthepony.mc.otm.capability.BlockEnergyStorageImpl +import ru.dbotthepony.mc.otm.capability.energy.BlockEnergyStorageImpl import ru.dbotthepony.mc.otm.capability.MatteryCapability -import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage import ru.dbotthepony.mc.otm.capability.matter.* import ru.dbotthepony.mc.otm.container.MatteryContainer import ru.dbotthepony.mc.otm.container.MatteryContainerHandler diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterScannerBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterScannerBlockEntity.kt index b9bb50646..8f7ee8d45 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterScannerBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterScannerBlockEntity.kt @@ -19,9 +19,9 @@ import net.minecraftforge.common.util.LazyOptional import ru.dbotthepony.mc.otm.ConciseBalanceValues import ru.dbotthepony.mc.otm.block.IDroppableContainer import ru.dbotthepony.mc.otm.block.entity.MatteryWorkerBlockEntity -import ru.dbotthepony.mc.otm.capability.BlockEnergyStorageImpl +import ru.dbotthepony.mc.otm.capability.energy.BlockEnergyStorageImpl import ru.dbotthepony.mc.otm.capability.MatteryCapability -import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage import ru.dbotthepony.mc.otm.capability.matter.IPatternState import ru.dbotthepony.mc.otm.capability.matter.PatternState import ru.dbotthepony.mc.otm.container.MatteryContainer diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/DriveRackBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/DriveRackBlockEntity.kt index 4ab254faa..9751a6e5b 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/DriveRackBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/DriveRackBlockEntity.kt @@ -17,7 +17,7 @@ import ru.dbotthepony.mc.otm.ServerConfig import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity import ru.dbotthepony.mc.otm.graph.storage.BasicStorageGraphNode import ru.dbotthepony.mc.otm.capability.MatteryCapability -import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage import ru.dbotthepony.mc.otm.container.MatteryContainer import ru.dbotthepony.mc.otm.menu.DriveRackMenu import ru.dbotthepony.mc.otm.core.map diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/DriveViewerBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/DriveViewerBlockEntity.kt index 3f17d6fd1..0fd68dfbd 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/DriveViewerBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/DriveViewerBlockEntity.kt @@ -1,6 +1,5 @@ package ru.dbotthepony.mc.otm.block.entity.storage -import net.minecraft.MethodsReturnNonnullByDefault import net.minecraft.core.BlockPos import net.minecraft.nbt.CompoundTag import net.minecraft.network.chat.Component @@ -14,20 +13,17 @@ import net.minecraft.world.level.block.state.BlockState import ru.dbotthepony.mc.otm.OverdriveThatMatters import ru.dbotthepony.mc.otm.ServerConfig import ru.dbotthepony.mc.otm.block.IDroppableContainer -import ru.dbotthepony.mc.otm.core.TranslatableComponent import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity import ru.dbotthepony.mc.otm.block.storage.DriveViewerBlock import ru.dbotthepony.mc.otm.block.entity.WorkerState import ru.dbotthepony.mc.otm.capability.MatteryCapability -import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage import ru.dbotthepony.mc.otm.container.MatteryContainer import ru.dbotthepony.mc.otm.menu.DriveViewerMenu import ru.dbotthepony.mc.otm.registry.MBlockEntities -import ru.dbotthepony.mc.otm.container.set import ru.dbotthepony.mc.otm.core.map import ru.dbotthepony.mc.otm.core.set import ru.dbotthepony.mc.otm.registry.MBlocks -import javax.annotation.ParametersAreNonnullByDefault class DriveViewerBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : MatteryPoweredBlockEntity(MBlockEntities.DRIVE_VIEWER, p_155229_, p_155230_), IDroppableContainer { override fun setChanged() { @@ -94,4 +90,4 @@ class DriveViewerBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : Matte fun tick() { batteryChargeLoop() } -} \ No newline at end of file +} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/ItemMonitorBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/ItemMonitorBlockEntity.kt index 62bd31287..571dbc5d0 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/ItemMonitorBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/ItemMonitorBlockEntity.kt @@ -5,7 +5,6 @@ import net.minecraft.core.BlockPos import net.minecraft.core.Direction import net.minecraft.core.NonNullList import net.minecraft.nbt.CompoundTag -import net.minecraft.nbt.StringTag import net.minecraft.network.FriendlyByteBuf import net.minecraft.network.chat.Component import net.minecraft.server.level.ServerLevel @@ -30,13 +29,12 @@ import ru.dbotthepony.mc.otm.ServerConfig import ru.dbotthepony.mc.otm.core.TranslatableComponent import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity import ru.dbotthepony.mc.otm.capability.MatteryCapability -import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage import ru.dbotthepony.mc.otm.client.minecraft import ru.dbotthepony.mc.otm.container.MatteryContainer import ru.dbotthepony.mc.otm.container.get import ru.dbotthepony.mc.otm.graph.storage.BasicStorageGraphNode import ru.dbotthepony.mc.otm.graph.storage.StorageNetworkGraph -import ru.dbotthepony.mc.otm.core.ifHas import ru.dbotthepony.mc.otm.menu.ItemMonitorMenu import ru.dbotthepony.mc.otm.network.MatteryPacket import ru.dbotthepony.mc.otm.registry.MBlockEntities @@ -523,4 +521,4 @@ class ItemMonitorBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : super.setRemoved() cell.destroy(level) } -} \ No newline at end of file +} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/StorageBusBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/StorageBusBlockEntity.kt index 711a617e4..c6825d7f7 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/StorageBusBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/StorageBusBlockEntity.kt @@ -24,7 +24,7 @@ import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity import ru.dbotthepony.mc.otm.block.entity.storage.AbstractStorageImportExport.Companion.FILTER_KEY import ru.dbotthepony.mc.otm.capability.MatteryCapability -import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage import ru.dbotthepony.mc.otm.container.ItemFilter import ru.dbotthepony.mc.otm.core.* import ru.dbotthepony.mc.otm.graph.Graph6Node @@ -34,7 +34,6 @@ import ru.dbotthepony.mc.otm.graph.storage.StorageNetworkGraph import ru.dbotthepony.mc.otm.menu.StorageBusMenu import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.registry.MBlocks -import ru.dbotthepony.mc.otm.registry.MNames import ru.dbotthepony.mc.otm.storage.* import java.lang.ref.WeakReference import java.math.BigInteger diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/StorageInterfaces.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/StorageInterfaces.kt index 478eba4d8..7165519e9 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/StorageInterfaces.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/StorageInterfaces.kt @@ -22,6 +22,9 @@ import ru.dbotthepony.mc.otm.block.CableBlock import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity import ru.dbotthepony.mc.otm.capability.* +import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.extractStepInner +import ru.dbotthepony.mc.otm.capability.energy.extractStepInnerBi import ru.dbotthepony.mc.otm.container.ItemFilter import ru.dbotthepony.mc.otm.core.* import ru.dbotthepony.mc.otm.graph.Graph6Node diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/StoragePowerSupplierBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/StoragePowerSupplierBlockEntity.kt index dbd3a52fe..4c5c08dd7 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/StoragePowerSupplierBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/StoragePowerSupplierBlockEntity.kt @@ -17,8 +17,8 @@ import ru.dbotthepony.mc.otm.ServerConfig import ru.dbotthepony.mc.otm.core.TranslatableComponent import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity import ru.dbotthepony.mc.otm.capability.MatteryCapability -import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage -import ru.dbotthepony.mc.otm.capability.transferInner +import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.transferInner import ru.dbotthepony.mc.otm.core.Decimal import ru.dbotthepony.mc.otm.graph.storage.BasicStorageGraphNode import ru.dbotthepony.mc.otm.graph.storage.StorageNetworkGraph diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/DriveRackBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/DriveRackBlock.kt index 4ac908099..df085a37d 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/DriveRackBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/DriveRackBlock.kt @@ -17,7 +17,7 @@ import net.minecraft.world.phys.shapes.VoxelShape import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity import ru.dbotthepony.mc.otm.block.entity.storage.DriveRackBlockEntity -import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.shapes.BlockShapes diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/DriveViewerBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/DriveViewerBlock.kt index 6d63d5528..1de05d726 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/DriveViewerBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/DriveViewerBlock.kt @@ -22,7 +22,7 @@ import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity import ru.dbotthepony.mc.otm.block.entity.storage.DriveViewerBlockEntity import ru.dbotthepony.mc.otm.block.entity.WorkerState -import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.shapes.BlockShapes diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/ItemMonitorBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/ItemMonitorBlock.kt index 1fa5a506e..f53497785 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/ItemMonitorBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/ItemMonitorBlock.kt @@ -17,7 +17,7 @@ import net.minecraft.world.phys.shapes.VoxelShape import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity import ru.dbotthepony.mc.otm.block.entity.storage.ItemMonitorBlockEntity -import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.shapes.BlockShapes diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StorageBusBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StorageBusBlock.kt index aa102c300..89726cb77 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StorageBusBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StorageBusBlock.kt @@ -23,7 +23,7 @@ import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock import ru.dbotthepony.mc.otm.block.StorageCableBlock import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity import ru.dbotthepony.mc.otm.block.entity.storage.StorageBusBlockEntity -import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.shapes.BlockShapes import ru.dbotthepony.mc.otm.core.unaryMinus diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StorageInterfaces.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StorageInterfaces.kt index b4c9de21b..bda55fd7f 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StorageInterfaces.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StorageInterfaces.kt @@ -24,7 +24,7 @@ import ru.dbotthepony.mc.otm.block.StorageCableBlock import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity import ru.dbotthepony.mc.otm.block.entity.storage.StorageExporterBlockEntity import ru.dbotthepony.mc.otm.block.entity.storage.StorageImporterBlockEntity -import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.shapes.BlockShapes import ru.dbotthepony.mc.otm.core.unaryMinus diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StoragePowerSupplierBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StoragePowerSupplierBlock.kt index 55e48e086..5d8a23712 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StoragePowerSupplierBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/storage/StoragePowerSupplierBlock.kt @@ -17,7 +17,7 @@ import net.minecraft.world.phys.shapes.VoxelShape import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity import ru.dbotthepony.mc.otm.block.entity.storage.StoragePowerSupplierBlockEntity -import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.shapes.BlockShapes diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/Ext.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/Ext.kt index a3e23da12..6a9ab1ff5 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/Ext.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/Ext.kt @@ -9,6 +9,7 @@ import net.minecraftforge.common.capabilities.ICapabilityProvider import net.minecraftforge.common.util.LazyOptional import net.minecraftforge.energy.IEnergyStorage import net.minecraftforge.fml.ModList +import ru.dbotthepony.mc.otm.capability.energy.IMatteryEnergyStorage import ru.dbotthepony.mc.otm.compat.cos.cosmeticArmorAwareStream import ru.dbotthepony.mc.otm.compat.cos.cosmeticArmorStream import ru.dbotthepony.mc.otm.compat.cos.isCosmeticArmorLoaded diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/AndroidPowerSource.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/android/AndroidPowerSource.kt similarity index 95% rename from src/main/kotlin/ru/dbotthepony/mc/otm/capability/AndroidPowerSource.kt rename to src/main/kotlin/ru/dbotthepony/mc/otm/capability/android/AndroidPowerSource.kt index c850a32e6..6f7746dca 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/AndroidPowerSource.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/android/AndroidPowerSource.kt @@ -1,4 +1,4 @@ -package ru.dbotthepony.mc.otm.capability +package ru.dbotthepony.mc.otm.capability.android import net.minecraft.nbt.CompoundTag import net.minecraft.server.level.ServerPlayer @@ -6,6 +6,9 @@ import net.minecraft.world.entity.player.Player import net.minecraft.world.item.ItemStack import net.minecraftforge.common.capabilities.ForgeCapabilities import net.minecraftforge.common.util.INBTSerializable +import ru.dbotthepony.mc.otm.capability.energy.IMatteryEnergyStorage +import ru.dbotthepony.mc.otm.capability.extractEnergy +import ru.dbotthepony.mc.otm.capability.receiveEnergy import ru.dbotthepony.mc.otm.core.Decimal import ru.dbotthepony.mc.otm.core.getDecimal import ru.dbotthepony.mc.otm.core.getItemStack diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/MatteryPlayerCapability.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/android/MatteryPlayerCapability.kt similarity index 99% rename from src/main/kotlin/ru/dbotthepony/mc/otm/capability/MatteryPlayerCapability.kt rename to src/main/kotlin/ru/dbotthepony/mc/otm/capability/android/MatteryPlayerCapability.kt index a4cba3302..950be069f 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/MatteryPlayerCapability.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/android/MatteryPlayerCapability.kt @@ -1,4 +1,4 @@ -package ru.dbotthepony.mc.otm.capability +package ru.dbotthepony.mc.otm.capability.android import it.unimi.dsi.fastutil.objects.Reference2ObjectOpenHashMap import net.minecraft.ChatFormatting @@ -44,6 +44,9 @@ import ru.dbotthepony.mc.otm.android.AndroidResearch import ru.dbotthepony.mc.otm.android.AndroidResearchManager import ru.dbotthepony.mc.otm.android.AndroidResearchType import ru.dbotthepony.mc.otm.android.AndroidSwitchableFeature +import ru.dbotthepony.mc.otm.capability.MatteryCapability +import ru.dbotthepony.mc.otm.capability.UUIDIntModifiersMap +import ru.dbotthepony.mc.otm.capability.matteryPlayer import ru.dbotthepony.mc.otm.client.minecraft import ru.dbotthepony.mc.otm.container.MatteryContainer import ru.dbotthepony.mc.otm.container.stream diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/EnergyStorageImpl.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/energy/BlockEnergyStorageImpl.kt similarity index 60% rename from src/main/kotlin/ru/dbotthepony/mc/otm/capability/EnergyStorageImpl.kt rename to src/main/kotlin/ru/dbotthepony/mc/otm/capability/energy/BlockEnergyStorageImpl.kt index 3bf4d780d..0982a076b 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/EnergyStorageImpl.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/energy/BlockEnergyStorageImpl.kt @@ -1,258 +1,27 @@ @file:Suppress("unused") -package ru.dbotthepony.mc.otm.capability +package ru.dbotthepony.mc.otm.capability.energy -import net.minecraft.ChatFormatting -import net.minecraft.core.Direction import net.minecraft.nbt.CompoundTag import net.minecraft.network.chat.Component import net.minecraft.world.item.BlockItem import net.minecraft.world.item.ItemStack import net.minecraft.world.item.TooltipFlag import net.minecraft.world.level.BlockGetter -import net.minecraft.world.level.Level import net.minecraft.world.level.block.entity.BlockEntity import net.minecraftforge.common.ForgeConfigSpec -import net.minecraftforge.common.capabilities.Capability -import net.minecraftforge.common.capabilities.ForgeCapabilities -import net.minecraftforge.common.capabilities.ICapabilityProvider import net.minecraftforge.common.util.INBTSerializable import net.minecraftforge.common.util.LazyOptional -import net.minecraftforge.energy.IEnergyStorage import ru.dbotthepony.mc.otm.ConciseBalanceValues import ru.dbotthepony.mc.otm.VerboseBalanceValues import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity -import ru.dbotthepony.mc.otm.compat.mekanism.Mattery2MekanismEnergyWrapper +import ru.dbotthepony.mc.otm.capability.FlowDirection import ru.dbotthepony.mc.otm.core.Decimal -import ru.dbotthepony.mc.otm.core.TranslatableComponent import ru.dbotthepony.mc.otm.core.defineDecimal -import ru.dbotthepony.mc.otm.core.formatPower import ru.dbotthepony.mc.otm.core.map import ru.dbotthepony.mc.otm.core.mapIf import ru.dbotthepony.mc.otm.core.set -import ru.dbotthepony.mc.otm.core.tagNotNull - -sealed interface IEnergyStorageImpl { - val maxInput: Decimal? - val maxOutput: Decimal? - val direction: FlowDirection -} - -private fun batteryLevel(it: IEnergyStorage, tooltips: MutableList) { - tooltips.add(TranslatableComponent( - "otm.item.power.storage", - it.energyStored.formatPower(), - it.maxEnergyStored.formatPower() - ).withStyle(ChatFormatting.GRAY)) -} - -private fun batteryLevel(it: IMatteryEnergyStorage, tooltips: MutableList) { - tooltips.add(TranslatableComponent( - "otm.item.power.storage", - it.batteryLevel.formatPower(), - it.maxBatteryLevel.formatPower() - ).withStyle(ChatFormatting.GRAY)) - - if (it is IEnergyStorageImpl) { - when (it.direction) { - FlowDirection.INPUT -> { - if (it.maxInput != null) { - tooltips.add(TranslatableComponent("otm.item.power.throughput_mono", it.maxInput!!.formatPower()).withStyle(ChatFormatting.GRAY)) - } else { - tooltips.add(TranslatableComponent("otm.item.power.throughput_mono", TranslatableComponent("otm.item.power.infinity").withStyle(ChatFormatting.GRAY)).withStyle(ChatFormatting.GRAY)) - } - } - - FlowDirection.OUTPUT -> { - if (it.maxOutput != null) { - tooltips.add(TranslatableComponent("otm.item.power.throughput_mono", it.maxOutput!!.formatPower()).withStyle(ChatFormatting.GRAY)) - } else { - tooltips.add(TranslatableComponent("otm.item.power.throughput_mono", TranslatableComponent("otm.item.power.infinity").withStyle(ChatFormatting.GRAY)).withStyle(ChatFormatting.GRAY)) - } - } - - FlowDirection.BI_DIRECTIONAL -> { - val maxInput = it.maxInput - val maxOutput = it.maxOutput - - if (maxInput != null && maxOutput != null) { - tooltips.add(TranslatableComponent("otm.item.power.throughput", maxInput.formatPower(), maxOutput.formatPower()).withStyle(ChatFormatting.GRAY)) - } else if (maxInput != null) { - tooltips.add(TranslatableComponent("otm.item.power.throughput", - maxInput.formatPower(), - TranslatableComponent("otm.item.power.infinity").withStyle(ChatFormatting.GRAY) - ).withStyle(ChatFormatting.GRAY)) - } else if (maxOutput != null) { - tooltips.add(TranslatableComponent("otm.item.power.throughput", - TranslatableComponent("otm.item.power.infinity").withStyle(ChatFormatting.GRAY), - maxOutput.formatPower(), - ).withStyle(ChatFormatting.GRAY)) - } else { - tooltips.add(TranslatableComponent("otm.item.power.throughput", - TranslatableComponent("otm.item.power.infinity").withStyle(ChatFormatting.GRAY), - TranslatableComponent("otm.item.power.infinity").withStyle(ChatFormatting.GRAY), - ).withStyle(ChatFormatting.GRAY)) - } - } - } - } -} - -sealed class ItemEnergyStorageImpl( - final override val direction: FlowDirection, - protected val itemStack: ItemStack, - maxBatteryLevel: Decimal, - maxInput: Decimal?, - maxOutput: Decimal?, - val initialBatteryLevel: Decimal = Decimal.ZERO -) : IMatteryEnergyStorage, ICapabilityProvider, IEnergyStorageImpl { - final override var maxInput: Decimal? = maxInput - protected set - - final override var maxOutput: Decimal? = maxOutput - protected set - - private val resolver = LazyOptional.of { this } - private val resolverMekanism = if (isMekanismLoaded) LazyOptional.of { Mattery2MekanismEnergyWrapper(this) } else null - - override fun getCapability(cap: Capability, side: Direction?): LazyOptional { - if (cap == ForgeCapabilities.ENERGY || cap == MatteryCapability.ENERGY) { - return resolver.cast() - } else if (cap == MatteryCapability.MEKANISM_ENERGY) { - return resolverMekanism?.cast() ?: LazyOptional.empty() - } - - return LazyOptional.empty() - } - - override var maxBatteryLevel: Decimal = maxBatteryLevel - protected set - - override var batteryLevel: Decimal - get() = itemStack.tag?.map(ENERGY_KEY, Decimal::deserializeNBT) ?: initialBatteryLevel - set(value) { - itemStack.tagNotNull[ENERGY_KEY] = value.serializeNBT() - } - - override fun extractEnergyOuter(howMuch: Decimal, simulate: Boolean): Decimal { - if (direction == FlowDirection.INPUT) - return Decimal.ZERO - - return extractEnergyInner(howMuch, simulate) - } - - override fun receiveEnergyOuter(howMuch: Decimal, simulate: Boolean): Decimal { - if (direction == FlowDirection.OUTPUT) - return Decimal.ZERO - - return receiveEnergyInner(howMuch, simulate) - } - - override fun extractEnergyInner(howMuch: Decimal, simulate: Boolean): Decimal { - if (!howMuch.isPositive || itemStack.count != 1) - return Decimal.ZERO - - @Suppress("NAME_SHADOWING") - var howMuch = howMuch - val maxOutput = maxOutput - - if (maxOutput != null) { - howMuch = howMuch.coerceAtMost(maxOutput) - } - - val batteryLevel = batteryLevel - - if (!batteryLevel.isPositive) - return Decimal.ZERO - - val newLevel = (batteryLevel - howMuch).moreThanZero() - val diff = (batteryLevel - newLevel) - - if (!simulate && batteryLevel != newLevel) { - this.batteryLevel = newLevel - } - - return diff - } - - override fun receiveEnergyInner(howMuch: Decimal, simulate: Boolean): Decimal { - if (!howMuch.isPositive || itemStack.count != 1) - return Decimal.ZERO - - @Suppress("NAME_SHADOWING") - var howMuch = howMuch - val maxInput = maxInput - - if (maxInput != null) { - howMuch = howMuch.coerceAtMost(maxInput) - } - - val batteryLevel = batteryLevel - - if (batteryLevel >= maxBatteryLevel) - return Decimal.ZERO - - val newLevel = (batteryLevel + howMuch).coerceAtMost(maxBatteryLevel) - val diff = (newLevel - batteryLevel) - - if (!simulate && batteryLevel != newLevel) { - this.batteryLevel = newLevel - } - - return diff - } - - override fun canExtract(): Boolean { - return direction != FlowDirection.INPUT - } - - override fun canReceive(): Boolean { - return direction != FlowDirection.OUTPUT - } - - companion object { - const val ENERGY_KEY = "energy" - - fun appendHoverText(itemStack: ItemStack, level: Level?, tooltips: MutableList, flag: TooltipFlag) { - appendHoverText(itemStack, tooltips) - } - - fun appendHoverText(itemStack: ItemStack, tooltips: MutableList) { - val energy = itemStack.energy ?: return - - if (energy is IMatteryEnergyStorage) { - batteryLevel(energy, tooltips) - } else { - batteryLevel(energy, tooltips) - } - } - } -} - -open class EnergyConsumerItem( - stack: ItemStack, - maxBatteryLevel: Decimal, - maxInput: Decimal? = null, - maxOutput: Decimal? = maxInput, - initialBatteryLevel: Decimal = Decimal.ZERO -) : ItemEnergyStorageImpl(FlowDirection.INPUT, stack, maxBatteryLevel, maxInput, maxOutput, initialBatteryLevel) - -open class EnergyProducerItem( - stack: ItemStack, - maxBatteryLevel: Decimal, - maxInput: Decimal? = null, - maxOutput: Decimal? = maxInput, - initialBatteryLevel: Decimal = Decimal.ZERO -) : ItemEnergyStorageImpl(FlowDirection.OUTPUT, stack, maxBatteryLevel, maxInput, maxOutput, initialBatteryLevel) - -open class EnergyCapacitorItem( - stack: ItemStack, - maxBatteryLevel: Decimal, - maxInput: Decimal? = null, - maxOutput: Decimal? = maxInput, - initialBatteryLevel: Decimal = Decimal.ZERO -) : ItemEnergyStorageImpl(FlowDirection.BI_DIRECTIONAL, stack, maxBatteryLevel, maxInput, maxOutput, initialBatteryLevel) sealed class BlockEnergyStorageImpl( protected val listener: () -> Unit, diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/energy/IEnergyStorageImpl.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/energy/IEnergyStorageImpl.kt new file mode 100644 index 000000000..677a3f66f --- /dev/null +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/energy/IEnergyStorageImpl.kt @@ -0,0 +1,102 @@ +package ru.dbotthepony.mc.otm.capability.energy + +import net.minecraft.ChatFormatting +import net.minecraft.network.chat.Component +import net.minecraftforge.energy.IEnergyStorage +import ru.dbotthepony.mc.otm.capability.FlowDirection +import ru.dbotthepony.mc.otm.core.Decimal +import ru.dbotthepony.mc.otm.core.TranslatableComponent +import ru.dbotthepony.mc.otm.core.formatPower + +sealed interface IEnergyStorageImpl { + val maxInput: Decimal? + val maxOutput: Decimal? + val direction: FlowDirection +} + +internal fun batteryLevel(it: IEnergyStorage, tooltips: MutableList) { + tooltips.add( + TranslatableComponent( + "otm.item.power.storage", + it.energyStored.formatPower(), + it.maxEnergyStored.formatPower() + ).withStyle(ChatFormatting.GRAY)) +} + +internal fun batteryLevel(it: IMatteryEnergyStorage, tooltips: MutableList) { + tooltips.add( + TranslatableComponent( + "otm.item.power.storage", + it.batteryLevel.formatPower(), + it.maxBatteryLevel.formatPower() + ).withStyle(ChatFormatting.GRAY)) + + if (it is IEnergyStorageImpl) { + when (it.direction) { + FlowDirection.INPUT -> { + if (it.maxInput != null) { + tooltips.add( + TranslatableComponent("otm.item.power.throughput_mono", it.maxInput!!.formatPower()).withStyle( + ChatFormatting.GRAY + )) + } else { + tooltips.add( + TranslatableComponent( + "otm.item.power.throughput_mono", + TranslatableComponent("otm.item.power.infinity").withStyle(ChatFormatting.GRAY) + ).withStyle(ChatFormatting.GRAY)) + } + } + + FlowDirection.OUTPUT -> { + if (it.maxOutput != null) { + tooltips.add( + TranslatableComponent("otm.item.power.throughput_mono", it.maxOutput!!.formatPower()).withStyle( + ChatFormatting.GRAY + )) + } else { + tooltips.add( + TranslatableComponent( + "otm.item.power.throughput_mono", + TranslatableComponent("otm.item.power.infinity").withStyle(ChatFormatting.GRAY) + ).withStyle(ChatFormatting.GRAY)) + } + } + + FlowDirection.BI_DIRECTIONAL -> { + val maxInput = it.maxInput + val maxOutput = it.maxOutput + + if (maxInput != null && maxOutput != null) { + tooltips.add( + TranslatableComponent( + "otm.item.power.throughput", + maxInput.formatPower(), + maxOutput.formatPower() + ).withStyle(ChatFormatting.GRAY)) + } else if (maxInput != null) { + tooltips.add( + TranslatableComponent( + "otm.item.power.throughput", + maxInput.formatPower(), + TranslatableComponent("otm.item.power.infinity").withStyle(ChatFormatting.GRAY) + ).withStyle(ChatFormatting.GRAY)) + } else if (maxOutput != null) { + tooltips.add( + TranslatableComponent( + "otm.item.power.throughput", + TranslatableComponent("otm.item.power.infinity").withStyle(ChatFormatting.GRAY), + maxOutput.formatPower(), + ).withStyle(ChatFormatting.GRAY)) + } else { + tooltips.add( + TranslatableComponent( + "otm.item.power.throughput", + TranslatableComponent("otm.item.power.infinity").withStyle(ChatFormatting.GRAY), + TranslatableComponent("otm.item.power.infinity").withStyle(ChatFormatting.GRAY), + ).withStyle(ChatFormatting.GRAY)) + } + } + } + } +} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/IMatteryEnergyStorage.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/energy/IMatteryEnergyStorage.kt similarity index 99% rename from src/main/kotlin/ru/dbotthepony/mc/otm/capability/IMatteryEnergyStorage.kt rename to src/main/kotlin/ru/dbotthepony/mc/otm/capability/energy/IMatteryEnergyStorage.kt index 9903c83d9..a6eee5238 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/IMatteryEnergyStorage.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/energy/IMatteryEnergyStorage.kt @@ -1,4 +1,4 @@ -package ru.dbotthepony.mc.otm.capability +package ru.dbotthepony.mc.otm.capability.energy import net.minecraftforge.energy.IEnergyStorage import ru.dbotthepony.mc.otm.core.Decimal diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/energy/ItemEnergyStorageImpl.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/energy/ItemEnergyStorageImpl.kt new file mode 100644 index 000000000..8e9690ba9 --- /dev/null +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/energy/ItemEnergyStorageImpl.kt @@ -0,0 +1,175 @@ +package ru.dbotthepony.mc.otm.capability.energy + +import net.minecraft.core.Direction +import net.minecraft.network.chat.Component +import net.minecraft.world.item.ItemStack +import net.minecraft.world.item.TooltipFlag +import net.minecraft.world.level.Level +import net.minecraftforge.common.capabilities.Capability +import net.minecraftforge.common.capabilities.ForgeCapabilities +import net.minecraftforge.common.capabilities.ICapabilityProvider +import net.minecraftforge.common.util.LazyOptional +import ru.dbotthepony.mc.otm.capability.FlowDirection +import ru.dbotthepony.mc.otm.capability.MatteryCapability +import ru.dbotthepony.mc.otm.capability.energy +import ru.dbotthepony.mc.otm.capability.isMekanismLoaded +import ru.dbotthepony.mc.otm.compat.mekanism.Mattery2MekanismEnergyWrapper +import ru.dbotthepony.mc.otm.core.Decimal +import ru.dbotthepony.mc.otm.core.map +import ru.dbotthepony.mc.otm.core.set +import ru.dbotthepony.mc.otm.core.tagNotNull + +sealed class ItemEnergyStorageImpl( + final override val direction: FlowDirection, + protected val itemStack: ItemStack, + maxBatteryLevel: Decimal, + maxInput: Decimal?, + maxOutput: Decimal?, + val initialBatteryLevel: Decimal = Decimal.ZERO +) : IMatteryEnergyStorage, ICapabilityProvider, IEnergyStorageImpl { + final override var maxInput: Decimal? = maxInput + protected set + + final override var maxOutput: Decimal? = maxOutput + protected set + + private val resolver = LazyOptional.of { this } + private val resolverMekanism = if (isMekanismLoaded) LazyOptional.of { Mattery2MekanismEnergyWrapper(this) } else null + + override fun getCapability(cap: Capability, side: Direction?): LazyOptional { + if (cap == ForgeCapabilities.ENERGY || cap == MatteryCapability.ENERGY) { + return resolver.cast() + } else if (cap == MatteryCapability.MEKANISM_ENERGY) { + return resolverMekanism?.cast() ?: LazyOptional.empty() + } + + return LazyOptional.empty() + } + + override var maxBatteryLevel: Decimal = maxBatteryLevel + protected set + + override var batteryLevel: Decimal + get() = itemStack.tag?.map(ENERGY_KEY, Decimal.Companion::deserializeNBT) ?: initialBatteryLevel + set(value) { + itemStack.tagNotNull[ENERGY_KEY] = value.serializeNBT() + } + + override fun extractEnergyOuter(howMuch: Decimal, simulate: Boolean): Decimal { + if (direction == FlowDirection.INPUT) + return Decimal.ZERO + + return extractEnergyInner(howMuch, simulate) + } + + override fun receiveEnergyOuter(howMuch: Decimal, simulate: Boolean): Decimal { + if (direction == FlowDirection.OUTPUT) + return Decimal.ZERO + + return receiveEnergyInner(howMuch, simulate) + } + + override fun extractEnergyInner(howMuch: Decimal, simulate: Boolean): Decimal { + if (!howMuch.isPositive || itemStack.count != 1) + return Decimal.ZERO + + @Suppress("NAME_SHADOWING") + var howMuch = howMuch + val maxOutput = maxOutput + + if (maxOutput != null) { + howMuch = howMuch.coerceAtMost(maxOutput) + } + + val batteryLevel = batteryLevel + + if (!batteryLevel.isPositive) + return Decimal.ZERO + + val newLevel = (batteryLevel - howMuch).moreThanZero() + val diff = (batteryLevel - newLevel) + + if (!simulate && batteryLevel != newLevel) { + this.batteryLevel = newLevel + } + + return diff + } + + override fun receiveEnergyInner(howMuch: Decimal, simulate: Boolean): Decimal { + if (!howMuch.isPositive || itemStack.count != 1) + return Decimal.ZERO + + @Suppress("NAME_SHADOWING") + var howMuch = howMuch + val maxInput = maxInput + + if (maxInput != null) { + howMuch = howMuch.coerceAtMost(maxInput) + } + + val batteryLevel = batteryLevel + + if (batteryLevel >= maxBatteryLevel) + return Decimal.ZERO + + val newLevel = (batteryLevel + howMuch).coerceAtMost(maxBatteryLevel) + val diff = (newLevel - batteryLevel) + + if (!simulate && batteryLevel != newLevel) { + this.batteryLevel = newLevel + } + + return diff + } + + override fun canExtract(): Boolean { + return direction != FlowDirection.INPUT + } + + override fun canReceive(): Boolean { + return direction != FlowDirection.OUTPUT + } + + companion object { + const val ENERGY_KEY = "energy" + + fun appendHoverText(itemStack: ItemStack, level: Level?, tooltips: MutableList, flag: TooltipFlag) { + appendHoverText(itemStack, tooltips) + } + + fun appendHoverText(itemStack: ItemStack, tooltips: MutableList) { + val energy = itemStack.energy ?: return + + if (energy is IMatteryEnergyStorage) { + batteryLevel(energy, tooltips) + } else { + batteryLevel(energy, tooltips) + } + } + } +} + +open class EnergyConsumerItem( + stack: ItemStack, + maxBatteryLevel: Decimal, + maxInput: Decimal? = null, + maxOutput: Decimal? = maxInput, + initialBatteryLevel: Decimal = Decimal.ZERO +) : ItemEnergyStorageImpl(FlowDirection.INPUT, stack, maxBatteryLevel, maxInput, maxOutput, initialBatteryLevel) + +open class EnergyProducerItem( + stack: ItemStack, + maxBatteryLevel: Decimal, + maxInput: Decimal? = null, + maxOutput: Decimal? = maxInput, + initialBatteryLevel: Decimal = Decimal.ZERO +) : ItemEnergyStorageImpl(FlowDirection.OUTPUT, stack, maxBatteryLevel, maxInput, maxOutput, initialBatteryLevel) + +open class EnergyCapacitorItem( + stack: ItemStack, + maxBatteryLevel: Decimal, + maxInput: Decimal? = null, + maxOutput: Decimal? = maxInput, + initialBatteryLevel: Decimal = Decimal.ZERO +) : ItemEnergyStorageImpl(FlowDirection.BI_DIRECTIONAL, stack, maxBatteryLevel, maxInput, maxOutput, initialBatteryLevel) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/mekanism/Power.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/mekanism/Power.kt index b6335ec86..127c65672 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/mekanism/Power.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/mekanism/Power.kt @@ -10,7 +10,7 @@ import net.minecraftforge.common.capabilities.ICapabilityProvider import net.minecraftforge.common.util.LazyOptional import net.minecraftforge.energy.IEnergyStorage import org.apache.logging.log4j.LogManager -import ru.dbotthepony.mc.otm.capability.IMatteryEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.IMatteryEnergyStorage import ru.dbotthepony.mc.otm.capability.MatteryCapability import ru.dbotthepony.mc.otm.capability.isMekanismLoaded import ru.dbotthepony.mc.otm.core.Decimal @@ -70,7 +70,8 @@ private val mtj2Mekanism by DoubleLazy lazy@{ return@lazy lazyOf(Decimal.ONE) } -class Mekanism2MatteryEnergyWrapper(private val power: IStrictEnergyHandler, private val forgePower: IEnergyStorage? = null) : IMatteryEnergyStorage { +class Mekanism2MatteryEnergyWrapper(private val power: IStrictEnergyHandler, private val forgePower: IEnergyStorage? = null) : + IMatteryEnergyStorage { override fun extractEnergyOuter(howMuch: Decimal, simulate: Boolean): Decimal { val action = when (simulate) { true -> Action.SIMULATE diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/graph/storage/BasicStorageGraphNode.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/graph/storage/BasicStorageGraphNode.kt index d76c2d5e9..b0f52a83b 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/graph/storage/BasicStorageGraphNode.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/graph/storage/BasicStorageGraphNode.kt @@ -1,12 +1,10 @@ package ru.dbotthepony.mc.otm.graph.storage -import it.unimi.dsi.fastutil.objects.ObjectArraySet import net.minecraft.world.level.Level import net.minecraftforge.common.util.LazyOptional -import ru.dbotthepony.mc.otm.capability.IMatteryEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.IMatteryEnergyStorage import ru.dbotthepony.mc.otm.graph.Graph6Node import ru.dbotthepony.mc.otm.storage.IStorage -import ru.dbotthepony.mc.otm.storage.IStorageEventConsumer import ru.dbotthepony.mc.otm.storage.IStorageStack import ru.dbotthepony.mc.otm.storage.StorageStackType import java.util.* diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/graph/storage/StorageNetworkGraph.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/graph/storage/StorageNetworkGraph.kt index 5c4f94710..a86764829 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/graph/storage/StorageNetworkGraph.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/graph/storage/StorageNetworkGraph.kt @@ -6,7 +6,7 @@ import net.minecraft.server.level.ServerLevel import net.minecraft.world.level.Level import net.minecraft.world.level.block.entity.BlockEntity import ru.dbotthepony.mc.otm.addTickerPre -import ru.dbotthepony.mc.otm.capability.IMatteryEnergyStorage +import ru.dbotthepony.mc.otm.capability.energy.IMatteryEnergyStorage import ru.dbotthepony.mc.otm.capability.MatteryCapability import ru.dbotthepony.mc.otm.graph.Abstract6Graph import ru.dbotthepony.mc.otm.graph.Graph6Node @@ -92,4 +92,4 @@ class StorageNetworkGraph(private val level: Level) : Abstract6Graph