From 6f04dc05e98f055411cf6840730012f0f0526dc1 Mon Sep 17 00:00:00 2001 From: Ayfri Date: Tue, 15 Feb 2022 18:00:44 +0100 Subject: [PATCH] feat: Add events types to BaseTexture, BaseRenderTexture & Texture. --- .../externals/extensions/_BaseRenderTexture.kt | 18 ++++++++++++++++++ .../pixi/externals/extensions/_BaseTexture.kt | 18 ++++++++++++++++++ .../pixi/externals/extensions/_Texture.kt | 12 ++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 src/main/kotlin/pixi/externals/extensions/_BaseRenderTexture.kt create mode 100644 src/main/kotlin/pixi/externals/extensions/_BaseTexture.kt create mode 100644 src/main/kotlin/pixi/externals/extensions/_Texture.kt diff --git a/src/main/kotlin/pixi/externals/extensions/_BaseRenderTexture.kt b/src/main/kotlin/pixi/externals/extensions/_BaseRenderTexture.kt new file mode 100644 index 0000000..af7edab --- /dev/null +++ b/src/main/kotlin/pixi/externals/extensions/_BaseRenderTexture.kt @@ -0,0 +1,18 @@ +package pixi.externals.extensions + +import org.w3c.dom.ErrorEvent +import pixi.typings.ListenerFn +import pixi.typings.core.BaseRenderTexture +import pixi.typings.core.BaseTexture +import pixi.typings.core.Resource + +sealed interface BaseRenderTextureEvents : BaseTextureEvents { + object error : BaseRenderTextureEvents, ErrorEvent>> + object loaded : BaseRenderTextureEvents> +} + +inline fun > BaseRenderTexture.emit(vararg arguments: T) = emit(T::class.simpleName!!, arguments as Array) +fun BaseRenderTexture.on(event: BaseRenderTextureEvents, callback: (T) -> Unit) = on(event::class.simpleName!!, callback as ListenerFn, null) +fun BaseRenderTexture.once(event: BaseRenderTextureEvents, callback: (T) -> Unit) = once(event::class.simpleName!!, callback as ListenerFn, null) +fun BaseRenderTexture.off(event: BaseRenderTextureEvents, callback: (T) -> Unit) = off(event::class.simpleName!!, callback as ListenerFn, null) + diff --git a/src/main/kotlin/pixi/externals/extensions/_BaseTexture.kt b/src/main/kotlin/pixi/externals/extensions/_BaseTexture.kt new file mode 100644 index 0000000..717c154 --- /dev/null +++ b/src/main/kotlin/pixi/externals/extensions/_BaseTexture.kt @@ -0,0 +1,18 @@ +package pixi.externals.extensions + +import org.w3c.dom.ErrorEvent +import pixi.typings.ListenerFn +import pixi.typings.core.BaseTexture +import pixi.typings.core.Resource + +sealed interface BaseTextureEvents { + object dispose : BaseTextureEvents> + object error : BaseTextureEvents, ErrorEvent>> + object loaded : BaseTextureEvents> + object update : BaseTextureEvents> +} + +inline fun > BaseTexture<*, *>.emit(vararg arguments: T) = emit(T::class.simpleName!!, arguments as Array) +fun BaseTexture<*, *>.on(event: BaseTextureEvents, callback: (T) -> Unit) = on(event::class.simpleName!!, callback as ListenerFn, null) +fun BaseTexture<*, *>.once(event: BaseTextureEvents, callback: (T) -> Unit) = once(event::class.simpleName!!, callback as ListenerFn, null) +fun BaseTexture<*, *>.off(event: BaseTextureEvents, callback: (T) -> Unit) = off(event::class.simpleName!!, callback as ListenerFn, null) diff --git a/src/main/kotlin/pixi/externals/extensions/_Texture.kt b/src/main/kotlin/pixi/externals/extensions/_Texture.kt new file mode 100644 index 0000000..614f0a9 --- /dev/null +++ b/src/main/kotlin/pixi/externals/extensions/_Texture.kt @@ -0,0 +1,12 @@ +package pixi.externals.extensions + +import pixi.typings.ListenerFn +import pixi.typings.core.Texture + +sealed interface TextureEvents : BaseTextureEvents + +inline fun > Texture<*>.emit(vararg arguments: T) = emit(T::class.simpleName!!, arguments as Array) +fun Texture<*>.on(event: TextureEvents, callback: (T) -> Unit) = on(event::class.simpleName!!, callback as ListenerFn, null) +fun Texture<*>.once(event: TextureEvents, callback: (T) -> Unit) = once(event::class.simpleName!!, callback as ListenerFn, null) +fun Texture<*>.off(event: TextureEvents, callback: (T) -> Unit) = off(event::class.simpleName!!, callback as ListenerFn, null) +