Move listener automated add/remove to extension function
This commit is contained in:
parent
0e140ad4f4
commit
5a3d68ea80
@ -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.INetworkedItemViewSupplier
|
||||||
import ru.dbotthepony.mc.otm.menu.data.NetworkedItemView
|
import ru.dbotthepony.mc.otm.menu.data.NetworkedItemView
|
||||||
import ru.dbotthepony.mc.otm.registry.MMenus
|
import ru.dbotthepony.mc.otm.registry.MMenus
|
||||||
import ru.dbotthepony.mc.otm.storage.ITEM_STORAGE
|
import ru.dbotthepony.mc.otm.storage.*
|
||||||
import ru.dbotthepony.mc.otm.storage.ItemStackWrapper
|
|
||||||
import ru.dbotthepony.mc.otm.storage.PoweredVirtualComponent
|
|
||||||
import ru.dbotthepony.mc.otm.storage.VirtualComponent
|
|
||||||
|
|
||||||
class ItemMonitorMenu @JvmOverloads constructor(
|
class ItemMonitorMenu @JvmOverloads constructor(
|
||||||
p_38852_: Int,
|
p_38852_: Int,
|
||||||
|
@ -124,20 +124,9 @@ interface IStorageProvider<T : IStorageStack> : IStorageEventProducer<T> {
|
|||||||
* @return copy of object, with amount of units actually extracted
|
* @return copy of object, with amount of units actually extracted
|
||||||
*/
|
*/
|
||||||
fun extractStack(id: Long, amount: BigInteger, simulate: Boolean): T
|
fun extractStack(id: Long, amount: BigInteger, simulate: Boolean): T
|
||||||
|
}
|
||||||
|
|
||||||
fun addListenerAuto(listener: IStorageEventConsumer<T>): Boolean {
|
fun <T : IStorageStack> IStorageProvider<T>.removeListenerAuto(listener: IStorageEventConsumer<T>): Boolean {
|
||||||
if (addListener(listener)) {
|
|
||||||
for (stack in stacks) {
|
|
||||||
listener.addStack(stack.stack, stack.id, this)
|
|
||||||
}
|
|
||||||
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
fun removeListenerAuto(listener: IStorageEventConsumer<T>): Boolean {
|
|
||||||
if (removeListener(listener)) {
|
if (removeListener(listener)) {
|
||||||
for (stack in stacks) {
|
for (stack in stacks) {
|
||||||
listener.removeStack(stack.stack, stack.id)
|
listener.removeStack(stack.stack, stack.id)
|
||||||
@ -147,7 +136,18 @@ interface IStorageProvider<T : IStorageStack> : IStorageEventProducer<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return false
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
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 true
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
interface IStorageComponent<T : IStorageStack> : IStorageProvider<T>, IStorageAcceptor<T>
|
interface IStorageComponent<T : IStorageStack> : IStorageProvider<T>, IStorageAcceptor<T>
|
||||||
|
Loading…
Reference in New Issue
Block a user