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 91d7bfa36..d5d1462ec 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MCreativeTabs.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MCreativeTabs.kt @@ -77,14 +77,16 @@ private fun CreativeModeTab.Output.all(values: Map) { } private fun CreativeModeTab.Output.energized(value: Item) { - accept(value) + val empty = ItemStack(value, 1) + accept(empty) - val stack = ItemStack(value, 1) - val energy = stack.matteryEnergy ?: throw IllegalArgumentException("${value.registryName} does not implement mattery energy capability") + val full = empty.copy() + val energy = full.matteryEnergy ?: throw IllegalArgumentException("${value.registryName} does not implement mattery energy capability") energy.fillBattery() - if (ItemStack(value, 1).matteryEnergy!!.batteryLevel != energy.batteryLevel) - accept(stack) + // FIXME + if (ItemStack(value, 1).matteryEnergy!!.batteryLevel != energy.batteryLevel && !ItemStack.isSameItemSameComponents(empty, full)) + accept(full) } private fun CreativeModeTab.Output.energized(values: Iterable) { @@ -94,15 +96,17 @@ private fun CreativeModeTab.Output.energized(values: Iterable) { } private fun CreativeModeTab.Output.mattery(value: Item) { - accept(value) + val empty = ItemStack(value, 1) + accept(empty) - val stack = ItemStack(value, 1) - val matter = stack.getCapability(MatteryCapability.MATTER_ITEM) ?: throw IllegalArgumentException("${value.registryName} does not implement matter capability") + val full = empty.copy() + val matter = full.getCapability(MatteryCapability.MATTER_ITEM) ?: throw IllegalArgumentException("${value.registryName} does not implement matter capability") matter.fillMatter() - if (ItemStack(value, 1).getCapability(MatteryCapability.MATTER_ITEM)!!.storedMatter != matter.storedMatter) - accept(stack) + // FIXME + if (ItemStack(value, 1).getCapability(MatteryCapability.MATTER_ITEM)!!.storedMatter != matter.storedMatter && !ItemStack.isSameItemSameComponents(empty, full)) + accept(full) } private fun CreativeModeTab.Output.mattery(values: Iterable) {