Make exopack slot upgrades be consumed in stacks, to make bulk use way less annoying
This commit is contained in:
parent
16f91343d8
commit
fdfc406ca6
@ -20,6 +20,9 @@ import ru.dbotthepony.mc.otm.client.minecraft
|
||||
import ru.dbotthepony.mc.otm.core.TranslatableComponent
|
||||
import ru.dbotthepony.mc.otm.core.isExplosion
|
||||
import ru.dbotthepony.mc.otm.core.isFire
|
||||
import ru.dbotthepony.mc.otm.core.isNotEmpty
|
||||
import ru.dbotthepony.mc.otm.core.nextUUID
|
||||
import ru.dbotthepony.mc.otm.core.otmRandom
|
||||
import ru.dbotthepony.mc.otm.registry.game.MItems
|
||||
import ru.dbotthepony.mc.otm.runIfClient
|
||||
import ru.dbotthepony.mc.otm.triggers.ExopackSlotsExpandedTrigger
|
||||
@ -35,7 +38,7 @@ abstract class AbstractExopackSlotUpgradeItem(properties: Properties = defaultPr
|
||||
}
|
||||
|
||||
override fun getUseDuration(p_41454_: ItemStack, p_344979_: LivingEntity): Int {
|
||||
return 30
|
||||
return 20
|
||||
}
|
||||
|
||||
override fun appendHoverText(
|
||||
@ -76,7 +79,7 @@ abstract class AbstractExopackSlotUpgradeItem(properties: Properties = defaultPr
|
||||
}
|
||||
|
||||
override fun use(p_41432_: Level, player: Player, hand: InteractionHand): InteractionResultHolder<ItemStack> {
|
||||
val matteryPlayer = player.matteryPlayer ?: return super.use(p_41432_, player, hand)
|
||||
val matteryPlayer = player.matteryPlayer
|
||||
|
||||
val uuid = uuid(player.getItemInHand(hand))
|
||||
|
||||
@ -98,25 +101,32 @@ abstract class AbstractExopackSlotUpgradeItem(properties: Properties = defaultPr
|
||||
return super.finishUsingItem(itemStack, level, player)
|
||||
}
|
||||
|
||||
if (!player.abilities.instabuild)
|
||||
itemStack.shrink(1)
|
||||
var allowedUses = itemStack.count
|
||||
|
||||
if (player is ServerPlayer) {
|
||||
if (uuid != null) {
|
||||
if (ServerConfig.INFINITE_EXOSUIT_UPGRADES && uuid in matteryPlayer.exopackSlotModifier) {
|
||||
matteryPlayer.exopackSlotModifier[UUID.randomUUID()] = slotCount
|
||||
while (allowedUses > 0) {
|
||||
if (!player.abilities.instabuild)
|
||||
itemStack.shrink(1)
|
||||
|
||||
allowedUses--
|
||||
|
||||
if (player is ServerPlayer) {
|
||||
if (uuid != null) {
|
||||
if (ServerConfig.INFINITE_EXOSUIT_UPGRADES && uuid in matteryPlayer.exopackSlotModifier) {
|
||||
matteryPlayer.exopackSlotModifier[level.otmRandom.nextUUID()] = slotCount
|
||||
} else {
|
||||
matteryPlayer.exopackSlotModifier[uuid] = slotCount
|
||||
allowedUses = 0
|
||||
}
|
||||
} else {
|
||||
matteryPlayer.exopackSlotModifier[uuid] = slotCount
|
||||
matteryPlayer.exopackSlotModifier[level.otmRandom.nextUUID()] = slotCount
|
||||
}
|
||||
} else {
|
||||
matteryPlayer.exopackSlotModifier[UUID.randomUUID()] = slotCount
|
||||
}
|
||||
|
||||
ExopackSlotsExpandedTrigger.trigger(player, slotCount, matteryPlayer.exopackContainer.containerSize)
|
||||
player.displayClientMessage(TranslatableComponent("otm.exopack_upgrades.slots_upgraded", slotCount).withStyle(ChatFormatting.DARK_GREEN), false)
|
||||
ExopackSlotsExpandedTrigger.trigger(player, slotCount, matteryPlayer.exopackContainer.containerSize)
|
||||
player.displayClientMessage(TranslatableComponent("otm.exopack_upgrades.slots_upgraded", slotCount).withStyle(ChatFormatting.DARK_GREEN), false)
|
||||
|
||||
if (this === MItems.ExopackUpgrades.INVENTORY_UPGRADE_ENDER_DRAGON) {
|
||||
MItems.ExopackUpgrades.ENDER_UPGRADE.finishUsingItem(ItemStack(MItems.ExopackUpgrades.INVENTORY_UPGRADE_ENDER_DRAGON), level, player)
|
||||
if (this === MItems.ExopackUpgrades.INVENTORY_UPGRADE_ENDER_DRAGON) {
|
||||
MItems.ExopackUpgrades.ENDER_UPGRADE.finishUsingItem(ItemStack(MItems.ExopackUpgrades.INVENTORY_UPGRADE_ENDER_DRAGON), level, player)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -60,7 +60,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 && !type.prop.get(player.matteryPlayer)) {
|
||||
player.startUsingItem(hand)
|
||||
return InteractionResultHolder.consume(player.getItemInHand(hand))
|
||||
}
|
||||
@ -70,7 +70,7 @@ class ExopackUpgradeItem(
|
||||
|
||||
override fun finishUsingItem(itemStack: ItemStack, level: Level, player: LivingEntity): ItemStack {
|
||||
if (player !is Player) return super.finishUsingItem(itemStack, level, player)
|
||||
val mattery = player.matteryPlayer ?: return super.finishUsingItem(itemStack, level, player)
|
||||
val mattery = player.matteryPlayer
|
||||
|
||||
if (!mattery.hasExopack || type.prop.get(mattery)) {
|
||||
return super.finishUsingItem(itemStack, level, player)
|
||||
|
Loading…
Reference in New Issue
Block a user