diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/ExopackAdvancementsData.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/ExopackAdvancementsData.kt index aec551e13..fa1efb751 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/ExopackAdvancementsData.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/ExopackAdvancementsData.kt @@ -11,6 +11,7 @@ import ru.dbotthepony.mc.otm.datagen.modLocation import ru.dbotthepony.mc.otm.registry.MItems import ru.dbotthepony.mc.otm.triggers.ExopackBatterySlotTrigger import ru.dbotthepony.mc.otm.triggers.ExopackGainedCraftingTrigger +import ru.dbotthepony.mc.otm.triggers.ExopackGainedEnderAccessTrigger import ru.dbotthepony.mc.otm.triggers.ExopackGainedSmeltingTrigger import ru.dbotthepony.mc.otm.triggers.ExopackObtainedTrigger import ru.dbotthepony.mc.otm.triggers.ExopackSlotsExpandedTrigger @@ -78,6 +79,20 @@ fun addExopackAdvancements(serializer: Consumer, existingFileHelper .addCriterion("smelting", ExopackGainedSmeltingTrigger.instance) .save(serializer, modLocation("exopack/smelting"), existingFileHelper) + AdvancementBuilder() + .parent(obtained) + .display( + itemStack = ItemStack(Items.ENDER_CHEST), + title = translation.add("ender_access", "Ender-ious Access") { + russian("Эендер-иумый Доступ") + }, + description = translation.add("ender_access.desc", "Gain direct access to your Ender Chest out of your Exopack") { + russian("Получите прямой доступ к содержимому вашего сундука края прямо из Экзопака") + }, + ) + .addCriterion("ender_access", ExopackGainedEnderAccessTrigger.instance) + .save(serializer, modLocation("ender_access/smelting"), existingFileHelper) + var size = AdvancementBuilder() .parent(obtained) .display( diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/ItemModels.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/ItemModels.kt index 7db7e577b..59a70b3fa 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/ItemModels.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/ItemModels.kt @@ -77,6 +77,7 @@ fun addItemModels(provider: MatteryItemModelProvider) { provider.generated(MItems.ExopackUpgrades.INVENTORY_UPGRADE_CREATIVE) provider.generated(MItems.ExopackUpgrades.CRAFTING_UPGRADE) provider.generated(MItems.ExopackUpgrades.SMELTING_UPGRADE) + provider.generated(MItems.ExopackUpgrades.ENDER_UPGRADE) provider.component(MItems.TRITANIUM_DUST) provider.component(MItems.TRITANIUM_INGOT) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt index 302221c37..da3651e91 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt @@ -160,6 +160,7 @@ private fun misc(provider: MatteryLanguageProvider) { gui("exopack_upgrades.slots_upgrade", "Using this will permanently grant %s slots in your Exopack inventory.") gui("exopack_upgrades.crafting_upgrade", "Using this will permanently grant 3x3 crafting grid in your Exopack inventory.") gui("exopack_upgrades.smelting_upgrade", "Using this will permanently grant smelter in your Exopack inventory.") + gui("exopack_upgrades.ender_access_upgrade", "Using this will permanently grant Ender Chest access in your Exopack inventory.") gui("crude_battery.replace_in_world", "Simplistic nature of this battery allows to replace your energy source in the field without using Android Station.") gui("crude_battery.replace_in_world_warning", "This operation is very unstable and can cause extreme damage to your systems!") @@ -171,6 +172,7 @@ private fun misc(provider: MatteryLanguageProvider) { misc("exopack_upgrades.slots_upgraded", "Your Exopack has permanently gained %s slots") misc("exopack_upgrades.crafting_upgraded", "Your Exopack has permanently gained 3x3 crafting grid") misc("exopack_upgrades.smelting_installed", "Your Exopack has permanently gained smelting module") + misc("exopack_upgrades.ender_access_installed", "Your Exopack has permanently gained access to Ender Chest contents") misc("exopack.granted1", "As you keep pressing on the fingerprint reader, probe disappears.") misc("exopack.granted2", "After a moment, you are getting pierced into back multiple times...") @@ -495,12 +497,13 @@ private fun items(provider: MatteryLanguageProvider) { add(MItems.ExopackUpgrades.INVENTORY_UPGRADE_CREATIVE, "Creative Exopack Inventory Upgrade") add(MItems.ExopackUpgrades.CRAFTING_UPGRADE, "Exopack Crafting Upgrade") add(MItems.ExopackUpgrades.SMELTING_UPGRADE, "Exopack Smelting Module") + add(MItems.ExopackUpgrades.ENDER_UPGRADE, "Exopack Ender Access Module") add(MItems.ExopackUpgrades.INVENTORY_UPGRADE_WITHER, "Superdense Packing Upgrade") add(MItems.ExopackUpgrades.INVENTORY_UPGRADE_WITHER, "description", "Utilizes similar principle that exhibit Nether Stars") add(MItems.ExopackUpgrades.INVENTORY_UPGRADE_ENDER_DRAGON, "Ender Link Pocket Dimension Upgrade") - add(MItems.ExopackUpgrades.INVENTORY_UPGRADE_ENDER_DRAGON, "description", "Allows to store items in portable pocket dimension") + add(MItems.ExopackUpgrades.INVENTORY_UPGRADE_ENDER_DRAGON, "description", "Allows to store items in portable pocket dimension. Also grants access to Ender Chest contents.") add(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL, "Indescribable Exopack Inventory Upgrade") add(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL, "description", "They normally generate in dungeons with appropriate NBT tag attached") diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt index 9747409a6..0e601f7f6 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt @@ -165,9 +165,10 @@ private fun misc(provider: MatteryLanguageProvider) { gui("exopack_upgrades.no_exopack", "Данный пазл технологии кажется для вас бесполезным... Или..?!") gui("exopack_upgrades.already_activated", "Улучшение уже активно!") - gui("exopack_upgrades.slots_upgrade", "Активируя данное улучшение даст %s слотов в вашем экзопаке.") - gui("exopack_upgrades.crafting_upgrade", "Активация данного улучшения даст 3x3 сетку создания в вашем экзопаке.") - gui("exopack_upgrades.smelting_upgrade", "Активация данного улучшения даст плавильню в вашем экзопаке.") + gui("exopack_upgrades.slots_upgrade", "Активируя данное улучшение даст %s слотов в вашем Экзопаке.") + gui("exopack_upgrades.crafting_upgrade", "Активация данного улучшения даст 3x3 сетку создания в вашем Экзопаке.") + gui("exopack_upgrades.smelting_upgrade", "Активация данного улучшения даст плавильню в вашем Экзопаке.") + gui("exopack_upgrades.ender_access_upgrade", "Активация данного улучшения даст доступ к сундуку края в вашем Экзопаке.") gui("crude_battery.replace_in_world", "Простота устройства данного аккумулятора позволяет вам заменить .") gui("crude_battery.replace_in_world_warning", "Данная операция крайне рискованная и может нанести огромный урон вашим системам!") @@ -176,9 +177,10 @@ private fun misc(provider: MatteryLanguageProvider) { misc("battery.single_use", "Единоразовая батарейка, не может быть перезаряжена.") - misc("exopack_upgrades.slots_upgraded", "Ваш экзопак был расширен на %s слотов") - misc("exopack_upgrades.crafting_upgraded", "Ваш экзопак получил 3x3 сетку создания") - misc("exopack_upgrades.smelting_installed", "Ваш экзопак получил плавильню") + misc("exopack_upgrades.slots_upgraded", "Ваш Экзопак был расширен на %s слотов") + misc("exopack_upgrades.crafting_upgraded", "Ваш Экзопак получил 3x3 сетку создания") + misc("exopack_upgrades.smelting_installed", "Ваш Экзопак получил плавильню") + misc("exopack_upgrades.ender_access_installed", "Ваш Экзопак получил доступ к содержимому сундука края") misc("exopack.granted1", "После некоторого времени нажатия на сканер отпечатка, маяк исчезает.") misc("exopack.granted2", "Через мгновение, вашу спину пронзают множество раз...") @@ -498,12 +500,13 @@ private fun items(provider: MatteryLanguageProvider) { add(MItems.ExopackUpgrades.INVENTORY_UPGRADE_CREATIVE, "Творческое обновление инвентаря экзопака") add(MItems.ExopackUpgrades.CRAFTING_UPGRADE, "Обновление сетки крафта экзопака") add(MItems.ExopackUpgrades.SMELTING_UPGRADE, "Модуль плавильни экзопака") + add(MItems.ExopackUpgrades.ENDER_UPGRADE, "Модуль доступа к сундуку края экзопака") add(MItems.ExopackUpgrades.INVENTORY_UPGRADE_WITHER, "Обновление сверхмассивной упаковки") add(MItems.ExopackUpgrades.INVENTORY_UPGRADE_WITHER, "description", "Использует те же принципы, которыми обладают звёзды незера") add(MItems.ExopackUpgrades.INVENTORY_UPGRADE_ENDER_DRAGON, "Обновление соединения края экзопака") - add(MItems.ExopackUpgrades.INVENTORY_UPGRADE_ENDER_DRAGON, "description", "Позволяет хранить предметы в карманном измерении") + add(MItems.ExopackUpgrades.INVENTORY_UPGRADE_ENDER_DRAGON, "description", "Позволяет хранить предметы в карманном измерении. А так же даёт доступ к содержимому сундука края.") add(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL, "Неописуемое обновление инвентаря экзопака") add(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL, "description", "В нормальных условиях, они появляются в сундуках") diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CraftingTableRecipes.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CraftingTableRecipes.kt index ee01b293b..0510dfb3d 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CraftingTableRecipes.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CraftingTableRecipes.kt @@ -324,6 +324,13 @@ fun addCraftingTableRecipes(consumer: Consumer) { .row(MItemTags.TRITANIUM_PLATES, Items.FURNACE, MItemTags.TRITANIUM_PLATES) .build(consumer) + // апгрейд на эндер сундук + MatteryRecipe(MItems.ExopackUpgrades.ENDER_UPGRADE, category = RecipeCategory.TOOLS) + .row(MItemTags.ADVANCED_CIRCUIT, MItems.ELECTROMAGNET, MItemTags.ADVANCED_CIRCUIT) + .row(MItems.ELECTROMAGNET, Items.ENDER_CHEST, MItems.ELECTROMAGNET) + .row(MItemTags.TRITANIUM_PLATES, MItems.ELECTROMAGNET, MItemTags.TRITANIUM_PLATES) + .build(consumer) + // генератор коблы MatteryRecipe(MItems.COBBLESTONE_GENERATOR, category = machinesCategory) .row(MItemTags.HARDENED_GLASS_COLORLESS, MItems.TRITANIUM_PICKAXE, MItemTags.HARDENED_GLASS_COLORLESS) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/MatteryPlayerCapability.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/MatteryPlayerCapability.kt index 1764341f0..8d8431c6d 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/MatteryPlayerCapability.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/MatteryPlayerCapability.kt @@ -5,13 +5,11 @@ import com.mojang.blaze3d.vertex.PoseStack import it.unimi.dsi.fastutil.ints.IntAVLTreeSet import it.unimi.dsi.fastutil.objects.Reference2ObjectOpenHashMap import net.minecraft.ChatFormatting -import net.minecraft.client.Minecraft import net.minecraft.client.model.PlayerModel import net.minecraft.client.player.AbstractClientPlayer import net.minecraft.commands.Commands import net.minecraft.commands.arguments.EntityArgument import net.minecraft.core.Direction -import net.minecraft.core.particles.ParticleTypes import net.minecraft.nbt.ByteTag import net.minecraft.nbt.CompoundTag import net.minecraft.nbt.IntTag @@ -91,11 +89,7 @@ import ru.dbotthepony.mc.otm.core.collect.UUIDIntModifiersMap import ru.dbotthepony.mc.otm.core.collect.filter import ru.dbotthepony.mc.otm.core.math.Decimal import ru.dbotthepony.mc.otm.core.math.RGBAColor -import ru.dbotthepony.mc.otm.core.math.component1 -import ru.dbotthepony.mc.otm.core.math.component2 -import ru.dbotthepony.mc.otm.core.math.component3 import ru.dbotthepony.mc.otm.core.math.minus -import ru.dbotthepony.mc.otm.core.math.toRadians import ru.dbotthepony.mc.otm.core.nbt.getByteList import ru.dbotthepony.mc.otm.core.nbt.getCompoundList import ru.dbotthepony.mc.otm.core.nbt.getIntList @@ -114,6 +108,7 @@ import ru.dbotthepony.mc.otm.network.SmokeParticlesPacket.Companion.makeSmoke import ru.dbotthepony.mc.otm.network.synchronizer.FieldSynchronizer import ru.dbotthepony.mc.otm.registry.AndroidFeatures import ru.dbotthepony.mc.otm.registry.MDamageTypes +import ru.dbotthepony.mc.otm.registry.MItems import ru.dbotthepony.mc.otm.registry.MRegistry import ru.dbotthepony.mc.otm.registry.MatteryDamageSource import ru.dbotthepony.mc.otm.triggers.AndroidResearchTrigger @@ -123,14 +118,13 @@ import ru.dbotthepony.mc.otm.triggers.BecomeAndroidSleepTrigger import ru.dbotthepony.mc.otm.triggers.BecomeAndroidTrigger import ru.dbotthepony.mc.otm.triggers.BecomeHumaneTrigger import ru.dbotthepony.mc.otm.triggers.ExopackGainedCraftingTrigger +import ru.dbotthepony.mc.otm.triggers.ExopackGainedEnderAccessTrigger import ru.dbotthepony.mc.otm.triggers.ExopackGainedSmeltingTrigger import ru.dbotthepony.mc.otm.triggers.ExopackObtainedTrigger import ru.dbotthepony.mc.otm.triggers.ExopackSlotsExpandedTrigger import java.util.* import java.util.stream.Stream import kotlin.collections.ArrayDeque -import kotlin.math.cos -import kotlin.math.sin import kotlin.reflect.KMutableProperty1 private fun Player.dropContainer(container: Container, spill: Boolean = true, setThrower: Boolean = false) { @@ -236,7 +230,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial */ val tickList = TickList() - private val exoPackSlotModifierMap: MutableMap by synchronizer.Map( + private val exopackSlotModifierMap: MutableMap by synchronizer.Map( keyCodec = UUIDValueCodec, valueCodec = IntValueCodec, backingMap = HashMap(), @@ -256,7 +250,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial } else { exopackContainer = PlayerMatteryContainer(it) } - }, backingMap = this.exoPackSlotModifierMap) + }, backingMap = this.exopackSlotModifierMap) val regularSlotFilters = immutableList(Inventory.INVENTORY_SIZE) { synchronizer.Field(null, ItemValueCodec.nullable) @@ -322,6 +316,17 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial } }).property + var isExopackEnderAccessInstalled by publicSynchronizer.bool(setter = setter@{ value, access, _ -> + if (value != access.readBoolean()) { + access.write(value) + _exoPackMenu = null + + if (value && ply is ServerPlayer) { + ExopackGainedEnderAccessTrigger.trigger(ply) + } + } + }).property + private var _exoPackMenu: ExopackInventoryMenu? = null set(value) { if (field == ply.containerMenu) { ply.closeContainer() } @@ -511,6 +516,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial savetables.bool(::hasExopack, "hasExoSuit") savetables.bool(::isExopackVisible, "displayExoSuit") savetables.bool(::isExopackCraftingUpgraded, "isExoSuitCraftingUpgraded") + savetables.bool(::isExopackEnderAccessInstalled, "isExopackEnderAccessUpgraded") savetables.int(::nextDischargeHurt) savetables.int(::nextHealTick) @@ -902,6 +908,10 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial override fun deserializeNBT(tag: CompoundTag) { savetables.deserializeNBT(tag) + if (MItems.ExopackUpgrades.INVENTORY_UPGRADE_ENDER_DRAGON.uuid(ItemStack.EMPTY) in exopackSlotModifierMap) { + isExopackEnderAccessInstalled = true + } + if (ply is ServerPlayer && hasExopack) ExopackSlotsExpandedTrigger.trigger(ply, 0, exopackContainer.containerSize) @@ -1473,6 +1483,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial enum class UpgradeType(val prop: KMutableProperty1) { CRAFTING(MatteryPlayerCapability::isExopackCraftingUpgraded), + ENDER_ACCESS(MatteryPlayerCapability::isExopackEnderAccessInstalled), SMELTING(MatteryPlayerCapability::isExopackSmeltingInstalled); } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ExopackInventoryScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ExopackInventoryScreen.kt index 3d33f11ff..b978a9521 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ExopackInventoryScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ExopackInventoryScreen.kt @@ -147,24 +147,28 @@ class ExopackInventoryScreen(menu: ExopackInventoryMenu) : MatteryScreen( var inactiveIcon: IGUIRenderable? = null, ) : AbstractButtonPanel(this@FramePanel.screen, this@FramePanel, 0f, 0f, 26f, 28f) { var isActive = tabs.isEmpty() + protected set init { tabs.add(this) @@ -117,7 +118,7 @@ open class FramePanel( onClose?.run() } - override fun onClick(mouseButton: Int) { + fun activate() { if (!isActive) { for (tab in tabs) { if (tab !== this) { @@ -133,6 +134,10 @@ open class FramePanel( } } + override fun onClick(mouseButton: Int) { + activate() + } + override fun onRemoved() { super.onRemoved() tabs.remove(this) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/exopack/AbstractExopackSlotUpgradeItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/exopack/AbstractExopackSlotUpgradeItem.kt index 2e667ec48..d99790504 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/exopack/AbstractExopackSlotUpgradeItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/exopack/AbstractExopackSlotUpgradeItem.kt @@ -20,6 +20,7 @@ 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.registry.MItems import ru.dbotthepony.mc.otm.runIfClient import ru.dbotthepony.mc.otm.triggers.ExopackSlotsExpandedTrigger import java.util.UUID @@ -108,6 +109,10 @@ abstract class AbstractExopackSlotUpgradeItem(properties: Properties = defaultPr 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) + } } return itemStack diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/ExopackInventoryMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/ExopackInventoryMenu.kt index e671e5a9a..6e88d8814 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/ExopackInventoryMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/ExopackInventoryMenu.kt @@ -115,6 +115,21 @@ class ExopackInventoryMenu(val capability: MatteryPlayerCapability) : MatteryMen addStorageSlot(furnaceOutputs, condition = furnaceMenuOpenState) } + val enderChestSlots: List + val enderChestOpenState = InstantBooleanInput(this) + + init { + if (capability.isExopackEnderAccessInstalled) { + enderChestSlots = makeSlots(ply.enderChestInventory) { a, b -> + MatterySlot(a, b).also { + addStorageSlot(it, condition = enderChestOpenState) + } + } + } else { + enderChestSlots = listOf() + } + } + private var isRemoved = false override fun slotsChanged(container: Container) { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MCreativeTabs.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MCreativeTabs.kt index dcbc6ac30..e5b562685 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MCreativeTabs.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MCreativeTabs.kt @@ -188,6 +188,7 @@ private fun addMainCreativeTabItems(consumer: CreativeModeTab.Output) { accept(MItems.ExopackUpgrades.INVENTORY_UPGRADE_CREATIVE) accept(MItems.ExopackUpgrades.CRAFTING_UPGRADE) accept(MItems.ExopackUpgrades.SMELTING_UPGRADE) + accept(MItems.ExopackUpgrades.ENDER_UPGRADE) accept(MItems.ExopackUpgrades.INVENTORY_UPGRADE_BIG) accept(MItems.ExopackUpgrades.INVENTORY_UPGRADE_HUGE) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItems.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItems.kt index 74847ca2d..7fe271ea3 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItems.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItems.kt @@ -512,21 +512,22 @@ object MItems { 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 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_UPGRADE_CREATIVE: ExopackSlotUpgradeItem by registry.register("exosuit_inventory_upgrade_creative") { ExopackSlotUpgradeItem(null, 27, Rarity.EPIC) } + val CRAFTING_UPGRADE: ExopackUpgradeItem by registry.register("exosuit_crafting_upgrade") { ExopackUpgradeItem(MatteryPlayerCapability.UpgradeType.CRAFTING, "crafting_upgrade", "crafting_upgraded") } + val SMELTING_UPGRADE: ExopackUpgradeItem by registry.register("exopack_smelting_upgrade") { ExopackUpgradeItem(MatteryPlayerCapability.UpgradeType.SMELTING, "smelting_upgrade", "smelting_installed") } + val ENDER_UPGRADE: ExopackUpgradeItem by registry.register("exopack_ender_upgrade") { ExopackUpgradeItem(MatteryPlayerCapability.UpgradeType.ENDER_ACCESS, "ender_access_upgrade", "ender_access_installed") } val INVENTORY_UPGRADES = SupplierList(8) { 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: ProceduralExopackSlotUpgradeItem 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: ExopackSlotUpgradeItem by registry.register("exosuit_inventory_upgrade_big") { ExopackSlotUpgradeItem(60, Rarity.RARE) } + val INVENTORY_UPGRADE_HUGE: ExopackSlotUpgradeItem 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: ExopackSlotUpgradeItem by registry.register("exosuit_inventory_upgrade_wither") { ExopackSlotUpgradeItem(180, Rarity.RARE, hasDescription = true) } + val INVENTORY_UPGRADE_ENDER_DRAGON: ExopackSlotUpgradeItem by registry.register("exosuit_inventory_upgrade_ender_dragon") { ExopackSlotUpgradeItem(180, Rarity.EPIC, hasDescription = true) } } init { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MRegistry.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MRegistry.kt index f0c2ee936..fd51b3838 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MRegistry.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MRegistry.kt @@ -55,6 +55,7 @@ import ru.dbotthepony.mc.otm.triggers.BlackHoleTrigger import ru.dbotthepony.mc.otm.triggers.EnderTeleporterFallDeathTrigger import ru.dbotthepony.mc.otm.triggers.ExopackBatterySlotTrigger import ru.dbotthepony.mc.otm.triggers.ExopackGainedCraftingTrigger +import ru.dbotthepony.mc.otm.triggers.ExopackGainedEnderAccessTrigger import ru.dbotthepony.mc.otm.triggers.ExopackGainedSmeltingTrigger import ru.dbotthepony.mc.otm.triggers.ExopackObtainedTrigger import ru.dbotthepony.mc.otm.triggers.ExopackSlotsExpandedTrigger @@ -303,6 +304,7 @@ object MRegistry { CriteriaTriggers.register(ExopackObtainedTrigger) CriteriaTriggers.register(ExopackGainedSmeltingTrigger) CriteriaTriggers.register(ExopackGainedCraftingTrigger) + CriteriaTriggers.register(ExopackGainedEnderAccessTrigger) CriteriaTriggers.register(ExopackSlotsExpandedTrigger) CriteriaTriggers.register(ExopackBatterySlotTrigger) CriteriaTriggers.register(TakeItemOutOfReplicatorTrigger) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/triggers/ExopackTriggers.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/triggers/ExopackTriggers.kt index c036e5556..ec3e399de 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/triggers/ExopackTriggers.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/triggers/ExopackTriggers.kt @@ -17,6 +17,7 @@ import ru.dbotthepony.mc.otm.core.toJsonStrict val ExopackObtainedTrigger = SingletonTrigger(ResourceLocation(OverdriveThatMatters.MOD_ID, "exopack_obtained")) val ExopackGainedCraftingTrigger = SingletonTrigger(ResourceLocation(OverdriveThatMatters.MOD_ID, "exopack_gained_crafting")) val ExopackGainedSmeltingTrigger = SingletonTrigger(ResourceLocation(OverdriveThatMatters.MOD_ID, "exopack_gained_smelting")) +val ExopackGainedEnderAccessTrigger = SingletonTrigger(ResourceLocation(OverdriveThatMatters.MOD_ID, "exopack_gained_ender_access")) val ExopackBatterySlotTrigger = ItemTrigger(ResourceLocation(OverdriveThatMatters.MOD_ID, "exopack_battery_slot")) diff --git a/src/main/resources/assets/overdrive_that_matters/textures/item/exopack_ender_upgrade.png b/src/main/resources/assets/overdrive_that_matters/textures/item/exopack_ender_upgrade.png new file mode 100644 index 000000000..0712ac982 Binary files /dev/null and b/src/main/resources/assets/overdrive_that_matters/textures/item/exopack_ender_upgrade.png differ