Decapitalize "p" in "Exopack"

This commit is contained in:
DBotThePony 2023-07-29 18:05:54 +07:00
parent 2afc01414b
commit 9aa2f63a6d
Signed by: DBot
GPG Key ID: DCC23B5715498507
21 changed files with 153 additions and 169 deletions

View File

@ -4,7 +4,6 @@ import net.minecraft.resources.ResourceLocation
import net.minecraft.util.valueproviders.UniformInt import net.minecraft.util.valueproviders.UniformInt
import net.minecraft.world.entity.EntityType import net.minecraft.world.entity.EntityType
import net.minecraft.world.item.ItemStack import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.Rarity
import net.minecraft.world.level.storage.loot.BuiltInLootTables import net.minecraft.world.level.storage.loot.BuiltInLootTables
import net.minecraft.world.level.storage.loot.predicates.LootItemCondition import net.minecraft.world.level.storage.loot.predicates.LootItemCondition
import net.minecraftforge.common.loot.LootTableIdCondition import net.minecraftforge.common.loot.LootTableIdCondition
@ -16,7 +15,7 @@ import ru.dbotthepony.mc.otm.data.condition.ItemInInventoryCondition
import ru.dbotthepony.mc.otm.data.condition.KilledByRealPlayerOrIndirectly import ru.dbotthepony.mc.otm.data.condition.KilledByRealPlayerOrIndirectly
import ru.dbotthepony.mc.otm.data.loot.LootPoolAppender import ru.dbotthepony.mc.otm.data.loot.LootPoolAppender
import ru.dbotthepony.mc.otm.item.ProceduralBatteryItem import ru.dbotthepony.mc.otm.item.ProceduralBatteryItem
import ru.dbotthepony.mc.otm.item.exopack.ProceduralExoPackSlotUpgradeItem import ru.dbotthepony.mc.otm.item.exopack.ProceduralExopackSlotUpgradeItem
import ru.dbotthepony.mc.otm.registry.MItems import ru.dbotthepony.mc.otm.registry.MItems
@Suppress("FunctionName") @Suppress("FunctionName")
@ -35,12 +34,12 @@ fun addLootModifiers(it: LootModifiers) {
singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) { singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) {
chanceCondition(0.2) chanceCondition(0.2)
apply(ProceduralExoPackSlotUpgradeItem.Randomizer(UniformInt.of(6, 9))) apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(6, 9)))
}, },
singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) { singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) {
chanceCondition(0.05) chanceCondition(0.05)
apply(ProceduralExoPackSlotUpgradeItem.Randomizer(UniformInt.of(9, 18))) apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(9, 18)))
}, },
)) ))
@ -49,12 +48,12 @@ fun addLootModifiers(it: LootModifiers) {
singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) { singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) {
chanceCondition(0.1) chanceCondition(0.1)
apply(ProceduralExoPackSlotUpgradeItem.Randomizer(UniformInt.of(4, 8))) apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(4, 8)))
}, },
singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) { singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) {
chanceCondition(0.1) chanceCondition(0.1)
apply(ProceduralExoPackSlotUpgradeItem.Randomizer(UniformInt.of(4, 10))) apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(4, 10)))
}, },
singleItem(MItems.PROCEDURAL_BATTERY) { singleItem(MItems.PROCEDURAL_BATTERY) {
@ -73,12 +72,12 @@ fun addLootModifiers(it: LootModifiers) {
singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) { singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) {
chanceCondition(0.1) chanceCondition(0.1)
apply(ProceduralExoPackSlotUpgradeItem.Randomizer(UniformInt.of(12, 18))) apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(12, 18)))
}, },
singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) { singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) {
chanceCondition(0.25) chanceCondition(0.25)
apply(ProceduralExoPackSlotUpgradeItem.Randomizer(UniformInt.of(4, 9))) apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(4, 9)))
}, },
)) ))
@ -87,12 +86,12 @@ fun addLootModifiers(it: LootModifiers) {
singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) { singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) {
chanceCondition(0.15) chanceCondition(0.15)
apply(ProceduralExoPackSlotUpgradeItem.Randomizer(UniformInt.of(9, 18))) apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(9, 18)))
}, },
singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) { singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) {
chanceCondition(0.35) chanceCondition(0.35)
apply(ProceduralExoPackSlotUpgradeItem.Randomizer(UniformInt.of(16, 28), UniformInt.of(2, 6))) apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(16, 28), UniformInt.of(2, 6)))
}, },
)) ))
@ -101,17 +100,17 @@ fun addLootModifiers(it: LootModifiers) {
singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) { singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) {
chanceCondition(0.4) chanceCondition(0.4)
apply(ProceduralExoPackSlotUpgradeItem.Randomizer(UniformInt.of(9, 18))) apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(9, 18)))
}, },
singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) { singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) {
chanceCondition(0.2) chanceCondition(0.2)
apply(ProceduralExoPackSlotUpgradeItem.Randomizer(UniformInt.of(14, 27), UniformInt.of(2, 6))) apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(14, 27), UniformInt.of(2, 6)))
}, },
singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) { singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) {
chanceCondition(0.1) chanceCondition(0.1)
apply(ProceduralExoPackSlotUpgradeItem.Randomizer(UniformInt.of(27, 56), UniformInt.of(2, 6))) apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(27, 56), UniformInt.of(2, 6)))
}, },
)) ))

View File

@ -123,7 +123,7 @@ public final class ExosuitModel {
return; return;
} }
if (cap.resolve().get().getHasExoPack() && cap.resolve().get().getDisplayExoPack()) { if (cap.resolve().get().getHasExopack() && cap.resolve().get().getDisplayExopack()) {
var model = getParentModel(); var model = getParentModel();
model.copyPropertiesTo(modelNormal); model.copyPropertiesTo(modelNormal);
model.copyPropertiesTo(modelGlow); model.copyPropertiesTo(modelGlow);

View File

@ -79,10 +79,10 @@ public class MixinInventory {
) )
private void clearOrCountMatchingItems(Predicate<ItemStack> predicate, int count, Container container, CallbackInfoReturnable<Integer> cir) { private void clearOrCountMatchingItems(Predicate<ItemStack> predicate, int count, Container container, CallbackInfoReturnable<Integer> cir) {
player.getCapability(MatteryCapability.MATTERY_PLAYER).ifPresent(it -> { player.getCapability(MatteryCapability.MATTERY_PLAYER).ifPresent(it -> {
if (!it.getHasExoPack()) return; if (!it.getHasExopack()) return;
int i = cir.getReturnValue(); int i = cir.getReturnValue();
i += ContainerHelper.clearOrCountMatchingItems(it.getExoPackContainer(), predicate, count - i, count == 0); i += ContainerHelper.clearOrCountMatchingItems(it.getExopackContainer(), predicate, count - i, count == 0);
cir.setReturnValue(i); cir.setReturnValue(i);
}); });

View File

@ -1,7 +1,6 @@
package ru.dbotthepony.mc.otm.capability package ru.dbotthepony.mc.otm.capability
import com.google.common.collect.Streams import com.google.common.collect.Streams
import earth.terrarium.botarium.common.registry.fluid.FluidSounds
import net.minecraft.ChatFormatting import net.minecraft.ChatFormatting
import net.minecraft.core.Direction import net.minecraft.core.Direction
import net.minecraft.network.chat.Component import net.minecraft.network.chat.Component
@ -36,7 +35,6 @@ import ru.dbotthepony.mc.otm.core.math.Decimal
import ru.dbotthepony.mc.otm.core.orNull import ru.dbotthepony.mc.otm.core.orNull
import ru.dbotthepony.mc.otm.core.util.formatFluidLevel import ru.dbotthepony.mc.otm.core.util.formatFluidLevel
import java.util.IdentityHashMap import java.util.IdentityHashMap
import java.util.LinkedList
import java.util.stream.Stream import java.util.stream.Stream
private val LOGGER = LogManager.getLogger() private val LOGGER = LogManager.getLogger()
@ -226,8 +224,8 @@ fun Player.itemsStream(includeCosmetics: Boolean = true): Stream<out ItemStack>
streams.add(inventory.stream()) streams.add(inventory.stream())
matteryPlayer?.let { matteryPlayer?.let {
if (it.hasExoPack) { if (it.hasExopack) {
streams.add(it.exoPackContainer.stream()) streams.add(it.exopackContainer.stream())
} }
} }
@ -273,8 +271,8 @@ fun Player.awareItemsStream(includeCosmetics: Boolean = false): Stream<out Aware
streams.add(inventory.awareStream()) streams.add(inventory.awareStream())
matteryPlayer?.let { matteryPlayer?.let {
if (it.hasExoPack) { if (it.hasExopack) {
streams.add(it.exoPackContainer.awareStream()) streams.add(it.exopackContainer.awareStream())
} }
} }

View File

@ -198,7 +198,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
/** /**
* Whenever player has Exopack * Whenever player has Exopack
*/ */
var hasExoPack by publicSynchronizer.bool(setter = setter@{ value, access, _ -> var hasExopack by publicSynchronizer.bool(setter = setter@{ value, access, _ ->
access.write(value) access.write(value)
if (value && ply is ServerPlayer) { if (value && ply is ServerPlayer) {
@ -209,7 +209,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
/** /**
* Whenever to render Exopack on player * Whenever to render Exopack on player
*/ */
var displayExoPack by publicSynchronizer.bool(true).property var displayExopack by publicSynchronizer.bool(true).property
/** /**
* Whenever to render Exopack glow in dark * Whenever to render Exopack glow in dark
@ -228,7 +228,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
valueCodec = IntValueCodec, valueCodec = IntValueCodec,
backingMap = HashMap(), backingMap = HashMap(),
callback = { callback = {
this.exoPackSlotModifier.recompute() this.exopackSlotModifier.recompute()
}, },
) )
@ -237,11 +237,11 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
* *
* If you want to properly extend Exopack suit capacity, add your value into this map * If you want to properly extend Exopack suit capacity, add your value into this map
*/ */
val exoPackSlotModifier = UUIDIntModifiersMap(observer = observer@{ val exopackSlotModifier = UUIDIntModifiersMap(observer = observer@{
if (it < 0) { if (it < 0) {
exoPackContainer = PlayerMatteryContainer(0) exopackContainer = PlayerMatteryContainer(0)
} else { } else {
exoPackContainer = PlayerMatteryContainer(it) exopackContainer = PlayerMatteryContainer(it)
} }
}, backingMap = this.exoPackSlotModifierMap) }, backingMap = this.exoPackSlotModifierMap)
@ -273,7 +273,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
/** /**
* Exopack container, which actually store items inside Exopack * Exopack container, which actually store items inside Exopack
*/ */
var exoPackContainer: MatteryContainer = PlayerMatteryContainer(0) var exopackContainer: MatteryContainer = PlayerMatteryContainer(0)
private set(value) { private set(value) {
_exoPackMenu = null _exoPackMenu = null
field.removeFilterSynchronizer() field.removeFilterSynchronizer()
@ -298,7 +298,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
/** /**
* Whenever Exopack has 3x3 crafting grid upgrade installed * Whenever Exopack has 3x3 crafting grid upgrade installed
*/ */
var isExoPackCraftingUpgraded by publicSynchronizer.bool(setter = setter@{ value, access, _ -> var isExopackCraftingUpgraded by publicSynchronizer.bool(setter = setter@{ value, access, _ ->
if (value != access.readBoolean()) { if (value != access.readBoolean()) {
access.write(value) access.write(value)
_exoPackMenu = null _exoPackMenu = null
@ -400,7 +400,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
/** /**
* Whenever player has exosuit smelting upgrade * Whenever player has exosuit smelting upgrade
*/ */
var isExoPackSmeltingInstalled by synchronizer.bool(setter = { value, access, _ -> var isExopackSmeltingInstalled by synchronizer.bool(setter = { value, access, _ ->
if (value != access.readBoolean()) { if (value != access.readBoolean()) {
access.write(value) access.write(value)
_exoPackMenu = null _exoPackMenu = null
@ -413,7 +413,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
inner class SmelterBelt(index: Int) : MachineJobEventLoop<ItemJob>(ItemJob.CODEC) { inner class SmelterBelt(index: Int) : MachineJobEventLoop<ItemJob>(ItemJob.CODEC) {
override val energy: IMatteryEnergyStorage override val energy: IMatteryEnergyStorage
get() = exoPackEnergy get() = exopackEnergy
override val isBlockedByRedstone: Boolean override val isBlockedByRedstone: Boolean
get() = false get() = false
@ -422,7 +422,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
override fun onJobFinish(status: JobStatus<ItemJob>) { override fun onJobFinish(status: JobStatus<ItemJob>) {
if (output.fullyAddItem(status.job.itemStack)) { if (output.fullyAddItem(status.job.itemStack)) {
exoPackSmelterExperience += status.job.experience exopackSmelterExperience += status.job.experience
} else { } else {
status.noItem() status.noItem()
} }
@ -431,7 +431,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
private val cache = RecipeManager.createCheck(RecipeType.SMELTING) private val cache = RecipeManager.createCheck(RecipeType.SMELTING)
override fun computeNextJob(): JobContainer<ItemJob> { override fun computeNextJob(): JobContainer<ItemJob> {
if (!exoPackEnergy.batteryLevel.isPositive) return JobContainer.noEnergy() if (!exopackEnergy.batteryLevel.isPositive) return JobContainer.noEnergy()
val level = ply.level() as? ServerLevel ?: return JobContainer.failure() val level = ply.level() as? ServerLevel ?: return JobContainer.failure()
val recipe = cache.getRecipeFor(input, level) val recipe = cache.getRecipeFor(input, level)
@ -461,7 +461,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
val smelter2 = SmelterBelt(2) val smelter2 = SmelterBelt(2)
val smelters = listOf(smelter0, smelter1, smelter2) val smelters = listOf(smelter0, smelter1, smelter2)
var exoPackSmelterExperience = 0f var exopackSmelterExperience = 0f
/** /**
* [IMatteryEnergyStorage] instance, representing Android' battery charge * [IMatteryEnergyStorage] instance, representing Android' battery charge
@ -471,9 +471,9 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
/** /**
* [IMatteryEnergyStorage] instance, representing Exopack battery charge * [IMatteryEnergyStorage] instance, representing Exopack battery charge
*/ */
val exoPackEnergy = ProfiledEnergyStorage(BatteryBackedEnergyStorage(ply, synchronizer, Decimal.ZERO, ExopackConfig.ENERGY_CAPACITY, false, onChange = { for (v in smelters) v.notify(MachineJobEventLoop.IdleReason.POWER) })) val exopackEnergy = ProfiledEnergyStorage(BatteryBackedEnergyStorage(ply, synchronizer, Decimal.ZERO, ExopackConfig.ENERGY_CAPACITY, false, onChange = { for (v in smelters) v.notify(MachineJobEventLoop.IdleReason.POWER) }))
val exoPackChargeSlots = MatteryContainer(4) val exopackChargeSlots = MatteryContainer(4)
init { init {
savetables.int(::ticksIExist) savetables.int(::ticksIExist)
@ -483,22 +483,22 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
savetables.bool(::wasInLiquid) savetables.bool(::wasInLiquid)
savetables.bool(::isAndroid) savetables.bool(::isAndroid)
savetables.bool(::willBecomeAndroid) savetables.bool(::willBecomeAndroid)
savetables.bool(::hasExoPack, "hasExoSuit") savetables.bool(::hasExopack, "hasExoSuit")
savetables.bool(::displayExoPack, "displayExoSuit") savetables.bool(::displayExopack, "displayExoSuit")
savetables.bool(::isExoPackCraftingUpgraded, "isExoSuitCraftingUpgraded") savetables.bool(::isExopackCraftingUpgraded, "isExoSuitCraftingUpgraded")
savetables.int(::nextDischargeHurt) savetables.int(::nextDischargeHurt)
savetables.int(::nextHealTick) savetables.int(::nextHealTick)
savetables.vector(::lastOutsideLiquid) savetables.vector(::lastOutsideLiquid)
savetables.location(::lastDimension) savetables.location(::lastDimension)
savetables.stateful(::exoPackSlotModifier, "exoSuitSlotCountModifiers") savetables.stateful(::exopackSlotModifier, "exoSuitSlotCountModifiers")
savetables.stateful(::exoPackContainer, "exoSuitContainer") savetables.stateful(::exopackContainer, "exoSuitContainer")
savetables.stateful(::androidEnergy) savetables.stateful(::androidEnergy)
savetables.stateful(::exoPackEnergy) savetables.stateful(::exopackEnergy, "exoPackEnergy")
savetables.stateful(::exoPackChargeSlots) savetables.stateful(::exopackChargeSlots, "exoPackChargeSlots")
savetables.float(::exoPackSmelterExperience) savetables.float(::exopackSmelterExperience, "exoPackSmelterExperience")
savetables.bool(::isExoPackSmeltingInstalled) savetables.bool(::isExopackSmeltingInstalled, "isExoPackSmeltingInstalled")
savetables.codecNullable(::exopackColor, RGBAColor.CODECRGB) savetables.codecNullable(::exopackColor, RGBAColor.CODECRGB)
savetables.bool(::exopackGlows) savetables.bool(::exopackGlows)
@ -877,8 +877,8 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
override fun deserializeNBT(tag: CompoundTag) { override fun deserializeNBT(tag: CompoundTag) {
savetables.deserializeNBT(tag) savetables.deserializeNBT(tag)
if (ply is ServerPlayer && hasExoPack) if (ply is ServerPlayer && hasExopack)
ExopackSlotsExpandedTrigger.trigger(ply, 0, exoPackContainer.containerSize) ExopackSlotsExpandedTrigger.trigger(ply, 0, exopackContainer.containerSize)
for (filter in regularSlotFilters) { for (filter in regularSlotFilters) {
filter.value = null filter.value = null
@ -984,8 +984,8 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
} }
private fun tickInventory() { private fun tickInventory() {
if (hasExoPack) { if (hasExopack) {
for ((i, stack) in exoPackContainer.withIndex()) { for ((i, stack) in exopackContainer.withIndex()) {
if (!stack.isEmpty) { if (!stack.isEmpty) {
stack.inventoryTick(ply.level(), ply, i + 41, false) stack.inventoryTick(ply.level(), ply, i + 41, false)
} }
@ -1042,21 +1042,21 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
} }
} }
if (hasExoPack) { if (hasExopack) {
exoPackEnergy.parent.tick() exopackEnergy.parent.tick()
if (!ply.isSpectator) { if (!ply.isSpectator) {
if (isExoPackSmeltingInstalled) if (isExopackSmeltingInstalled)
smelters.forEach { it.think() } smelters.forEach { it.think() }
if (exoPackEnergy.batteryLevel.isPositive) { if (exopackEnergy.batteryLevel.isPositive) {
var available = exoPackEnergy.extractEnergy(exoPackEnergy.batteryLevel, true) var available = exopackEnergy.extractEnergy(exopackEnergy.batteryLevel, true)
if (!exoPackChargeSlots.isEmpty) { if (!exopackChargeSlots.isEmpty) {
for (item in exoPackChargeSlots) { for (item in exopackChargeSlots) {
if (item.isNotEmpty) { if (item.isNotEmpty) {
item.energy?.let { item.energy?.let {
available -= exoPackEnergy.extractEnergy(it.receiveEnergy(available, false), false) available -= exopackEnergy.extractEnergy(it.receiveEnergy(available, false), false)
} }
if (!available.isPositive) break if (!available.isPositive) break
@ -1071,7 +1071,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
if (item.isNotEmpty) { if (item.isNotEmpty) {
item.energy?.let { item.energy?.let {
available -= exoPackEnergy.extractEnergy(it.receiveEnergy(available, false), false) available -= exopackEnergy.extractEnergy(it.receiveEnergy(available, false), false)
} }
if (!available.isPositive) break if (!available.isPositive) break
@ -1082,12 +1082,12 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
if (available.isPositive) { if (available.isPositive) {
for (slot in exoPackSlotsChargeFlag) { for (slot in exoPackSlotsChargeFlag) {
if (slot in 0 until exoPackContainer.containerSize) { if (slot in 0 until exopackContainer.containerSize) {
val item = exoPackContainer[slot] val item = exopackContainer[slot]
if (item.isNotEmpty) { if (item.isNotEmpty) {
item.energy?.let { item.energy?.let {
available -= exoPackEnergy.extractEnergy(it.receiveEnergy(available, false), false) available -= exopackEnergy.extractEnergy(it.receiveEnergy(available, false), false)
} }
if (!available.isPositive) break if (!available.isPositive) break
@ -1278,7 +1278,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
shouldSendIteration = false shouldSendIteration = false
} }
if (hasExoPack && ply.containerMenu == ply.inventoryMenu) { if (hasExopack && ply.containerMenu == ply.inventoryMenu) {
exoPackMenu.broadcastChanges() exoPackMenu.broadcastChanges()
} }
@ -1302,7 +1302,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
*/ */
fun inventoryAddImpl(stack: ItemStack): Boolean { fun inventoryAddImpl(stack: ItemStack): Boolean {
val items = ply.inventory.items val items = ply.inventory.items
val exoPackContainer = exoPackContainer val exoPackContainer = exopackContainer
if (!stack.isStackable) { if (!stack.isStackable) {
// двигаем в отфильтрованные слоты // двигаем в отфильтрованные слоты
@ -1432,15 +1432,15 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
} }
enum class UpgradeType(val prop: KMutableProperty1<MatteryPlayerCapability, Boolean>) { enum class UpgradeType(val prop: KMutableProperty1<MatteryPlayerCapability, Boolean>) {
CRAFTING(MatteryPlayerCapability::isExoPackCraftingUpgraded), CRAFTING(MatteryPlayerCapability::isExopackCraftingUpgraded),
SMELTING(MatteryPlayerCapability::isExoPackSmeltingInstalled); SMELTING(MatteryPlayerCapability::isExopackSmeltingInstalled);
} }
@Suppress("unused") @Suppress("unused")
companion object { companion object {
private fun setExoPack(players: Collection<Player>, hasExoPack: Boolean): Int { private fun setExoPack(players: Collection<Player>, hasExoPack: Boolean): Int {
for (player in players) { for (player in players) {
player.matteryPlayer?.hasExoPack = hasExoPack player.matteryPlayer?.hasExopack = hasExoPack
player.matteryPlayer?._exoPackMenu = null player.matteryPlayer?._exoPackMenu = null
} }
@ -1684,12 +1684,12 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
fun inventoryDropAll(inventory: Inventory) { fun inventoryDropAll(inventory: Inventory) {
val mattery = inventory.player.matteryPlayer ?: return val mattery = inventory.player.matteryPlayer ?: return
if (!mattery.hasExoPack) { if (!mattery.hasExopack) {
return return
} }
inventory.player.dropContainer(mattery.exoPackContainer) inventory.player.dropContainer(mattery.exopackContainer)
inventory.player.dropContainer(mattery.exoPackChargeSlots) inventory.player.dropContainer(mattery.exopackChargeSlots)
// inventory.player.dropContainer(mattery.exoPackEnergy.parent) // inventory.player.dropContainer(mattery.exoPackEnergy.parent)
for (smelter in mattery.smelters) { for (smelter in mattery.smelters) {
@ -1703,12 +1703,12 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
fun inventoryClearContent(inventory: Inventory) { fun inventoryClearContent(inventory: Inventory) {
val mattery = inventory.player.matteryPlayer ?: return val mattery = inventory.player.matteryPlayer ?: return
if (!mattery.hasExoPack) { if (!mattery.hasExopack) {
return return
} }
mattery.exoPackContainer.clearContent() mattery.exopackContainer.clearContent()
mattery.exoPackChargeSlots.clearContent() mattery.exopackChargeSlots.clearContent()
// mattery.exoPackEnergy.parent.clearContent() // mattery.exoPackEnergy.parent.clearContent()
for (smelter in mattery.smelters) { for (smelter in mattery.smelters) {
@ -1721,9 +1721,9 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
@JvmStatic @JvmStatic
fun playerDestroyVanishingCursedItems(player: Player) { fun playerDestroyVanishingCursedItems(player: Player) {
player.matteryPlayer?.let { player.matteryPlayer?.let {
if (it.hasExoPack) { if (it.hasExopack) {
it.exoPackContainer.vanishCursedItems() it.exopackContainer.vanishCursedItems()
it.exoPackChargeSlots.vanishCursedItems() it.exopackChargeSlots.vanishCursedItems()
// it.exoPackEnergy.parent.vanishCursedItems() // it.exoPackEnergy.parent.vanishCursedItems()
for (smelter in it.smelters) { for (smelter in it.smelters) {
@ -1744,12 +1744,12 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
val matteryPlayer = player.matteryPlayer ?: return val matteryPlayer = player.matteryPlayer ?: return
if (!matteryPlayer.hasExoPack) { if (!matteryPlayer.hasExopack) {
return return
} }
val targetSlot = player.inventory.suitableHotbarSlot val targetSlot = player.inventory.suitableHotbarSlot
val itemSlot = matteryPlayer.exoPackContainer.indexOfFirst { !it.isEmpty && ItemStack.isSameItemSameTags(itemStack, it) } val itemSlot = matteryPlayer.exopackContainer.indexOfFirst { !it.isEmpty && ItemStack.isSameItemSameTags(itemStack, it) }
if (itemSlot == -1) { if (itemSlot == -1) {
return return
@ -1777,11 +1777,11 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
val weapon = weaponItem.item as? ProjectileWeaponItem ?: return null val weapon = weaponItem.item as? ProjectileWeaponItem ?: return null
val matteryPlayer = player.matteryPlayer ?: return null val matteryPlayer = player.matteryPlayer ?: return null
if (!matteryPlayer.hasExoPack) { if (!matteryPlayer.hasExopack) {
return null return null
} }
val item = matteryPlayer.exoPackContainer.stream().filter(weapon.allSupportedProjectiles).findFirst().orElse(null) ?: return null val item = matteryPlayer.exopackContainer.stream().filter(weapon.allSupportedProjectiles).findFirst().orElse(null) ?: return null
return ForgeHooks.getProjectile(player, weaponItem, item) return ForgeHooks.getProjectile(player, weaponItem, item)
} }
} }

View File

@ -77,7 +77,7 @@ var inventoryScroll = 0
private fun inventoryLogic(event: ScreenEvent.Init.Post) { private fun inventoryLogic(event: ScreenEvent.Init.Post) {
val player = minecraft.player?.matteryPlayer ?: return val player = minecraft.player?.matteryPlayer ?: return
if (!player.hasExoPack) { if (!player.hasExopack) {
return return
} }
@ -109,7 +109,7 @@ private fun inventoryLogic(event: ScreenEvent.Init.Post) {
} }
private class InventoryScrollbarPanel<S : Screen>(screen: S, matteryPlayer: MatteryPlayerCapability) : DiscreteScrollBarPanel<S>( private class InventoryScrollbarPanel<S : Screen>(screen: S, matteryPlayer: MatteryPlayerCapability) : DiscreteScrollBarPanel<S>(
screen, null, { integerDivisionUp(matteryPlayer.exoPackContainer.containerSize, 9) }, { _, _, newScroll -> screen, null, { integerDivisionUp(matteryPlayer.exopackContainer.containerSize, 9) }, { _, _, newScroll ->
inventoryScroll = newScroll inventoryScroll = newScroll
MenuNetworkChannel.sendToServer(InventoryScrollPacket(newScroll).also { it.play(matteryPlayer.ply) }) MenuNetworkChannel.sendToServer(InventoryScrollPacket(newScroll).also { it.play(matteryPlayer.ply) })
}, isSlim = true }, isSlim = true
@ -122,7 +122,7 @@ private fun exosuitInventoryLogic(screen: Screen, addListener: (GuiEventListener
val player = minecraft.player ?: return val player = minecraft.player ?: return
val matteryPlayer = player.matteryPlayer ?: return val matteryPlayer = player.matteryPlayer ?: return
if (!matteryPlayer.hasExoPack || matteryPlayer.exoPackContainer.containerSize == 0) { if (!matteryPlayer.hasExopack || matteryPlayer.exopackContainer.containerSize == 0) {
return return
} }
@ -225,7 +225,7 @@ fun onMouseScrolled(event: MouseScrolled.Pre) {
if (ClientConfig.EXOPACK_FREE_SCROLL && widget.panel is InventoryScrollbarPanel) { if (ClientConfig.EXOPACK_FREE_SCROLL && widget.panel is InventoryScrollbarPanel) {
val slot = screen.slotUnderMouse val slot = screen.slotUnderMouse
if (slot != null && (slot.container == minecraft.player?.inventory && slot.containerSlot in 9 .. 35 || slot.container == minecraft.player?.matteryPlayer?.exoPackContainer)) { if (slot != null && (slot.container == minecraft.player?.inventory && slot.containerSlot in 9 .. 35 || slot.container == minecraft.player?.matteryPlayer?.exopackContainer)) {
widget.panel.mouseScrolledInner(event.mouseX, event.mouseY, event.scrollDelta) widget.panel.mouseScrolledInner(event.mouseX, event.mouseY, event.scrollDelta)
event.isCanceled = true event.isCanceled = true
return return
@ -249,7 +249,7 @@ fun onScreenOpen(event: ScreenEvent.Opening) {
val player = minecraft.player?.matteryPlayer ?: return val player = minecraft.player?.matteryPlayer ?: return
if (player.hasExoPack && event.newScreen is InventoryScreen) { if (player.hasExopack && event.newScreen is InventoryScreen) {
event.newScreen = ExoPackInventoryScreen(player.exoPackMenu) event.newScreen = ExoPackInventoryScreen(player.exoPackMenu)
} }
} }

View File

@ -13,14 +13,10 @@ import ru.dbotthepony.mc.otm.client.render.sprites.sprite
import ru.dbotthepony.mc.otm.client.screen.panels.* import ru.dbotthepony.mc.otm.client.screen.panels.*
import ru.dbotthepony.mc.otm.client.screen.panels.button.LargeRectangleButtonPanel import ru.dbotthepony.mc.otm.client.screen.panels.button.LargeRectangleButtonPanel
import ru.dbotthepony.mc.otm.client.screen.panels.slot.AbstractSlotPanel import ru.dbotthepony.mc.otm.client.screen.panels.slot.AbstractSlotPanel
import ru.dbotthepony.mc.otm.client.screen.panels.slot.BatterySlotPanel
import ru.dbotthepony.mc.otm.client.screen.panels.slot.InventorySlotPanel import ru.dbotthepony.mc.otm.client.screen.panels.slot.InventorySlotPanel
import ru.dbotthepony.mc.otm.client.screen.panels.slot.SlotPanel import ru.dbotthepony.mc.otm.client.screen.panels.slot.SlotPanel
import ru.dbotthepony.mc.otm.client.screen.panels.util.BackgroundPanel
import ru.dbotthepony.mc.otm.client.screen.panels.util.DiscreteScrollBarPanel import ru.dbotthepony.mc.otm.client.screen.panels.util.DiscreteScrollBarPanel
import ru.dbotthepony.mc.otm.client.screen.widget.HorizontalPowerGaugePanel
import ru.dbotthepony.mc.otm.client.screen.widget.ProgressGaugePanel import ru.dbotthepony.mc.otm.client.screen.widget.ProgressGaugePanel
import ru.dbotthepony.mc.otm.client.screen.widget.TallHorizontalProfiledPowerGaugePanel
import ru.dbotthepony.mc.otm.client.setMousePos import ru.dbotthepony.mc.otm.client.setMousePos
import ru.dbotthepony.mc.otm.client.shouldOpenVanillaInventory import ru.dbotthepony.mc.otm.client.shouldOpenVanillaInventory
import ru.dbotthepony.mc.otm.compat.curios.isCuriosLoaded import ru.dbotthepony.mc.otm.compat.curios.isCuriosLoaded
@ -126,7 +122,7 @@ class ExoPackInventoryScreen(menu: ExoPackInventoryMenu) : MatteryScreen<ExoPack
val craftingSlotsCanvas = EditablePanel(this, craftingCanvas) val craftingSlotsCanvas = EditablePanel(this, craftingCanvas)
if (menu.capability.isExoPackCraftingUpgraded) { if (menu.capability.isExopackCraftingUpgraded) {
craftingSlotsCanvas.setSize(54f, 54f) craftingSlotsCanvas.setSize(54f, 54f)
for (row in 0 .. 2) { for (row in 0 .. 2) {
@ -151,7 +147,7 @@ class ExoPackInventoryScreen(menu: ExoPackInventoryMenu) : MatteryScreen<ExoPack
width = craftingCanvas.width - resultPanel.width - craftingSlotsCanvas.width, width = craftingCanvas.width - resultPanel.width - craftingSlotsCanvas.width,
height = topLine.height, centerSprite = true) height = topLine.height, centerSprite = true)
if (menu.capability.isExoPackSmeltingInstalled) { if (menu.capability.isExopackSmeltingInstalled) {
val craftingTab = frame.Tab() val craftingTab = frame.Tab()
val furnaceTab = frame.Tab() val furnaceTab = frame.Tab()

View File

@ -198,7 +198,7 @@ abstract class MatteryScreen<T : MatteryMenu>(menu: T, inventory: Inventory, tit
if (menu.playerExoSuitSlots.isEmpty()) { if (menu.playerExoSuitSlots.isEmpty()) {
inventoryFrame = FramePanel<MatteryScreen<*>>(this, null, 0f, 0f, INVENTORY_FRAME_WIDTH, INVENTORY_FRAME_HEIGHT, inventory.displayName).also(this::addPanel) inventoryFrame = FramePanel<MatteryScreen<*>>(this, null, 0f, 0f, INVENTORY_FRAME_WIDTH, INVENTORY_FRAME_HEIGHT, inventory.displayName).also(this::addPanel)
inventoryFrame!!.makeHelpButton().addSlotFiltersHelp().also { inventoryFrame!!.makeHelpButton().addSlotFiltersHelp().also {
if (menu.ply.matteryPlayer?.hasExoPack == true) if (menu.ply.matteryPlayer?.hasExopack == true)
it.tooltips.add(TranslatableComponent("otm.gui.help.slot_charging")) it.tooltips.add(TranslatableComponent("otm.gui.help.slot_charging"))
} }
@ -225,7 +225,7 @@ abstract class MatteryScreen<T : MatteryMenu>(menu: T, inventory: Inventory, tit
} else { } else {
inventoryFrame = FramePanel<MatteryScreen<*>>(this, null, 0f, 0f, INVENTORY_FRAME_WIDTH_EXTENDED, BASE_INVENTORY_FRAME_HEIGHT + AbstractSlotPanel.SIZE * inventoryRows, inventory.displayName).also(this::addPanel) inventoryFrame = FramePanel<MatteryScreen<*>>(this, null, 0f, 0f, INVENTORY_FRAME_WIDTH_EXTENDED, BASE_INVENTORY_FRAME_HEIGHT + AbstractSlotPanel.SIZE * inventoryRows, inventory.displayName).also(this::addPanel)
inventoryFrame!!.makeHelpButton().addSlotFiltersHelp().also { inventoryFrame!!.makeHelpButton().addSlotFiltersHelp().also {
if (menu.ply.matteryPlayer?.hasExoPack == true) if (menu.ply.matteryPlayer?.hasExopack == true)
it.tooltips.add(TranslatableComponent("otm.gui.help.slot_charging")) it.tooltips.add(TranslatableComponent("otm.gui.help.slot_charging"))
} }

View File

@ -59,7 +59,7 @@ private fun createExopackAppearanceWindow(screen: MatteryScreen<*>, matteryPlaye
text = TranslatableComponent("otm.gui.exopack.toggle_visibility"), text = TranslatableComponent("otm.gui.exopack.toggle_visibility"),
isChecked = GetterSetter.of( isChecked = GetterSetter.of(
{ {
matteryPlayer.displayExoPack matteryPlayer.displayExopack
}, },
{ {
if (it) { if (it) {
@ -147,7 +147,7 @@ class EntityRendererPanel<out S : Screen> @JvmOverloads constructor(
if (entity is Player) { if (entity is Player) {
val matteryPlayer = entity.matteryPlayer val matteryPlayer = entity.matteryPlayer
if (matteryPlayer != null && matteryPlayer.hasExoPack && screen is MatteryScreen<*>) { if (matteryPlayer != null && matteryPlayer.hasExopack && screen is MatteryScreen<*>) {
exosuitButton = SmallRectangleButtonPanel(screen, this, this.width - 2f - SmallBooleanRectangleButtonPanel.SIZE, 2f, exosuitButton = SmallRectangleButtonPanel(screen, this, this.width - 2f - SmallBooleanRectangleButtonPanel.SIZE, 2f,
skinElement = Widgets8.EXOPACK_SHOWN, skinElement = Widgets8.EXOPACK_SHOWN,
onPress = { onPress = {

View File

@ -46,8 +46,8 @@ private class MenuConfiguration(
val offset = (it - 3) * 9 val offset = (it - 3) * 9
for (i in 0 .. 8) { for (i in 0 .. 8) {
if (matteryPlayer.exoPackContainer.containerSize > i + offset) { if (matteryPlayer.exopackContainer.containerSize > i + offset) {
row.add(MatterySlot(matteryPlayer.exoPackContainer, i + offset)) row.add(MatterySlot(matteryPlayer.exopackContainer, i + offset))
} else { } else {
row.add(FakeSlot()) row.add(FakeSlot())
} }
@ -64,13 +64,13 @@ private class MenuConfiguration(
val matteryPlayer = player.matteryPlayer ?: return val matteryPlayer = player.matteryPlayer ?: return
if (!matteryPlayer.hasExoPack || matteryPlayer.exoPackContainer.containerSize <= (value - 1) * 9) { if (!matteryPlayer.hasExopack || matteryPlayer.exopackContainer.containerSize <= (value - 1) * 9) {
return return
} }
for (rowIndex in 0 .. 2) { for (rowIndex in 0 .. 2) {
for (slot in getRow(rowIndex + field, matteryPlayer)) { for (slot in getRow(rowIndex + field, matteryPlayer)) {
if (slot.container === matteryPlayer.exoPackContainer) { if (slot.container === matteryPlayer.exopackContainer) {
@Suppress("name_shadowing") @Suppress("name_shadowing")
val indexOf = matteryPlayer.exoPackMenu.slots.indexOfFirst { it.slotIndex == slot.slotIndex } val indexOf = matteryPlayer.exoPackMenu.slots.indexOfFirst { it.slotIndex == slot.slotIndex }

View File

@ -16,7 +16,7 @@ import ru.dbotthepony.mc.otm.registry.MLootItemConditions
object HasExoPackCondition : LootItemCondition, Serializer<HasExoPackCondition>, LootItemCondition.Builder { object HasExoPackCondition : LootItemCondition, Serializer<HasExoPackCondition>, LootItemCondition.Builder {
override fun test(t: LootContext): Boolean { override fun test(t: LootContext): Boolean {
t[LootContextParams.LAST_DAMAGE_PLAYER]?.matteryPlayer?.let { t[LootContextParams.LAST_DAMAGE_PLAYER]?.matteryPlayer?.let {
return it.hasExoPack return it.hasExopack
} }
return false return false

View File

@ -24,7 +24,7 @@ import ru.dbotthepony.mc.otm.runIfClient
import ru.dbotthepony.mc.otm.triggers.ExopackSlotsExpandedTrigger import ru.dbotthepony.mc.otm.triggers.ExopackSlotsExpandedTrigger
import java.util.UUID import java.util.UUID
abstract class AbstractExoPackSlotUpgradeItem(properties: Properties = defaultProperties()) : Item(properties) { abstract class AbstractExopackSlotUpgradeItem(properties: Properties = defaultProperties()) : Item(properties) {
abstract fun hasDescription(itemStack: ItemStack): Boolean abstract fun hasDescription(itemStack: ItemStack): Boolean
abstract fun slotCount(itemStack: ItemStack): Int abstract fun slotCount(itemStack: ItemStack): Int
abstract fun uuid(itemStack: ItemStack): UUID? abstract fun uuid(itemStack: ItemStack): UUID?
@ -41,7 +41,7 @@ abstract class AbstractExoPackSlotUpgradeItem(properties: Properties = defaultPr
super.appendHoverText(p_41421_, p_41422_, tooltip, p_41424_) super.appendHoverText(p_41421_, p_41422_, tooltip, p_41424_)
val alreadyHasExosuit = runIfClient(true) { val alreadyHasExosuit = runIfClient(true) {
minecraft.player?.matteryPlayer?.hasExoPack == true minecraft.player?.matteryPlayer?.hasExopack == true
} }
if (!alreadyHasExosuit) { if (!alreadyHasExosuit) {
@ -55,7 +55,7 @@ abstract class AbstractExoPackSlotUpgradeItem(properties: Properties = defaultPr
val uuid = uuid(p_41421_) val uuid = uuid(p_41421_)
val alreadyHas = (uuid != null && !ServerConfig.INFINITE_EXOSUIT_UPGRADES) && runIfClient(false) { val alreadyHas = (uuid != null && !ServerConfig.INFINITE_EXOSUIT_UPGRADES) && runIfClient(false) {
minecraft.player?.matteryPlayer?.exoPackSlotModifier?.contains(uuid) == true minecraft.player?.matteryPlayer?.exopackSlotModifier?.contains(uuid) == true
} }
if (alreadyHas) { if (alreadyHas) {
@ -74,7 +74,7 @@ abstract class AbstractExoPackSlotUpgradeItem(properties: Properties = defaultPr
val uuid = uuid(player.getItemInHand(hand)) val uuid = uuid(player.getItemInHand(hand))
if (matteryPlayer.hasExoPack && ((uuid == null || ServerConfig.INFINITE_EXOSUIT_UPGRADES) || uuid !in matteryPlayer.exoPackSlotModifier)) { if (matteryPlayer.hasExopack && ((uuid == null || ServerConfig.INFINITE_EXOSUIT_UPGRADES) || uuid !in matteryPlayer.exopackSlotModifier)) {
player.startUsingItem(hand) player.startUsingItem(hand)
return InteractionResultHolder.consume(player.getItemInHand(hand)) return InteractionResultHolder.consume(player.getItemInHand(hand))
} }
@ -88,7 +88,7 @@ abstract class AbstractExoPackSlotUpgradeItem(properties: Properties = defaultPr
val uuid = uuid(itemStack) val uuid = uuid(itemStack)
val slotCount = slotCount(itemStack) val slotCount = slotCount(itemStack)
if (slotCount <= 0 || !matteryPlayer.hasExoPack || (!ServerConfig.INFINITE_EXOSUIT_UPGRADES && uuid != null && uuid in matteryPlayer.exoPackSlotModifier)) { if (slotCount <= 0 || !matteryPlayer.hasExopack || (!ServerConfig.INFINITE_EXOSUIT_UPGRADES && uuid != null && uuid in matteryPlayer.exopackSlotModifier)) {
return super.finishUsingItem(itemStack, level, player) return super.finishUsingItem(itemStack, level, player)
} }
@ -97,16 +97,16 @@ abstract class AbstractExoPackSlotUpgradeItem(properties: Properties = defaultPr
if (player is ServerPlayer) { if (player is ServerPlayer) {
if (uuid != null) { if (uuid != null) {
if (ServerConfig.INFINITE_EXOSUIT_UPGRADES && uuid in matteryPlayer.exoPackSlotModifier) { if (ServerConfig.INFINITE_EXOSUIT_UPGRADES && uuid in matteryPlayer.exopackSlotModifier) {
matteryPlayer.exoPackSlotModifier[UUID.randomUUID()] = slotCount matteryPlayer.exopackSlotModifier[UUID.randomUUID()] = slotCount
} else { } else {
matteryPlayer.exoPackSlotModifier[uuid] = slotCount matteryPlayer.exopackSlotModifier[uuid] = slotCount
} }
} else { } else {
matteryPlayer.exoPackSlotModifier[UUID.randomUUID()] = slotCount matteryPlayer.exopackSlotModifier[UUID.randomUUID()] = slotCount
} }
ExopackSlotsExpandedTrigger.trigger(player, slotCount, matteryPlayer.exoPackContainer.containerSize) ExopackSlotsExpandedTrigger.trigger(player, slotCount, matteryPlayer.exopackContainer.containerSize)
player.displayClientMessage(TranslatableComponent("otm.exopack_upgrades.slots_upgraded", slotCount).withStyle(ChatFormatting.DARK_GREEN), false) player.displayClientMessage(TranslatableComponent("otm.exopack_upgrades.slots_upgraded", slotCount).withStyle(ChatFormatting.DARK_GREEN), false)
} }

View File

@ -9,18 +9,16 @@ import net.minecraft.world.entity.LivingEntity
import net.minecraft.world.entity.player.Player import net.minecraft.world.entity.player.Player
import net.minecraft.world.item.* import net.minecraft.world.item.*
import net.minecraft.world.level.Level import net.minecraft.world.level.Level
import ru.dbotthepony.mc.otm.OverdriveThatMatters
import ru.dbotthepony.mc.otm.core.TranslatableComponent import ru.dbotthepony.mc.otm.core.TranslatableComponent
import ru.dbotthepony.mc.otm.onceServer import ru.dbotthepony.mc.otm.onceServer
import ru.dbotthepony.mc.otm.capability.matteryPlayer import ru.dbotthepony.mc.otm.capability.matteryPlayer
import ru.dbotthepony.mc.otm.client.minecraft import ru.dbotthepony.mc.otm.client.minecraft
import ru.dbotthepony.mc.otm.core.damageType import ru.dbotthepony.mc.otm.core.damageType
import ru.dbotthepony.mc.otm.registry.MDamageTypes import ru.dbotthepony.mc.otm.registry.MDamageTypes
import ru.dbotthepony.mc.otm.registry.MRegistry
import ru.dbotthepony.mc.otm.registry.MatteryDamageSource import ru.dbotthepony.mc.otm.registry.MatteryDamageSource
import ru.dbotthepony.mc.otm.runIfClient import ru.dbotthepony.mc.otm.runIfClient
class ExoPackProbeItem : Item(Properties().stacksTo(1).rarity(Rarity.EPIC)) { class ExopackProbeItem : Item(Properties().stacksTo(1).rarity(Rarity.EPIC)) {
override fun getUseDuration(p_41454_: ItemStack): Int { override fun getUseDuration(p_41454_: ItemStack): Int {
return 30 return 30
} }
@ -29,7 +27,7 @@ class ExoPackProbeItem : Item(Properties().stacksTo(1).rarity(Rarity.EPIC)) {
super.appendHoverText(p_41421_, p_41422_, tooltip, p_41424_) super.appendHoverText(p_41421_, p_41422_, tooltip, p_41424_)
val alreadyHas = runIfClient(false) { val alreadyHas = runIfClient(false) {
return@runIfClient minecraft.player?.matteryPlayer?.hasExoPack ?: false return@runIfClient minecraft.player?.matteryPlayer?.hasExopack ?: false
} }
if (alreadyHas) { if (alreadyHas) {
@ -42,7 +40,7 @@ class ExoPackProbeItem : Item(Properties().stacksTo(1).rarity(Rarity.EPIC)) {
} }
override fun use(p_41432_: Level, player: Player, hand: InteractionHand): InteractionResultHolder<ItemStack> { override fun use(p_41432_: Level, player: Player, hand: InteractionHand): InteractionResultHolder<ItemStack> {
if (player.matteryPlayer?.hasExoPack == false) { if (player.matteryPlayer?.hasExopack == false) {
player.startUsingItem(hand) player.startUsingItem(hand)
return InteractionResultHolder.consume(player.getItemInHand(hand)) return InteractionResultHolder.consume(player.getItemInHand(hand))
} }
@ -54,7 +52,7 @@ class ExoPackProbeItem : Item(Properties().stacksTo(1).rarity(Rarity.EPIC)) {
if (player !is Player) return super.finishUsingItem(itemStack, level, player) if (player !is Player) return super.finishUsingItem(itemStack, level, player)
val mattery = player.matteryPlayer ?: return super.finishUsingItem(itemStack, level, player) val mattery = player.matteryPlayer ?: return super.finishUsingItem(itemStack, level, player)
if (mattery.hasExoPack) { if (mattery.hasExopack) {
return super.finishUsingItem(itemStack, level, player) return super.finishUsingItem(itemStack, level, player)
} }
@ -64,7 +62,7 @@ class ExoPackProbeItem : Item(Properties().stacksTo(1).rarity(Rarity.EPIC)) {
itemStack.shrink(1) itemStack.shrink(1)
if (player is ServerPlayer) { if (player is ServerPlayer) {
mattery.hasExoPack = true mattery.hasExopack = true
player.displayClientMessage(TranslatableComponent("otm.exopack.granted1").withStyle(ChatFormatting.GRAY), false) player.displayClientMessage(TranslatableComponent("otm.exopack.granted1").withStyle(ChatFormatting.GRAY), false)
player.displayClientMessage(TranslatableComponent("otm.exopack.granted2").withStyle(ChatFormatting.GRAY), false) player.displayClientMessage(TranslatableComponent("otm.exopack.granted2").withStyle(ChatFormatting.GRAY), false)

View File

@ -6,7 +6,7 @@ import ru.dbotthepony.mc.otm.core.registryName
import ru.dbotthepony.mc.otm.core.toUUID import ru.dbotthepony.mc.otm.core.toUUID
import java.util.UUID import java.util.UUID
class ExoPackSlotUpgradeItem : AbstractExoPackSlotUpgradeItem { class ExopackSlotUpgradeItem : AbstractExopackSlotUpgradeItem {
val hasDescription: Boolean val hasDescription: Boolean
val slotCount: Int val slotCount: Int

View File

@ -32,7 +32,7 @@ class ExopackUpgradeItem(
super.appendHoverText(p_41421_, p_41422_, tooltip, p_41424_) super.appendHoverText(p_41421_, p_41422_, tooltip, p_41424_)
val alreadyHasExosuit = runIfClient(true) { val alreadyHasExosuit = runIfClient(true) {
minecraft.player?.matteryPlayer?.hasExoPack == true minecraft.player?.matteryPlayer?.hasExopack == true
} }
if (!alreadyHasExosuit) { if (!alreadyHasExosuit) {
@ -55,7 +55,7 @@ class ExopackUpgradeItem(
} }
override fun use(p_41432_: Level, player: Player, hand: InteractionHand): InteractionResultHolder<ItemStack> { override fun use(p_41432_: Level, player: Player, hand: InteractionHand): InteractionResultHolder<ItemStack> {
if (player.matteryPlayer?.hasExoPack == true && !type.prop.get(player.matteryPlayer!!)) { if (player.matteryPlayer?.hasExopack == true && !type.prop.get(player.matteryPlayer!!)) {
player.startUsingItem(hand) player.startUsingItem(hand)
return InteractionResultHolder.consume(player.getItemInHand(hand)) return InteractionResultHolder.consume(player.getItemInHand(hand))
} }
@ -67,7 +67,7 @@ class ExopackUpgradeItem(
if (player !is Player) return super.finishUsingItem(itemStack, level, player) if (player !is Player) return super.finishUsingItem(itemStack, level, player)
val mattery = player.matteryPlayer ?: return super.finishUsingItem(itemStack, level, player) val mattery = player.matteryPlayer ?: return super.finishUsingItem(itemStack, level, player)
if (!mattery.hasExoPack || type.prop.get(mattery)) { if (!mattery.hasExopack || type.prop.get(mattery)) {
return super.finishUsingItem(itemStack, level, player) return super.finishUsingItem(itemStack, level, player)
} }

View File

@ -6,7 +6,6 @@ import net.minecraft.network.chat.Component
import net.minecraft.util.valueproviders.ConstantInt import net.minecraft.util.valueproviders.ConstantInt
import net.minecraft.util.valueproviders.IntProvider import net.minecraft.util.valueproviders.IntProvider
import net.minecraft.world.item.ItemStack import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.Rarity
import net.minecraft.world.item.TooltipFlag import net.minecraft.world.item.TooltipFlag
import net.minecraft.world.level.Level import net.minecraft.world.level.Level
import net.minecraft.world.level.storage.loot.LootContext import net.minecraft.world.level.storage.loot.LootContext
@ -19,7 +18,7 @@ import ru.dbotthepony.mc.otm.data.Codec2Serializer
import ru.dbotthepony.mc.otm.registry.MItemFunctionTypes import ru.dbotthepony.mc.otm.registry.MItemFunctionTypes
import java.util.* import java.util.*
class ProceduralExoPackSlotUpgradeItem : AbstractExoPackSlotUpgradeItem(defaultProperties()) { class ProceduralExopackSlotUpgradeItem : AbstractExopackSlotUpgradeItem(defaultProperties()) {
class Randomizer(val slots: IntProvider, val luckBias: IntProvider = ConstantInt.ZERO) : LootItemFunction, LootItemFunction.Builder { class Randomizer(val slots: IntProvider, val luckBias: IntProvider = ConstantInt.ZERO) : LootItemFunction, LootItemFunction.Builder {
override fun apply(t: ItemStack, u: LootContext): ItemStack { override fun apply(t: ItemStack, u: LootContext): ItemStack {
t.tagNotNull[SLOT_COUNT_KEY] = slots.sample(u.random) + (luckBias.sample(u.random) * u.luck / 1024f).coerceAtLeast(0f).toInt() t.tagNotNull[SLOT_COUNT_KEY] = slots.sample(u.random) + (luckBias.sample(u.random) * u.luck / 1024f).coerceAtLeast(0f).toInt()

View File

@ -1,9 +1,7 @@
package ru.dbotthepony.mc.otm.menu package ru.dbotthepony.mc.otm.menu
import com.google.common.collect.ImmutableList import com.google.common.collect.ImmutableList
import com.mojang.datafixers.util.Pair
import net.minecraft.core.NonNullList import net.minecraft.core.NonNullList
import net.minecraft.resources.ResourceLocation
import net.minecraft.server.level.ServerLevel import net.minecraft.server.level.ServerLevel
import net.minecraft.server.level.ServerPlayer import net.minecraft.server.level.ServerPlayer
import net.minecraft.world.Container import net.minecraft.world.Container
@ -15,7 +13,6 @@ import ru.dbotthepony.mc.otm.capability.MatteryPlayerCapability
import ru.dbotthepony.mc.otm.compat.curios.curiosSlots import ru.dbotthepony.mc.otm.compat.curios.curiosSlots
import ru.dbotthepony.mc.otm.container.iterator import ru.dbotthepony.mc.otm.container.iterator
import ru.dbotthepony.mc.otm.menu.input.InstantBooleanInput import ru.dbotthepony.mc.otm.menu.input.InstantBooleanInput
import ru.dbotthepony.mc.otm.menu.widget.ProfiledLevelGaugeWidget
import ru.dbotthepony.mc.otm.menu.widget.ProgressGaugeWidget import ru.dbotthepony.mc.otm.menu.widget.ProgressGaugeWidget
import ru.dbotthepony.mc.otm.network.ExoSuitCarriedPacket import ru.dbotthepony.mc.otm.network.ExoSuitCarriedPacket
import ru.dbotthepony.mc.otm.network.ExoSuitMenuInitPacket import ru.dbotthepony.mc.otm.network.ExoSuitMenuInitPacket
@ -27,7 +24,7 @@ class ExoPackInventoryMenu(val capability: MatteryPlayerCapability) : MatteryMen
val craftingSlots: List<MatterySlot> val craftingSlots: List<MatterySlot>
init { init {
if (capability.isExoPackCraftingUpgraded) { if (capability.isExopackCraftingUpgraded) {
craftingGrid = TransientCraftingContainer(this, 3, 3) craftingGrid = TransientCraftingContainer(this, 3, 3)
} else { } else {
craftingGrid = TransientCraftingContainer(this, 2, 2) craftingGrid = TransientCraftingContainer(this, 2, 2)
@ -87,9 +84,9 @@ class ExoPackInventoryMenu(val capability: MatteryPlayerCapability) : MatteryMen
} }
private fun popFurnaceExp() { private fun popFurnaceExp() {
if (capability.isExoPackSmeltingInstalled && capability.exoPackSmelterExperience >= 1f && !ply.level().isClientSide) { if (capability.isExopackSmeltingInstalled && capability.exopackSmelterExperience >= 1f && !ply.level().isClientSide) {
val whole = capability.exoPackSmelterExperience.toInt() val whole = capability.exopackSmelterExperience.toInt()
capability.exoPackSmelterExperience -= whole capability.exopackSmelterExperience -= whole
ExperienceOrb.award(ply.level() as ServerLevel, ply.position(), whole) ExperienceOrb.award(ply.level() as ServerLevel, ply.position(), whole)
} }
} }
@ -97,7 +94,7 @@ class ExoPackInventoryMenu(val capability: MatteryPlayerCapability) : MatteryMen
val furnaceInputs: List<MatterySlot> = capability.smelters.map { val furnaceInputs: List<MatterySlot> = capability.smelters.map {
object : MatterySlot(it.input, 0) { object : MatterySlot(it.input, 0) {
override fun mayPlace(itemStack: ItemStack): Boolean { override fun mayPlace(itemStack: ItemStack): Boolean {
return super.mayPlace(itemStack) && capability.isExoPackSmeltingInstalled return super.mayPlace(itemStack) && capability.isExopackSmeltingInstalled
} }
} }
} }
@ -105,7 +102,7 @@ class ExoPackInventoryMenu(val capability: MatteryPlayerCapability) : MatteryMen
val furnaceOutputs: List<MachineOutputSlot> = capability.smelters.map { val furnaceOutputs: List<MachineOutputSlot> = capability.smelters.map {
object : MachineOutputSlot(it.output, 0, onTake = { popFurnaceExp() }) { object : MachineOutputSlot(it.output, 0, onTake = { popFurnaceExp() }) {
override fun mayPickup(player: Player): Boolean { override fun mayPickup(player: Player): Boolean {
return super.mayPickup(player) && capability.isExoPackSmeltingInstalled return super.mayPickup(player) && capability.isExopackSmeltingInstalled
} }
} }
} }

View File

@ -267,8 +267,8 @@ abstract class MatteryMenu @JvmOverloads protected constructor(
} }
override fun isSameInventory(other: Slot): Boolean { override fun isSameInventory(other: Slot): Boolean {
if (container === inventory || container === ply.matteryPlayer?.exoPackContainer) if (container === inventory || container === ply.matteryPlayer?.exopackContainer)
return (other.container === inventory || other.container === ply.matteryPlayer?.exoPackContainer) && isSameFilter(other) return (other.container === inventory || other.container === ply.matteryPlayer?.exopackContainer) && isSameFilter(other)
return super.isSameInventory(other) return super.isSameInventory(other)
} }
@ -296,10 +296,10 @@ abstract class MatteryMenu @JvmOverloads protected constructor(
setter = input::input setter = input::input
) )
} }
} else if (container === mattery.exoPackContainer) { } else if (container === mattery.exopackContainer) {
filter = GetterSetter.of( filter = GetterSetter.of(
getter = { mattery.exoPackContainer.getSlotFilter(slotIndex) }, getter = { mattery.exopackContainer.getSlotFilter(slotIndex) },
setter = nullableItemInput(true) { mattery.exoPackContainer.setSlotFilter(slotIndex, it) }::input setter = nullableItemInput(true) { mattery.exopackContainer.setSlotFilter(slotIndex, it) }::input
) )
val input = booleanInput(true) { if (it) mattery.exoPackSlotsChargeFlag.add(slotIndex) else mattery.exoPackSlotsChargeFlag.remove(slotIndex) } val input = booleanInput(true) { if (it) mattery.exoPackSlotsChargeFlag.add(slotIndex) else mattery.exoPackSlotsChargeFlag.remove(slotIndex) }
@ -367,9 +367,9 @@ abstract class MatteryMenu @JvmOverloads protected constructor(
val mattery = ply.matteryPlayer val mattery = ply.matteryPlayer
if (mattery != null && mattery.hasExoPack) { if (mattery != null && mattery.hasExopack) {
for (i in 0 until mattery.exoPackContainer.containerSize) { for (i in 0 until mattery.exopackContainer.containerSize) {
val slot = InventorySlot(mattery.exoPackContainer, i) val slot = InventorySlot(mattery.exopackContainer, i)
_playerInventorySlots.add(slot) _playerInventorySlots.add(slot)
_playerInventorySlots2.add(slot) _playerInventorySlots2.add(slot)
@ -381,12 +381,12 @@ abstract class MatteryMenu @JvmOverloads protected constructor(
addSlot(slot) addSlot(slot)
} }
_exopackChargeSlots.add(BatterySlot(mattery.exoPackEnergy.parent, 0).also { mapQuickMoveToExternal(it); mapQuickMoveToInventory(it); addSlot(it) }) _exopackChargeSlots.add(BatterySlot(mattery.exopackEnergy.parent, 0).also { mapQuickMoveToExternal(it); mapQuickMoveToInventory(it); addSlot(it) })
for (i in 0 until mattery.exoPackChargeSlots.containerSize) for (i in 0 until mattery.exopackChargeSlots.containerSize)
_exopackChargeSlots.add(ChargeSlot(mattery.exoPackChargeSlots, i).also { mapQuickMoveToExternal(it); mapQuickMoveToInventory(it); addSlot(it) }) _exopackChargeSlots.add(ChargeSlot(mattery.exopackChargeSlots, i).also { mapQuickMoveToExternal(it); mapQuickMoveToInventory(it); addSlot(it) })
exopackPowerLevel.with(mattery.exoPackEnergy) exopackPowerLevel.with(mattery.exopackEnergy)
} }
for (i in 0..8) { for (i in 0..8) {

View File

@ -6,7 +6,6 @@ import net.minecraft.network.chat.Component
import net.minecraft.network.protocol.game.ClientboundSetCarriedItemPacket import net.minecraft.network.protocol.game.ClientboundSetCarriedItemPacket
import net.minecraft.resources.ResourceLocation import net.minecraft.resources.ResourceLocation
import net.minecraft.world.entity.player.Inventory import net.minecraft.world.entity.player.Inventory
import net.minecraft.world.item.Item
import net.minecraft.world.item.ItemStack import net.minecraft.world.item.ItemStack
import net.minecraftforge.network.NetworkDirection.PLAY_TO_CLIENT import net.minecraftforge.network.NetworkDirection.PLAY_TO_CLIENT
import net.minecraftforge.network.NetworkDirection.PLAY_TO_SERVER import net.minecraftforge.network.NetworkDirection.PLAY_TO_SERVER
@ -30,8 +29,6 @@ import ru.dbotthepony.mc.otm.container.get
import ru.dbotthepony.mc.otm.container.set import ru.dbotthepony.mc.otm.container.set
import ru.dbotthepony.mc.otm.core.math.RGBAColor import ru.dbotthepony.mc.otm.core.math.RGBAColor
import ru.dbotthepony.mc.otm.core.math.Vector import ru.dbotthepony.mc.otm.core.math.Vector
import ru.dbotthepony.mc.otm.core.readItemType
import ru.dbotthepony.mc.otm.core.writeItemType
import ru.dbotthepony.mc.otm.menu.tech.AndroidStationMenu import ru.dbotthepony.mc.otm.menu.tech.AndroidStationMenu
import ru.dbotthepony.mc.otm.menu.ExoPackInventoryMenu import ru.dbotthepony.mc.otm.menu.ExoPackInventoryMenu
import ru.dbotthepony.mc.otm.registry.AndroidFeatures import ru.dbotthepony.mc.otm.registry.AndroidFeatures
@ -237,7 +234,7 @@ class ExoSuitCarriedPacket(val itemStack: ItemStack, val containerState: Int) :
context.enqueueWork { context.enqueueWork {
val mattery = minecraft.player?.matteryPlayer ?: return@enqueueWork val mattery = minecraft.player?.matteryPlayer ?: return@enqueueWork
if (mattery.hasExoPack) { if (mattery.hasExopack) {
mattery.exoPackMenu.carried = itemStack mattery.exoPackMenu.carried = itemStack
mattery.exoPackMenu.stateId = containerState mattery.exoPackMenu.stateId = containerState
} }
@ -269,7 +266,7 @@ class ExoSuitSlotPacket(val slotId: Int, val itemStack: ItemStack, val container
context.enqueueWork { context.enqueueWork {
val mattery = minecraft.player?.matteryPlayer ?: return@enqueueWork val mattery = minecraft.player?.matteryPlayer ?: return@enqueueWork
if (mattery.hasExoPack) { if (mattery.hasExopack) {
if (slotId >= mattery.exoPackMenu.slots.size) { if (slotId >= mattery.exoPackMenu.slots.size) {
LOGGER.error("Unknown slot with ID {} in exosuit menu", slotId) LOGGER.error("Unknown slot with ID {} in exosuit menu", slotId)
return@enqueueWork return@enqueueWork
@ -312,7 +309,7 @@ class ExoSuitMenuInitPacket(val slots: List<ItemStack>, val carried: ItemStack,
context.enqueueWork { context.enqueueWork {
val mattery = minecraft.player?.matteryPlayer ?: return@enqueueWork val mattery = minecraft.player?.matteryPlayer ?: return@enqueueWork
if (mattery.hasExoPack) { if (mattery.hasExopack) {
mattery.exoPackMenu.initializeContents(containerState, slots, carried) mattery.exoPackMenu.initializeContents(containerState, slots, carried)
} }
} }
@ -344,7 +341,7 @@ object ExoPackMenuOpen : MatteryPacket {
val player = context.sender ?: return@enqueueWork val player = context.sender ?: return@enqueueWork
val mattery = player.matteryPlayer ?: return@enqueueWork val mattery = player.matteryPlayer ?: return@enqueueWork
if (mattery.hasExoPack) { if (mattery.hasExopack) {
player.containerMenu = mattery.exoPackMenu player.containerMenu = mattery.exoPackMenu
} }
} }
@ -435,7 +432,7 @@ class PickItemFromInventoryPacket(
val player = context.sender ?: return@enqueueWork val player = context.sender ?: return@enqueueWork
val mattery = player.matteryPlayer ?: return@enqueueWork val mattery = player.matteryPlayer ?: return@enqueueWork
if (!mattery.hasExoPack || sourceExosuitSlot !in 0 until mattery.exoPackContainer.containerSize) { if (!mattery.hasExopack || sourceExosuitSlot !in 0 until mattery.exopackContainer.containerSize) {
return@enqueueWork return@enqueueWork
} }
@ -445,10 +442,10 @@ class PickItemFromInventoryPacket(
player.inventory.selected = targetHotbarSlot player.inventory.selected = targetHotbarSlot
val existingItem = player.inventory[targetHotbarSlot].copy() val existingItem = player.inventory[targetHotbarSlot].copy()
val inventoryItem = mattery.exoPackContainer[sourceExosuitSlot].copy() val inventoryItem = mattery.exopackContainer[sourceExosuitSlot].copy()
player.inventory[targetHotbarSlot] = if (inventoryItem.isEmpty) ItemStack.EMPTY else inventoryItem player.inventory[targetHotbarSlot] = if (inventoryItem.isEmpty) ItemStack.EMPTY else inventoryItem
mattery.exoPackContainer[sourceExosuitSlot] = if (existingItem.isEmpty) ItemStack.EMPTY else existingItem mattery.exopackContainer[sourceExosuitSlot] = if (existingItem.isEmpty) ItemStack.EMPTY else existingItem
player.connection.send(ClientboundSetCarriedItemPacket(targetHotbarSlot)) player.connection.send(ClientboundSetCarriedItemPacket(targetHotbarSlot))
} }
@ -502,7 +499,7 @@ object DisplayExopackPacket : MatteryPacket {
override fun play(context: Supplier<NetworkEvent.Context>) { override fun play(context: Supplier<NetworkEvent.Context>) {
context.packetHandled = true context.packetHandled = true
context.sender?.matteryPlayer?.displayExoPack = true context.sender?.matteryPlayer?.displayExopack = true
} }
} }
@ -511,7 +508,7 @@ object HideExopackPacket : MatteryPacket {
override fun play(context: Supplier<NetworkEvent.Context>) { override fun play(context: Supplier<NetworkEvent.Context>) {
context.packetHandled = true context.packetHandled = true
context.sender?.matteryPlayer?.displayExoPack = false context.sender?.matteryPlayer?.displayExopack = false
} }
} }

View File

@ -7,14 +7,14 @@ import net.minecraftforge.registries.DeferredRegister
import ru.dbotthepony.mc.otm.OverdriveThatMatters import ru.dbotthepony.mc.otm.OverdriveThatMatters
import ru.dbotthepony.mc.otm.data.loot.CopyTileNbtFunction import ru.dbotthepony.mc.otm.data.loot.CopyTileNbtFunction
import ru.dbotthepony.mc.otm.item.ProceduralBatteryItem import ru.dbotthepony.mc.otm.item.ProceduralBatteryItem
import ru.dbotthepony.mc.otm.item.exopack.ProceduralExoPackSlotUpgradeItem import ru.dbotthepony.mc.otm.item.exopack.ProceduralExopackSlotUpgradeItem
object MItemFunctionTypes { object MItemFunctionTypes {
private val registry = DeferredRegister.create(Registries.LOOT_FUNCTION_TYPE, OverdriveThatMatters.MOD_ID) private val registry = DeferredRegister.create(Registries.LOOT_FUNCTION_TYPE, OverdriveThatMatters.MOD_ID)
val COPY_TILE_NBT: LootItemFunctionType by registry.register("copy_tile_nbt") { LootItemFunctionType(CopyTileNbtFunction.Companion) } val COPY_TILE_NBT: LootItemFunctionType by registry.register("copy_tile_nbt") { LootItemFunctionType(CopyTileNbtFunction.Companion) }
val PROCEDURAL_BATTERY: LootItemFunctionType by registry.register(MNames.PROCEDURAL_BATTERY) { LootItemFunctionType(ProceduralBatteryItem.Randomizer.SERIALIZER) } val PROCEDURAL_BATTERY: LootItemFunctionType by registry.register(MNames.PROCEDURAL_BATTERY) { LootItemFunctionType(ProceduralBatteryItem.Randomizer.SERIALIZER) }
val PROCEDURAL_EXOPACK_UPGRADE: LootItemFunctionType by registry.register("exopack_upgrade") { LootItemFunctionType(ProceduralExoPackSlotUpgradeItem.Randomizer.SERIALIZER) } val PROCEDURAL_EXOPACK_UPGRADE: LootItemFunctionType by registry.register("exopack_upgrade") { LootItemFunctionType(ProceduralExopackSlotUpgradeItem.Randomizer.SERIALIZER) }
internal fun register(bus: IEventBus) { internal fun register(bus: IEventBus) {
registry.register(bus) registry.register(bus)

View File

@ -21,8 +21,8 @@ import ru.dbotthepony.mc.otm.core.collect.SupplierList
import ru.dbotthepony.mc.otm.core.TranslatableComponent import ru.dbotthepony.mc.otm.core.TranslatableComponent
import ru.dbotthepony.mc.otm.core.math.Decimal import ru.dbotthepony.mc.otm.core.math.Decimal
import ru.dbotthepony.mc.otm.item.* import ru.dbotthepony.mc.otm.item.*
import ru.dbotthepony.mc.otm.item.exopack.ExoPackProbeItem import ru.dbotthepony.mc.otm.item.exopack.ExopackProbeItem
import ru.dbotthepony.mc.otm.item.exopack.ExoPackSlotUpgradeItem import ru.dbotthepony.mc.otm.item.exopack.ExopackSlotUpgradeItem
import ru.dbotthepony.mc.otm.item.matter.CreativePatternItem import ru.dbotthepony.mc.otm.item.matter.CreativePatternItem
import ru.dbotthepony.mc.otm.item.matter.MatterCapacitorItem import ru.dbotthepony.mc.otm.item.matter.MatterCapacitorItem
import ru.dbotthepony.mc.otm.item.matter.MatterDustItem import ru.dbotthepony.mc.otm.item.matter.MatterDustItem
@ -34,7 +34,7 @@ import ru.dbotthepony.mc.otm.item.armor.PortableGravitationStabilizerItem
import ru.dbotthepony.mc.otm.item.armor.SimpleTritaniumArmorItem import ru.dbotthepony.mc.otm.item.armor.SimpleTritaniumArmorItem
import ru.dbotthepony.mc.otm.item.armor.TritaniumArmorItem import ru.dbotthepony.mc.otm.item.armor.TritaniumArmorItem
import ru.dbotthepony.mc.otm.item.exopack.ExopackUpgradeItem import ru.dbotthepony.mc.otm.item.exopack.ExopackUpgradeItem
import ru.dbotthepony.mc.otm.item.exopack.ProceduralExoPackSlotUpgradeItem import ru.dbotthepony.mc.otm.item.exopack.ProceduralExopackSlotUpgradeItem
import ru.dbotthepony.mc.otm.item.weapon.PlasmaRifleItem import ru.dbotthepony.mc.otm.item.weapon.PlasmaRifleItem
object MItems { object MItems {
@ -509,24 +509,24 @@ object MItems {
val CARGO_CRATE_MINECARTS = registry.allColored(MNames.MINECART_CARGO_CRATE) { color, _ -> MinecartCargoCrateItem(color) } val CARGO_CRATE_MINECARTS = registry.allColored(MNames.MINECART_CARGO_CRATE) { color, _ -> MinecartCargoCrateItem(color) }
val EXOPACK_PROBE: Item by registry.register(MNames.EXOPACK_PROBE, ::ExoPackProbeItem) val EXOPACK_PROBE: Item by registry.register(MNames.EXOPACK_PROBE, ::ExopackProbeItem)
object ExopackUpgrades { object ExopackUpgrades {
val INVENTORY_UPGRADE_CREATIVE: Item by registry.register("exosuit_inventory_upgrade_creative") { ExoPackSlotUpgradeItem(null, 27, Rarity.EPIC) } val INVENTORY_UPGRADE_CREATIVE: Item by registry.register("exosuit_inventory_upgrade_creative") { ExopackSlotUpgradeItem(null, 27, Rarity.EPIC) }
val CRAFTING_UPGRADE: Item by registry.register("exosuit_crafting_upgrade") { ExopackUpgradeItem(MatteryPlayerCapability.UpgradeType.CRAFTING, "crafting_upgrade", "crafting_upgraded") } val CRAFTING_UPGRADE: Item by registry.register("exosuit_crafting_upgrade") { ExopackUpgradeItem(MatteryPlayerCapability.UpgradeType.CRAFTING, "crafting_upgrade", "crafting_upgraded") }
val SMELTING_UPGRADE: Item by registry.register("exopack_smelting_upgrade") { ExopackUpgradeItem(MatteryPlayerCapability.UpgradeType.SMELTING, "smelting_upgrade", "smelting_installed") } val SMELTING_UPGRADE: Item by registry.register("exopack_smelting_upgrade") { ExopackUpgradeItem(MatteryPlayerCapability.UpgradeType.SMELTING, "smelting_upgrade", "smelting_installed") }
val INVENTORY_UPGRADES = SupplierList(8) { val INVENTORY_UPGRADES = SupplierList(8) {
registry.register("exosuit_inventory_upgrade_$it") { ExoPackSlotUpgradeItem(18, Rarity.COMMON) }::get registry.register("exosuit_inventory_upgrade_$it") { ExopackSlotUpgradeItem(18, Rarity.COMMON) }::get
} }
val INVENTORY_UPGRADE_PROCEDURAL: Item by registry.register("exosuit_inventory_upgrade_procedural") { ProceduralExoPackSlotUpgradeItem() } val INVENTORY_UPGRADE_PROCEDURAL: Item by registry.register("exosuit_inventory_upgrade_procedural") { ProceduralExopackSlotUpgradeItem() }
val INVENTORY_UPGRADE_BIG: Item by registry.register("exosuit_inventory_upgrade_big") { ExoPackSlotUpgradeItem(60, Rarity.RARE) } val INVENTORY_UPGRADE_BIG: Item by registry.register("exosuit_inventory_upgrade_big") { ExopackSlotUpgradeItem(60, Rarity.RARE) }
val INVENTORY_UPGRADE_HUGE: Item by registry.register("exosuit_inventory_upgrade_huge") { ExoPackSlotUpgradeItem(135, Rarity.RARE) } val INVENTORY_UPGRADE_HUGE: Item by registry.register("exosuit_inventory_upgrade_huge") { ExopackSlotUpgradeItem(135, Rarity.RARE) }
val INVENTORY_UPGRADE_WITHER: Item by registry.register("exosuit_inventory_upgrade_wither") { ExoPackSlotUpgradeItem(180, Rarity.RARE, hasDescription = true) } val INVENTORY_UPGRADE_WITHER: Item by registry.register("exosuit_inventory_upgrade_wither") { ExopackSlotUpgradeItem(180, Rarity.RARE, hasDescription = true) }
val INVENTORY_UPGRADE_ENDER_DRAGON: Item by registry.register("exosuit_inventory_upgrade_ender_dragon") { ExoPackSlotUpgradeItem(180, Rarity.EPIC, hasDescription = true) } val INVENTORY_UPGRADE_ENDER_DRAGON: Item by registry.register("exosuit_inventory_upgrade_ender_dragon") { ExopackSlotUpgradeItem(180, Rarity.EPIC, hasDescription = true) }
} }
init { init {