Icon of a GUI element now retrieved through a method
This commit is contained in:
@@ -116,10 +116,10 @@ class InventoryGUIShared<T : ForInventory>(
|
|||||||
if (invSlot != null) {
|
if (invSlot != null) {
|
||||||
val offsetSlot = invSlot.add(offsetHorizontally, offsetVertically).realSlotIn(dimensions)
|
val offsetSlot = invSlot.add(offsetHorizontally, offsetVertically).realSlotIn(dimensions)
|
||||||
if (offsetSlot != null)
|
if (offsetSlot != null)
|
||||||
bukkitInventory.setItem(offsetSlot, slot.inventoryGUIElementData.itemStack)
|
bukkitInventory.setItem(offsetSlot, slot.getItemStack(this))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
bukkitInventory.setItem(it.key, slot.inventoryGUIElementData.itemStack)
|
bukkitInventory.setItem(it.key, slot.getItemStack(this))
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -8,13 +8,9 @@ abstract class InventoryGUISlot<T : ForInventory> {
|
|||||||
|
|
||||||
// ELEMENT
|
// ELEMENT
|
||||||
|
|
||||||
class InventoryGUIElementData(
|
abstract class InventoryGUIElement<T : ForInventory> : InventoryGUISlot<T>() {
|
||||||
val itemStack: ItemStack
|
|
||||||
)
|
|
||||||
|
|
||||||
abstract class InventoryGUIElement<T : ForInventory>(
|
abstract fun getItemStack(gui: InventoryGUI<*>): ItemStack
|
||||||
val inventoryGUIElementData: InventoryGUIElementData
|
|
||||||
) : InventoryGUISlot<T>() {
|
|
||||||
|
|
||||||
final override fun onClick(clickEvent: InventoryGUIClickEvent<T>) {
|
final override fun onClick(clickEvent: InventoryGUIClickEvent<T>) {
|
||||||
clickEvent.gui.data.generalOnClick?.invoke(clickEvent)
|
clickEvent.gui.data.generalOnClick?.invoke(clickEvent)
|
||||||
|
@@ -1,14 +1,14 @@
|
|||||||
package net.axay.kspigot.inventory.elements
|
package net.axay.kspigot.inventory.elements
|
||||||
|
|
||||||
import net.axay.kspigot.inventory.ForInventory
|
import net.axay.kspigot.inventory.*
|
||||||
import net.axay.kspigot.inventory.InventoryGUIClickEvent
|
import org.bukkit.inventory.ItemStack
|
||||||
import net.axay.kspigot.inventory.InventoryGUIElement
|
|
||||||
import net.axay.kspigot.inventory.InventoryGUIElementData
|
|
||||||
|
|
||||||
open class InventoryGUIButton<T : ForInventory>(
|
open class InventoryGUIButton<T : ForInventory>(
|
||||||
inventoryGUIElementData: InventoryGUIElementData,
|
private val icon: ItemStack,
|
||||||
val action: (InventoryGUIClickEvent<T>) -> Unit,
|
val action: (InventoryGUIClickEvent<T>) -> Unit,
|
||||||
) : InventoryGUIElement<T>(inventoryGUIElementData) {
|
) : InventoryGUIElement<T>() {
|
||||||
|
|
||||||
|
override fun getItemStack(gui: InventoryGUI<*>) = icon
|
||||||
|
|
||||||
override fun onClickElement(clickEvent: InventoryGUIClickEvent<T>) {
|
override fun onClickElement(clickEvent: InventoryGUIClickEvent<T>) {
|
||||||
clickEvent.bukkitEvent.isCancelled = true
|
clickEvent.bukkitEvent.isCancelled = true
|
||||||
|
@@ -1,13 +1,14 @@
|
|||||||
package net.axay.kspigot.inventory.elements
|
package net.axay.kspigot.inventory.elements
|
||||||
|
|
||||||
import net.axay.kspigot.inventory.*
|
import net.axay.kspigot.inventory.*
|
||||||
|
import org.bukkit.inventory.ItemStack
|
||||||
|
|
||||||
class InventoryGUIButtonInventoryChange<T : ForInventory>(
|
class InventoryGUIButtonInventoryChange<T : ForInventory>(
|
||||||
inventoryGUIElementData: InventoryGUIElementData,
|
icon: ItemStack,
|
||||||
changeToGUICallback: () -> InventoryGUI<*>,
|
changeToGUICallback: () -> InventoryGUI<*>,
|
||||||
changeToPageInt: Int?,
|
changeToPageInt: Int?,
|
||||||
onChange: ((InventoryGUIClickEvent<T>) -> Unit)?
|
onChange: ((InventoryGUIClickEvent<T>) -> Unit)?
|
||||||
) : InventoryGUIButton<T>(inventoryGUIElementData, {
|
) : InventoryGUIButton<T>(icon, {
|
||||||
|
|
||||||
val changeToGUI = changeToGUICallback.invoke()
|
val changeToGUI = changeToGUICallback.invoke()
|
||||||
|
|
||||||
|
@@ -1,12 +1,13 @@
|
|||||||
package net.axay.kspigot.inventory.elements
|
package net.axay.kspigot.inventory.elements
|
||||||
|
|
||||||
import net.axay.kspigot.inventory.*
|
import net.axay.kspigot.inventory.*
|
||||||
|
import org.bukkit.inventory.ItemStack
|
||||||
|
|
||||||
class InventoryGUIButtonPageChange<T : ForInventory>(
|
class InventoryGUIButtonPageChange<T : ForInventory>(
|
||||||
inventoryGUIElementData: InventoryGUIElementData,
|
icon: ItemStack,
|
||||||
calculator: InventoryGUIPageChangeCalculator,
|
calculator: InventoryGUIPageChangeCalculator,
|
||||||
onChange: ((InventoryGUIClickEvent<T>) -> Unit)?
|
onChange: ((InventoryGUIClickEvent<T>) -> Unit)?
|
||||||
) : InventoryGUIButton<T>(inventoryGUIElementData, {
|
) : InventoryGUIButton<T>(icon, {
|
||||||
|
|
||||||
val currentPage = it.gui.currentPage
|
val currentPage = it.gui.currentPage
|
||||||
val newPage = it.gui.getPage(calculator.calculateNewPage(it.gui.currentPageInt, it.gui.data.pages.keys))
|
val newPage = it.gui.getPage(calculator.calculateNewPage(it.gui.currentPageInt, it.gui.data.pages.keys))
|
||||||
|
@@ -1,13 +1,13 @@
|
|||||||
package net.axay.kspigot.inventory.elements
|
package net.axay.kspigot.inventory.elements
|
||||||
|
|
||||||
import net.axay.kspigot.inventory.ForInventory
|
import net.axay.kspigot.inventory.*
|
||||||
import net.axay.kspigot.inventory.InventoryGUIClickEvent
|
import org.bukkit.inventory.ItemStack
|
||||||
import net.axay.kspigot.inventory.InventoryGUIElement
|
|
||||||
import net.axay.kspigot.inventory.InventoryGUIElementData
|
|
||||||
|
|
||||||
class InventoryGUIPlaceholder<T : ForInventory>(
|
class InventoryGUIPlaceholder<T : ForInventory>(
|
||||||
inventoryGUIElementData: InventoryGUIElementData
|
private val icon: ItemStack
|
||||||
) : InventoryGUIElement<T>(inventoryGUIElementData) {
|
) : InventoryGUIElement<T>() {
|
||||||
|
|
||||||
|
override fun getItemStack(gui: InventoryGUI<*>) = icon
|
||||||
|
|
||||||
override fun onClickElement(clickEvent: InventoryGUIClickEvent<T>) {
|
override fun onClickElement(clickEvent: InventoryGUIClickEvent<T>) {
|
||||||
clickEvent.bukkitEvent.isCancelled = true
|
clickEvent.bukkitEvent.isCancelled = true
|
||||||
|
Reference in New Issue
Block a user