Get rid of atlas skin element cache
since it is useless anyway
This commit is contained in:
parent
6f206bf02e
commit
9bf31d2af0
@ -26,12 +26,19 @@ import ru.dbotthepony.mc.otm.isClientThread
|
||||
import java.lang.reflect.Type
|
||||
import java.util.stream.Stream
|
||||
|
||||
fun AtlasSkinElement(location: ResourceLocation) = AtlasSkinElement.create(location)
|
||||
|
||||
class AtlasSkinElement private constructor(
|
||||
val location: ResourceLocation,
|
||||
marker: Any?
|
||||
class AtlasSkinElement(
|
||||
val location: ResourceLocation
|
||||
) : AbstractSkinElement() {
|
||||
init {
|
||||
synchronized(keys) {
|
||||
if (keys.add(location)) {
|
||||
if (isWidgetAtlasAvailable) {
|
||||
queueRebuild()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private var changeset = -1
|
||||
private var _textureAtlasSprite: TextureAtlasSprite? = null
|
||||
|
||||
@ -89,36 +96,19 @@ class AtlasSkinElement private constructor(
|
||||
}
|
||||
|
||||
companion object : TypeAdapter<AtlasSkinElement>(), JsonSerializer<AtlasSkinElement>, JsonDeserializer<AtlasSkinElement> {
|
||||
private val skinElementCache = HashMap<ResourceLocation, AtlasSkinElement>()
|
||||
|
||||
val keysStream: Stream<ResourceLocation> get() = skinElementCache.keys.stream()
|
||||
private val keys = HashSet<ResourceLocation>()
|
||||
val keysStream: Stream<ResourceLocation> get() = keys.stream()
|
||||
|
||||
private fun queueRebuild() {
|
||||
WidgetAtlasHolder.INSTANCE.queueRebuild()
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun create(location: ResourceLocation): AtlasSkinElement {
|
||||
var element = skinElementCache[location]
|
||||
|
||||
if (element == null) {
|
||||
element = AtlasSkinElement(location, null)
|
||||
skinElementCache[location] = element
|
||||
|
||||
if (isWidgetAtlasAvailable) {
|
||||
queueRebuild()
|
||||
}
|
||||
}
|
||||
|
||||
return element
|
||||
}
|
||||
|
||||
fun fromNetwork(buff: FriendlyByteBuf): AtlasSkinElement {
|
||||
return create(buff.readResourceLocation())
|
||||
return AtlasSkinElement(buff.readResourceLocation())
|
||||
}
|
||||
|
||||
fun fromJson(element: JsonElement): AtlasSkinElement {
|
||||
return create(ResourceLocation.tryParse(element.asString) ?: ResourceLocation("missing"))
|
||||
return AtlasSkinElement(ResourceLocation.tryParse(element.asString) ?: ResourceLocation("missing"))
|
||||
}
|
||||
|
||||
override fun write(out: JsonWriter, value: AtlasSkinElement) {
|
||||
|
Loading…
Reference in New Issue
Block a user