Decapitalize "p" in "Exopack"
This commit is contained in:
parent
2afc01414b
commit
9aa2f63a6d
@ -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)))
|
||||
},
|
||||
))
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
});
|
||||
|
@ -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())
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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()
|
||||
|
||||
|
@ -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"))
|
||||
}
|
||||
|
||||
|
@ -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 = {
|
||||
|
@ -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 }
|
||||
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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)
|
@ -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
|
||||
|
@ -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)
|
||||
}
|
||||
|
||||
|
@ -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()
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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) {
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user