Stateful dont have to inherit nullable tag types
This commit is contained in:
parent
5bc104b04d
commit
37cd1600ab
@ -41,38 +41,38 @@ class Savetables : INBTSerializable<CompoundTag?> {
|
||||
fun validate()
|
||||
}
|
||||
|
||||
inline fun <V : INBTSerializable<T?>, reified T : Tag> stateful(getter: Supplier<V>, name: String): Stateful<V, T> {
|
||||
inline fun <V : INBTSerializable<T>, reified T : Tag> stateful(getter: Supplier<V>, name: String): Stateful<V, T> {
|
||||
return stateful(getter, name, T::class.java)
|
||||
}
|
||||
|
||||
inline fun <V : INBTSerializable<T?>, reified T : Tag> stateful(getter: V, name: String): Stateful<V, T> {
|
||||
inline fun <V : INBTSerializable<T>, reified T : Tag> stateful(getter: V, name: String): Stateful<V, T> {
|
||||
return stateful(getter, name, T::class.java)
|
||||
}
|
||||
|
||||
inline fun <V : INBTSerializable<T?>, reified T : Tag> stateful(getter: KProperty0<V>, name: String = getter.name): Stateful<V, T> {
|
||||
inline fun <V : INBTSerializable<T>, reified T : Tag> stateful(getter: KProperty0<V>, name: String = getter.name): Stateful<V, T> {
|
||||
return stateful(getter, name, T::class.java)
|
||||
}
|
||||
|
||||
inline fun <V : INBTSerializable<T?>, reified T : Tag> stateful(values: Collection<V>, name: String): ImmutableList<Stateful<V, T>> {
|
||||
inline fun <V : INBTSerializable<T>, reified T : Tag> stateful(values: Collection<V>, name: String): ImmutableList<Stateful<V, T>> {
|
||||
val iterator = values.iterator()
|
||||
return immutableList(values.size) {
|
||||
stateful(iterator.next(), "${name}_$it", T::class.java)
|
||||
}
|
||||
}
|
||||
|
||||
fun <V : INBTSerializable<T?>, T : Tag> stateful(getter: Supplier<V>, name: String, type: Class<T>): Stateful<V, T> {
|
||||
fun <V : INBTSerializable<T>, T : Tag> stateful(getter: Supplier<V>, name: String, type: Class<T>): Stateful<V, T> {
|
||||
return Stateful(getter, name, type)
|
||||
.withSerializer { it, l -> it.serializeNBT(l) }
|
||||
.withDeserializer { v, t, l -> v.deserializeNBT(l, t) }
|
||||
}
|
||||
|
||||
fun <V : INBTSerializable<T?>, T : Tag> stateful(getter: V, name: String, type: Class<T>): Stateful<V, T> {
|
||||
fun <V : INBTSerializable<T>, T : Tag> stateful(getter: V, name: String, type: Class<T>): Stateful<V, T> {
|
||||
return Stateful({ getter }, name, type)
|
||||
.withSerializer { it, l -> it.serializeNBT(l) }
|
||||
.withDeserializer { v, t, l -> v.deserializeNBT(l, t) }
|
||||
}
|
||||
|
||||
fun <V : INBTSerializable<T?>, T : Tag> stateful(getter: KProperty0<V>, name: String = getter.name, type: Class<T>): Stateful<V, T> {
|
||||
fun <V : INBTSerializable<T>, T : Tag> stateful(getter: KProperty0<V>, name: String = getter.name, type: Class<T>): Stateful<V, T> {
|
||||
return Stateful(getter, name, type)
|
||||
.withSerializer { it, l -> it.serializeNBT(l) }
|
||||
.withDeserializer { v, t, l -> v.deserializeNBT(l, t) }
|
||||
|
Loading…
Reference in New Issue
Block a user