Move listener automated add/remove to extension function

This commit is contained in:
DBotThePony 2022-06-08 15:25:12 +07:00
parent 0e140ad4f4
commit 5a3d68ea80
Signed by: DBot
GPG Key ID: DCC23B5715498507
2 changed files with 16 additions and 19 deletions

View File

@ -8,10 +8,7 @@ import ru.dbotthepony.mc.otm.capability.MatteryCapability
import ru.dbotthepony.mc.otm.menu.data.INetworkedItemViewSupplier
import ru.dbotthepony.mc.otm.menu.data.NetworkedItemView
import ru.dbotthepony.mc.otm.registry.MMenus
import ru.dbotthepony.mc.otm.storage.ITEM_STORAGE
import ru.dbotthepony.mc.otm.storage.ItemStackWrapper
import ru.dbotthepony.mc.otm.storage.PoweredVirtualComponent
import ru.dbotthepony.mc.otm.storage.VirtualComponent
import ru.dbotthepony.mc.otm.storage.*
class ItemMonitorMenu @JvmOverloads constructor(
p_38852_: Int,

View File

@ -124,30 +124,30 @@ interface IStorageProvider<T : IStorageStack> : IStorageEventProducer<T> {
* @return copy of object, with amount of units actually extracted
*/
fun extractStack(id: Long, amount: BigInteger, simulate: Boolean): T
}
fun addListenerAuto(listener: IStorageEventConsumer<T>): Boolean {
if (addListener(listener)) {
for (stack in stacks) {
listener.addStack(stack.stack, stack.id, this)
}
return true
fun <T : IStorageStack> IStorageProvider<T>.removeListenerAuto(listener: IStorageEventConsumer<T>): Boolean {
if (removeListener(listener)) {
for (stack in stacks) {
listener.removeStack(stack.stack, stack.id)
}
return false
return true
}
fun removeListenerAuto(listener: IStorageEventConsumer<T>): Boolean {
if (removeListener(listener)) {
for (stack in stacks) {
listener.removeStack(stack.stack, stack.id)
}
return false
}
return true
fun <T : IStorageStack> IStorageProvider<T>.addListenerAuto(listener: IStorageEventConsumer<T>): Boolean {
if (addListener(listener)) {
for (stack in stacks) {
listener.addStack(stack.stack, stack.id, this)
}
return false
return true
}
return false
}
interface IStorageComponent<T : IStorageStack> : IStorageProvider<T>, IStorageAcceptor<T>