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.world.entity.EntityType
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.predicates.LootItemCondition
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.loot.LootPoolAppender
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
@Suppress("FunctionName")
@ -35,12 +34,12 @@ fun addLootModifiers(it: LootModifiers) {
singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) {
chanceCondition(0.2)
apply(ProceduralExoPackSlotUpgradeItem.Randomizer(UniformInt.of(6, 9)))
apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(6, 9)))
},
singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) {
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) {
chanceCondition(0.1)
apply(ProceduralExoPackSlotUpgradeItem.Randomizer(UniformInt.of(4, 8)))
apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(4, 8)))
},
singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) {
chanceCondition(0.1)
apply(ProceduralExoPackSlotUpgradeItem.Randomizer(UniformInt.of(4, 10)))
apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(4, 10)))
},
singleItem(MItems.PROCEDURAL_BATTERY) {
@ -73,12 +72,12 @@ fun addLootModifiers(it: LootModifiers) {
singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) {
chanceCondition(0.1)
apply(ProceduralExoPackSlotUpgradeItem.Randomizer(UniformInt.of(12, 18)))
apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(12, 18)))
},
singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) {
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) {
chanceCondition(0.15)
apply(ProceduralExoPackSlotUpgradeItem.Randomizer(UniformInt.of(9, 18)))
apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(9, 18)))
},
singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) {
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) {
chanceCondition(0.4)
apply(ProceduralExoPackSlotUpgradeItem.Randomizer(UniformInt.of(9, 18)))
apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(9, 18)))
},
singleItem(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) {
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) {
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;
}
if (cap.resolve().get().getHasExoPack() && cap.resolve().get().getDisplayExoPack()) {
if (cap.resolve().get().getHasExopack() && cap.resolve().get().getDisplayExopack()) {
var model = getParentModel();
model.copyPropertiesTo(modelNormal);
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) {
player.getCapability(MatteryCapability.MATTERY_PLAYER).ifPresent(it -> {
if (!it.getHasExoPack()) return;
if (!it.getHasExopack()) return;
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);
});

View File

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

View File

@ -198,7 +198,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
/**
* 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)
if (value && ply is ServerPlayer) {
@ -209,7 +209,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
/**
* 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
@ -228,7 +228,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
valueCodec = IntValueCodec,
backingMap = HashMap(),
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
*/
val exoPackSlotModifier = UUIDIntModifiersMap(observer = observer@{
val exopackSlotModifier = UUIDIntModifiersMap(observer = observer@{
if (it < 0) {
exoPackContainer = PlayerMatteryContainer(0)
exopackContainer = PlayerMatteryContainer(0)
} else {
exoPackContainer = PlayerMatteryContainer(it)
exopackContainer = PlayerMatteryContainer(it)
}
}, backingMap = this.exoPackSlotModifierMap)
@ -273,7 +273,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
/**
* Exopack container, which actually store items inside Exopack
*/
var exoPackContainer: MatteryContainer = PlayerMatteryContainer(0)
var exopackContainer: MatteryContainer = PlayerMatteryContainer(0)
private set(value) {
_exoPackMenu = null
field.removeFilterSynchronizer()
@ -298,7 +298,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
/**
* 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()) {
access.write(value)
_exoPackMenu = null
@ -400,7 +400,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
/**
* 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()) {
access.write(value)
_exoPackMenu = null
@ -413,7 +413,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
inner class SmelterBelt(index: Int) : MachineJobEventLoop<ItemJob>(ItemJob.CODEC) {
override val energy: IMatteryEnergyStorage
get() = exoPackEnergy
get() = exopackEnergy
override val isBlockedByRedstone: Boolean
get() = false
@ -422,7 +422,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
override fun onJobFinish(status: JobStatus<ItemJob>) {
if (output.fullyAddItem(status.job.itemStack)) {
exoPackSmelterExperience += status.job.experience
exopackSmelterExperience += status.job.experience
} else {
status.noItem()
}
@ -431,7 +431,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
private val cache = RecipeManager.createCheck(RecipeType.SMELTING)
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 recipe = cache.getRecipeFor(input, level)
@ -461,7 +461,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
val smelter2 = SmelterBelt(2)
val smelters = listOf(smelter0, smelter1, smelter2)
var exoPackSmelterExperience = 0f
var exopackSmelterExperience = 0f
/**
* [IMatteryEnergyStorage] instance, representing Android' battery charge
@ -471,9 +471,9 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
/**
* [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 {
savetables.int(::ticksIExist)
@ -483,22 +483,22 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
savetables.bool(::wasInLiquid)
savetables.bool(::isAndroid)
savetables.bool(::willBecomeAndroid)
savetables.bool(::hasExoPack, "hasExoSuit")
savetables.bool(::displayExoPack, "displayExoSuit")
savetables.bool(::isExoPackCraftingUpgraded, "isExoSuitCraftingUpgraded")
savetables.bool(::hasExopack, "hasExoSuit")
savetables.bool(::displayExopack, "displayExoSuit")
savetables.bool(::isExopackCraftingUpgraded, "isExoSuitCraftingUpgraded")
savetables.int(::nextDischargeHurt)
savetables.int(::nextHealTick)
savetables.vector(::lastOutsideLiquid)
savetables.location(::lastDimension)
savetables.stateful(::exoPackSlotModifier, "exoSuitSlotCountModifiers")
savetables.stateful(::exoPackContainer, "exoSuitContainer")
savetables.stateful(::exopackSlotModifier, "exoSuitSlotCountModifiers")
savetables.stateful(::exopackContainer, "exoSuitContainer")
savetables.stateful(::androidEnergy)
savetables.stateful(::exoPackEnergy)
savetables.stateful(::exoPackChargeSlots)
savetables.float(::exoPackSmelterExperience)
savetables.bool(::isExoPackSmeltingInstalled)
savetables.stateful(::exopackEnergy, "exoPackEnergy")
savetables.stateful(::exopackChargeSlots, "exoPackChargeSlots")
savetables.float(::exopackSmelterExperience, "exoPackSmelterExperience")
savetables.bool(::isExopackSmeltingInstalled, "isExoPackSmeltingInstalled")
savetables.codecNullable(::exopackColor, RGBAColor.CODECRGB)
savetables.bool(::exopackGlows)
@ -877,8 +877,8 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
override fun deserializeNBT(tag: CompoundTag) {
savetables.deserializeNBT(tag)
if (ply is ServerPlayer && hasExoPack)
ExopackSlotsExpandedTrigger.trigger(ply, 0, exoPackContainer.containerSize)
if (ply is ServerPlayer && hasExopack)
ExopackSlotsExpandedTrigger.trigger(ply, 0, exopackContainer.containerSize)
for (filter in regularSlotFilters) {
filter.value = null
@ -984,8 +984,8 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
}
private fun tickInventory() {
if (hasExoPack) {
for ((i, stack) in exoPackContainer.withIndex()) {
if (hasExopack) {
for ((i, stack) in exopackContainer.withIndex()) {
if (!stack.isEmpty) {
stack.inventoryTick(ply.level(), ply, i + 41, false)
}
@ -1042,21 +1042,21 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
}
}
if (hasExoPack) {
exoPackEnergy.parent.tick()
if (hasExopack) {
exopackEnergy.parent.tick()
if (!ply.isSpectator) {
if (isExoPackSmeltingInstalled)
if (isExopackSmeltingInstalled)
smelters.forEach { it.think() }
if (exoPackEnergy.batteryLevel.isPositive) {
var available = exoPackEnergy.extractEnergy(exoPackEnergy.batteryLevel, true)
if (exopackEnergy.batteryLevel.isPositive) {
var available = exopackEnergy.extractEnergy(exopackEnergy.batteryLevel, true)
if (!exoPackChargeSlots.isEmpty) {
for (item in exoPackChargeSlots) {
if (!exopackChargeSlots.isEmpty) {
for (item in exopackChargeSlots) {
if (item.isNotEmpty) {
item.energy?.let {
available -= exoPackEnergy.extractEnergy(it.receiveEnergy(available, false), false)
available -= exopackEnergy.extractEnergy(it.receiveEnergy(available, false), false)
}
if (!available.isPositive) break
@ -1071,7 +1071,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
if (item.isNotEmpty) {
item.energy?.let {
available -= exoPackEnergy.extractEnergy(it.receiveEnergy(available, false), false)
available -= exopackEnergy.extractEnergy(it.receiveEnergy(available, false), false)
}
if (!available.isPositive) break
@ -1082,12 +1082,12 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
if (available.isPositive) {
for (slot in exoPackSlotsChargeFlag) {
if (slot in 0 until exoPackContainer.containerSize) {
val item = exoPackContainer[slot]
if (slot in 0 until exopackContainer.containerSize) {
val item = exopackContainer[slot]
if (item.isNotEmpty) {
item.energy?.let {
available -= exoPackEnergy.extractEnergy(it.receiveEnergy(available, false), false)
available -= exopackEnergy.extractEnergy(it.receiveEnergy(available, false), false)
}
if (!available.isPositive) break
@ -1278,7 +1278,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
shouldSendIteration = false
}
if (hasExoPack && ply.containerMenu == ply.inventoryMenu) {
if (hasExopack && ply.containerMenu == ply.inventoryMenu) {
exoPackMenu.broadcastChanges()
}
@ -1302,7 +1302,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
*/
fun inventoryAddImpl(stack: ItemStack): Boolean {
val items = ply.inventory.items
val exoPackContainer = exoPackContainer
val exoPackContainer = exopackContainer
if (!stack.isStackable) {
// двигаем в отфильтрованные слоты
@ -1432,15 +1432,15 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
}
enum class UpgradeType(val prop: KMutableProperty1<MatteryPlayerCapability, Boolean>) {
CRAFTING(MatteryPlayerCapability::isExoPackCraftingUpgraded),
SMELTING(MatteryPlayerCapability::isExoPackSmeltingInstalled);
CRAFTING(MatteryPlayerCapability::isExopackCraftingUpgraded),
SMELTING(MatteryPlayerCapability::isExopackSmeltingInstalled);
}
@Suppress("unused")
companion object {
private fun setExoPack(players: Collection<Player>, hasExoPack: Boolean): Int {
for (player in players) {
player.matteryPlayer?.hasExoPack = hasExoPack
player.matteryPlayer?.hasExopack = hasExoPack
player.matteryPlayer?._exoPackMenu = null
}
@ -1684,12 +1684,12 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
fun inventoryDropAll(inventory: Inventory) {
val mattery = inventory.player.matteryPlayer ?: return
if (!mattery.hasExoPack) {
if (!mattery.hasExopack) {
return
}
inventory.player.dropContainer(mattery.exoPackContainer)
inventory.player.dropContainer(mattery.exoPackChargeSlots)
inventory.player.dropContainer(mattery.exopackContainer)
inventory.player.dropContainer(mattery.exopackChargeSlots)
// inventory.player.dropContainer(mattery.exoPackEnergy.parent)
for (smelter in mattery.smelters) {
@ -1703,12 +1703,12 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
fun inventoryClearContent(inventory: Inventory) {
val mattery = inventory.player.matteryPlayer ?: return
if (!mattery.hasExoPack) {
if (!mattery.hasExopack) {
return
}
mattery.exoPackContainer.clearContent()
mattery.exoPackChargeSlots.clearContent()
mattery.exopackContainer.clearContent()
mattery.exopackChargeSlots.clearContent()
// mattery.exoPackEnergy.parent.clearContent()
for (smelter in mattery.smelters) {
@ -1721,9 +1721,9 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
@JvmStatic
fun playerDestroyVanishingCursedItems(player: Player) {
player.matteryPlayer?.let {
if (it.hasExoPack) {
it.exoPackContainer.vanishCursedItems()
it.exoPackChargeSlots.vanishCursedItems()
if (it.hasExopack) {
it.exopackContainer.vanishCursedItems()
it.exopackChargeSlots.vanishCursedItems()
// it.exoPackEnergy.parent.vanishCursedItems()
for (smelter in it.smelters) {
@ -1744,12 +1744,12 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
val matteryPlayer = player.matteryPlayer ?: return
if (!matteryPlayer.hasExoPack) {
if (!matteryPlayer.hasExopack) {
return
}
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) {
return
@ -1777,11 +1777,11 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
val weapon = weaponItem.item as? ProjectileWeaponItem ?: return null
val matteryPlayer = player.matteryPlayer ?: return null
if (!matteryPlayer.hasExoPack) {
if (!matteryPlayer.hasExopack) {
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)
}
}

View File

@ -77,7 +77,7 @@ var inventoryScroll = 0
private fun inventoryLogic(event: ScreenEvent.Init.Post) {
val player = minecraft.player?.matteryPlayer ?: return
if (!player.hasExoPack) {
if (!player.hasExopack) {
return
}
@ -109,7 +109,7 @@ private fun inventoryLogic(event: ScreenEvent.Init.Post) {
}
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
MenuNetworkChannel.sendToServer(InventoryScrollPacket(newScroll).also { it.play(matteryPlayer.ply) })
}, isSlim = true
@ -122,7 +122,7 @@ private fun exosuitInventoryLogic(screen: Screen, addListener: (GuiEventListener
val player = minecraft.player ?: return
val matteryPlayer = player.matteryPlayer ?: return
if (!matteryPlayer.hasExoPack || matteryPlayer.exoPackContainer.containerSize == 0) {
if (!matteryPlayer.hasExopack || matteryPlayer.exopackContainer.containerSize == 0) {
return
}
@ -225,7 +225,7 @@ fun onMouseScrolled(event: MouseScrolled.Pre) {
if (ClientConfig.EXOPACK_FREE_SCROLL && widget.panel is InventoryScrollbarPanel) {
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)
event.isCanceled = true
return
@ -249,7 +249,7 @@ fun onScreenOpen(event: ScreenEvent.Opening) {
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)
}
}

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.button.LargeRectangleButtonPanel
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.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.widget.HorizontalPowerGaugePanel
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.shouldOpenVanillaInventory
import ru.dbotthepony.mc.otm.compat.curios.isCuriosLoaded
@ -126,7 +122,7 @@ class ExoPackInventoryScreen(menu: ExoPackInventoryMenu) : MatteryScreen<ExoPack
val craftingSlotsCanvas = EditablePanel(this, craftingCanvas)
if (menu.capability.isExoPackCraftingUpgraded) {
if (menu.capability.isExopackCraftingUpgraded) {
craftingSlotsCanvas.setSize(54f, 54f)
for (row in 0 .. 2) {
@ -151,7 +147,7 @@ class ExoPackInventoryScreen(menu: ExoPackInventoryMenu) : MatteryScreen<ExoPack
width = craftingCanvas.width - resultPanel.width - craftingSlotsCanvas.width,
height = topLine.height, centerSprite = true)
if (menu.capability.isExoPackSmeltingInstalled) {
if (menu.capability.isExopackSmeltingInstalled) {
val craftingTab = 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()) {
inventoryFrame = FramePanel<MatteryScreen<*>>(this, null, 0f, 0f, INVENTORY_FRAME_WIDTH, INVENTORY_FRAME_HEIGHT, inventory.displayName).also(this::addPanel)
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"))
}
@ -225,7 +225,7 @@ abstract class MatteryScreen<T : MatteryMenu>(menu: T, inventory: Inventory, tit
} 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!!.makeHelpButton().addSlotFiltersHelp().also {
if (menu.ply.matteryPlayer?.hasExoPack == true)
if (menu.ply.matteryPlayer?.hasExopack == true)
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"),
isChecked = GetterSetter.of(
{
matteryPlayer.displayExoPack
matteryPlayer.displayExopack
},
{
if (it) {
@ -147,7 +147,7 @@ class EntityRendererPanel<out S : Screen> @JvmOverloads constructor(
if (entity is Player) {
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,
skinElement = Widgets8.EXOPACK_SHOWN,
onPress = {

View File

@ -46,8 +46,8 @@ private class MenuConfiguration(
val offset = (it - 3) * 9
for (i in 0 .. 8) {
if (matteryPlayer.exoPackContainer.containerSize > i + offset) {
row.add(MatterySlot(matteryPlayer.exoPackContainer, i + offset))
if (matteryPlayer.exopackContainer.containerSize > i + offset) {
row.add(MatterySlot(matteryPlayer.exopackContainer, i + offset))
} else {
row.add(FakeSlot())
}
@ -64,13 +64,13 @@ private class MenuConfiguration(
val matteryPlayer = player.matteryPlayer ?: return
if (!matteryPlayer.hasExoPack || matteryPlayer.exoPackContainer.containerSize <= (value - 1) * 9) {
if (!matteryPlayer.hasExopack || matteryPlayer.exopackContainer.containerSize <= (value - 1) * 9) {
return
}
for (rowIndex in 0 .. 2) {
for (slot in getRow(rowIndex + field, matteryPlayer)) {
if (slot.container === matteryPlayer.exoPackContainer) {
if (slot.container === matteryPlayer.exopackContainer) {
@Suppress("name_shadowing")
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 {
override fun test(t: LootContext): Boolean {
t[LootContextParams.LAST_DAMAGE_PLAYER]?.matteryPlayer?.let {
return it.hasExoPack
return it.hasExopack
}
return false

View File

@ -24,7 +24,7 @@ import ru.dbotthepony.mc.otm.runIfClient
import ru.dbotthepony.mc.otm.triggers.ExopackSlotsExpandedTrigger
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 slotCount(itemStack: ItemStack): Int
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_)
val alreadyHasExosuit = runIfClient(true) {
minecraft.player?.matteryPlayer?.hasExoPack == true
minecraft.player?.matteryPlayer?.hasExopack == true
}
if (!alreadyHasExosuit) {
@ -55,7 +55,7 @@ abstract class AbstractExoPackSlotUpgradeItem(properties: Properties = defaultPr
val uuid = uuid(p_41421_)
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) {
@ -74,7 +74,7 @@ abstract class AbstractExoPackSlotUpgradeItem(properties: Properties = defaultPr
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)
return InteractionResultHolder.consume(player.getItemInHand(hand))
}
@ -88,7 +88,7 @@ abstract class AbstractExoPackSlotUpgradeItem(properties: Properties = defaultPr
val uuid = uuid(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)
}
@ -97,16 +97,16 @@ abstract class AbstractExoPackSlotUpgradeItem(properties: Properties = defaultPr
if (player is ServerPlayer) {
if (uuid != null) {
if (ServerConfig.INFINITE_EXOSUIT_UPGRADES && uuid in matteryPlayer.exoPackSlotModifier) {
matteryPlayer.exoPackSlotModifier[UUID.randomUUID()] = slotCount
if (ServerConfig.INFINITE_EXOSUIT_UPGRADES && uuid in matteryPlayer.exopackSlotModifier) {
matteryPlayer.exopackSlotModifier[UUID.randomUUID()] = slotCount
} else {
matteryPlayer.exoPackSlotModifier[uuid] = slotCount
matteryPlayer.exopackSlotModifier[uuid] = slotCount
}
} 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)
}

View File

@ -9,18 +9,16 @@ import net.minecraft.world.entity.LivingEntity
import net.minecraft.world.entity.player.Player
import net.minecraft.world.item.*
import net.minecraft.world.level.Level
import ru.dbotthepony.mc.otm.OverdriveThatMatters
import ru.dbotthepony.mc.otm.core.TranslatableComponent
import ru.dbotthepony.mc.otm.onceServer
import ru.dbotthepony.mc.otm.capability.matteryPlayer
import ru.dbotthepony.mc.otm.client.minecraft
import ru.dbotthepony.mc.otm.core.damageType
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.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 {
return 30
}
@ -29,7 +27,7 @@ class ExoPackProbeItem : Item(Properties().stacksTo(1).rarity(Rarity.EPIC)) {
super.appendHoverText(p_41421_, p_41422_, tooltip, p_41424_)
val alreadyHas = runIfClient(false) {
return@runIfClient minecraft.player?.matteryPlayer?.hasExoPack ?: false
return@runIfClient minecraft.player?.matteryPlayer?.hasExopack ?: false
}
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> {
if (player.matteryPlayer?.hasExoPack == false) {
if (player.matteryPlayer?.hasExopack == false) {
player.startUsingItem(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)
val mattery = player.matteryPlayer ?: return super.finishUsingItem(itemStack, level, player)
if (mattery.hasExoPack) {
if (mattery.hasExopack) {
return super.finishUsingItem(itemStack, level, player)
}
@ -64,7 +62,7 @@ class ExoPackProbeItem : Item(Properties().stacksTo(1).rarity(Rarity.EPIC)) {
itemStack.shrink(1)
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.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 java.util.UUID
class ExoPackSlotUpgradeItem : AbstractExoPackSlotUpgradeItem {
class ExopackSlotUpgradeItem : AbstractExopackSlotUpgradeItem {
val hasDescription: Boolean
val slotCount: Int

View File

@ -32,7 +32,7 @@ class ExopackUpgradeItem(
super.appendHoverText(p_41421_, p_41422_, tooltip, p_41424_)
val alreadyHasExosuit = runIfClient(true) {
minecraft.player?.matteryPlayer?.hasExoPack == true
minecraft.player?.matteryPlayer?.hasExopack == true
}
if (!alreadyHasExosuit) {
@ -55,7 +55,7 @@ class ExopackUpgradeItem(
}
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)
return InteractionResultHolder.consume(player.getItemInHand(hand))
}
@ -67,7 +67,7 @@ class ExopackUpgradeItem(
if (player !is Player) 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)
}

View File

@ -6,7 +6,6 @@ import net.minecraft.network.chat.Component
import net.minecraft.util.valueproviders.ConstantInt
import net.minecraft.util.valueproviders.IntProvider
import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.Rarity
import net.minecraft.world.item.TooltipFlag
import net.minecraft.world.level.Level
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 java.util.*
class ProceduralExoPackSlotUpgradeItem : AbstractExoPackSlotUpgradeItem(defaultProperties()) {
class ProceduralExopackSlotUpgradeItem : AbstractExopackSlotUpgradeItem(defaultProperties()) {
class Randomizer(val slots: IntProvider, val luckBias: IntProvider = ConstantInt.ZERO) : LootItemFunction, LootItemFunction.Builder {
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()

View File

@ -1,9 +1,7 @@
package ru.dbotthepony.mc.otm.menu
import com.google.common.collect.ImmutableList
import com.mojang.datafixers.util.Pair
import net.minecraft.core.NonNullList
import net.minecraft.resources.ResourceLocation
import net.minecraft.server.level.ServerLevel
import net.minecraft.server.level.ServerPlayer
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.container.iterator
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.network.ExoSuitCarriedPacket
import ru.dbotthepony.mc.otm.network.ExoSuitMenuInitPacket
@ -27,7 +24,7 @@ class ExoPackInventoryMenu(val capability: MatteryPlayerCapability) : MatteryMen
val craftingSlots: List<MatterySlot>
init {
if (capability.isExoPackCraftingUpgraded) {
if (capability.isExopackCraftingUpgraded) {
craftingGrid = TransientCraftingContainer(this, 3, 3)
} else {
craftingGrid = TransientCraftingContainer(this, 2, 2)
@ -87,9 +84,9 @@ class ExoPackInventoryMenu(val capability: MatteryPlayerCapability) : MatteryMen
}
private fun popFurnaceExp() {
if (capability.isExoPackSmeltingInstalled && capability.exoPackSmelterExperience >= 1f && !ply.level().isClientSide) {
val whole = capability.exoPackSmelterExperience.toInt()
capability.exoPackSmelterExperience -= whole
if (capability.isExopackSmeltingInstalled && capability.exopackSmelterExperience >= 1f && !ply.level().isClientSide) {
val whole = capability.exopackSmelterExperience.toInt()
capability.exopackSmelterExperience -= 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 {
object : MatterySlot(it.input, 0) {
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 {
object : MachineOutputSlot(it.output, 0, onTake = { popFurnaceExp() }) {
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 {
if (container === inventory || container === ply.matteryPlayer?.exoPackContainer)
return (other.container === inventory || other.container === ply.matteryPlayer?.exoPackContainer) && isSameFilter(other)
if (container === inventory || container === ply.matteryPlayer?.exopackContainer)
return (other.container === inventory || other.container === ply.matteryPlayer?.exopackContainer) && isSameFilter(other)
return super.isSameInventory(other)
}
@ -296,10 +296,10 @@ abstract class MatteryMenu @JvmOverloads protected constructor(
setter = input::input
)
}
} else if (container === mattery.exoPackContainer) {
} else if (container === mattery.exopackContainer) {
filter = GetterSetter.of(
getter = { mattery.exoPackContainer.getSlotFilter(slotIndex) },
setter = nullableItemInput(true) { mattery.exoPackContainer.setSlotFilter(slotIndex, it) }::input
getter = { mattery.exopackContainer.getSlotFilter(slotIndex) },
setter = nullableItemInput(true) { mattery.exopackContainer.setSlotFilter(slotIndex, it) }::input
)
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
if (mattery != null && mattery.hasExoPack) {
for (i in 0 until mattery.exoPackContainer.containerSize) {
val slot = InventorySlot(mattery.exoPackContainer, i)
if (mattery != null && mattery.hasExopack) {
for (i in 0 until mattery.exopackContainer.containerSize) {
val slot = InventorySlot(mattery.exopackContainer, i)
_playerInventorySlots.add(slot)
_playerInventorySlots2.add(slot)
@ -381,12 +381,12 @@ abstract class MatteryMenu @JvmOverloads protected constructor(
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)
_exopackChargeSlots.add(ChargeSlot(mattery.exoPackChargeSlots, i).also { mapQuickMoveToExternal(it); mapQuickMoveToInventory(it); addSlot(it) })
for (i in 0 until mattery.exopackChargeSlots.containerSize)
_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) {

View File

@ -6,7 +6,6 @@ import net.minecraft.network.chat.Component
import net.minecraft.network.protocol.game.ClientboundSetCarriedItemPacket
import net.minecraft.resources.ResourceLocation
import net.minecraft.world.entity.player.Inventory
import net.minecraft.world.item.Item
import net.minecraft.world.item.ItemStack
import net.minecraftforge.network.NetworkDirection.PLAY_TO_CLIENT
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.core.math.RGBAColor
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.ExoPackInventoryMenu
import ru.dbotthepony.mc.otm.registry.AndroidFeatures
@ -237,7 +234,7 @@ class ExoSuitCarriedPacket(val itemStack: ItemStack, val containerState: Int) :
context.enqueueWork {
val mattery = minecraft.player?.matteryPlayer ?: return@enqueueWork
if (mattery.hasExoPack) {
if (mattery.hasExopack) {
mattery.exoPackMenu.carried = itemStack
mattery.exoPackMenu.stateId = containerState
}
@ -269,7 +266,7 @@ class ExoSuitSlotPacket(val slotId: Int, val itemStack: ItemStack, val container
context.enqueueWork {
val mattery = minecraft.player?.matteryPlayer ?: return@enqueueWork
if (mattery.hasExoPack) {
if (mattery.hasExopack) {
if (slotId >= mattery.exoPackMenu.slots.size) {
LOGGER.error("Unknown slot with ID {} in exosuit menu", slotId)
return@enqueueWork
@ -312,7 +309,7 @@ class ExoSuitMenuInitPacket(val slots: List<ItemStack>, val carried: ItemStack,
context.enqueueWork {
val mattery = minecraft.player?.matteryPlayer ?: return@enqueueWork
if (mattery.hasExoPack) {
if (mattery.hasExopack) {
mattery.exoPackMenu.initializeContents(containerState, slots, carried)
}
}
@ -344,7 +341,7 @@ object ExoPackMenuOpen : MatteryPacket {
val player = context.sender ?: return@enqueueWork
val mattery = player.matteryPlayer ?: return@enqueueWork
if (mattery.hasExoPack) {
if (mattery.hasExopack) {
player.containerMenu = mattery.exoPackMenu
}
}
@ -435,7 +432,7 @@ class PickItemFromInventoryPacket(
val player = context.sender ?: 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
}
@ -445,10 +442,10 @@ class PickItemFromInventoryPacket(
player.inventory.selected = targetHotbarSlot
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
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))
}
@ -502,7 +499,7 @@ object DisplayExopackPacket : MatteryPacket {
override fun play(context: Supplier<NetworkEvent.Context>) {
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>) {
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.data.loot.CopyTileNbtFunction
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 {
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 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) {
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.math.Decimal
import ru.dbotthepony.mc.otm.item.*
import ru.dbotthepony.mc.otm.item.exopack.ExoPackProbeItem
import ru.dbotthepony.mc.otm.item.exopack.ExoPackSlotUpgradeItem
import ru.dbotthepony.mc.otm.item.exopack.ExopackProbeItem
import ru.dbotthepony.mc.otm.item.exopack.ExopackSlotUpgradeItem
import ru.dbotthepony.mc.otm.item.matter.CreativePatternItem
import ru.dbotthepony.mc.otm.item.matter.MatterCapacitorItem
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.TritaniumArmorItem
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
object MItems {
@ -509,24 +509,24 @@ object MItems {
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 {
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 SMELTING_UPGRADE: Item by registry.register("exopack_smelting_upgrade") { ExopackUpgradeItem(MatteryPlayerCapability.UpgradeType.SMELTING, "smelting_upgrade", "smelting_installed") }
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_HUGE: Item by registry.register("exosuit_inventory_upgrade_huge") { ExoPackSlotUpgradeItem(135, 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_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_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) }
}
init {