mirror of
https://github.com/alexcrea/CustomAnvil.git
synced 2026-06-23 16:16:17 +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) {
|
class ExcludeGroup(name: String) : AbstractMaterialGroup(name) {
|
||||||
|
|
||||||
override fun createDefaultSet(): MutableSet<NamespacedKey> {
|
override fun createDefaultSet(): MutableSet<NamespacedKey> {
|
||||||
return NegativeSet(HashSet())
|
return NegativeMaterialSet()
|
||||||
}
|
}
|
||||||
|
|
||||||
private var includedGroup: MutableSet<AbstractMaterialGroup> = HashSet()
|
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> {
|
override fun iterator(): MutableIterator<T> {
|
||||||
TODO("Not yet implemented") // can't be implemented I guess
|
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 {
|
override fun addAll(elements: Collection<T>): Boolean {
|
||||||
return negate.removeAll(elements)
|
return negate.removeAll(elements.toSet())
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun removeAll(elements: Collection<T>): Boolean {
|
override fun removeAll(elements: Collection<T>): Boolean {
|
||||||
|
|
@ -34,7 +34,7 @@ class NegativeSet<T>(val negate: MutableSet<T>) : MutableSet<T> {
|
||||||
TODO("Not yet implemented")
|
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 {
|
override fun contains(element: T): Boolean {
|
||||||
return !negate.contains(element)
|
return !negate.contains(element)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue