mirror of
https://github.com/alexcrea/CustomAnvil.git
synced 2026-06-23 08:14:00 +02:00
create negative material set for iterator
This commit is contained in:
parent
41a62d810a
commit
440b2b2741
3 changed files with 27 additions and 5 deletions
|
|
@ -6,7 +6,7 @@ import java.util.*
|
|||
class ExcludeGroup(name: String) : AbstractMaterialGroup(name) {
|
||||
|
||||
override fun createDefaultSet(): MutableSet<NamespacedKey> {
|
||||
return NegativeSet(HashSet())
|
||||
return NegativeMaterialSet()
|
||||
}
|
||||
|
||||
private var includedGroup: MutableSet<AbstractMaterialGroup> = HashSet()
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
package xyz.alexcrea.cuanvil.group
|
||||
|
||||
import org.bukkit.NamespacedKey
|
||||
import xyz.alexcrea.cuanvil.util.MaterialUtil
|
||||
import xyz.alexcrea.cuanvil.util.NegativeSet
|
||||
|
||||
class NegativeMaterialSet: NegativeSet<NamespacedKey>() {
|
||||
|
||||
override fun iterator(): MutableIterator<NamespacedKey> {
|
||||
val materials = MaterialUtil.getMaterials()
|
||||
materials.removeIf { negate.contains(it) }
|
||||
|
||||
return materials.iterator()
|
||||
}
|
||||
|
||||
override fun isEmpty(): Boolean {
|
||||
return negate.size >= MaterialUtil.getMaterialCount()
|
||||
}
|
||||
|
||||
override val size get() = MaterialUtil.getMaterialCount() - negate.size
|
||||
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package xyz.alexcrea.cuanvil.group
|
||||
package xyz.alexcrea.cuanvil.util
|
||||
|
||||
class NegativeSet<T>(val negate: MutableSet<T>) : MutableSet<T> {
|
||||
open class NegativeSet<T>(val negate: MutableSet<T> = HashSet()) : MutableSet<T> {
|
||||
|
||||
override fun iterator(): MutableIterator<T> {
|
||||
TODO("Not yet implemented") // can't be implemented I guess
|
||||
|
|
@ -15,7 +15,7 @@ class NegativeSet<T>(val negate: MutableSet<T>) : MutableSet<T> {
|
|||
}
|
||||
|
||||
override fun addAll(elements: Collection<T>): Boolean {
|
||||
return negate.removeAll(elements)
|
||||
return negate.removeAll(elements.toSet())
|
||||
}
|
||||
|
||||
override fun removeAll(elements: Collection<T>): Boolean {
|
||||
|
|
@ -34,7 +34,7 @@ class NegativeSet<T>(val negate: MutableSet<T>) : MutableSet<T> {
|
|||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override val size get() = TODO("Not yet implemented")
|
||||
override val size: Int get() = TODO("Not yet implemented")
|
||||
|
||||
override fun contains(element: T): Boolean {
|
||||
return !negate.contains(element)
|
||||
Loading…
Add table
Add a link
Reference in a new issue