Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ class PhantomBlock(
companion object {
val KEY = pylonKey("error_item")
val BLOCK_KEY = pylonKey("block")
val STACK = ItemStackBuilder.pylonItem(Material.BARRIER, KEY)
val STACK = ItemStackBuilder.pylon(Material.BARRIER, KEY)
.build()
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ internal class DebugWaxedWeatheredCutCopperStairs(stack: ItemStack)

companion object {
val KEY = pylonKey("debug_waxed_weathered_cut_copper_stairs")
val STACK = ItemStackBuilder.pylonItem(Material.BRICK, KEY)
val STACK = ItemStackBuilder.pylon(Material.BRICK, KEY)
.set(DataComponentTypes.ITEM_MODEL, Material.WAXED_WEATHERED_CUT_COPPER_STAIRS.key)
.set(DataComponentTypes.ENCHANTMENT_GLINT_OVERRIDE, true)
.build()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class PylonGuide(stack: ItemStack) : PylonItem(stack), PylonInteractor {
val KEY = pylonKey("guide")

@JvmField
val STACK = ItemStackBuilder.pylonItem(Material.BOOK, KEY)
val STACK = ItemStackBuilder.pylon(Material.BOOK, KEY)
.set(DataComponentTypes.ITEM_MODEL, Key.key("knowledge_book"))
.set(DataComponentTypes.MAX_STACK_SIZE, 1)
.build()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
package io.github.pylonmc.pylon.core.fluid

import io.github.pylonmc.pylon.core.PylonCore
import io.github.pylonmc.pylon.core.datatypes.PylonSerializers
import io.github.pylonmc.pylon.core.i18n.PylonTranslator.Companion.translator
import io.github.pylonmc.pylon.core.item.builder.ItemStackBuilder
import io.github.pylonmc.pylon.core.registry.PylonRegistry
import io.github.pylonmc.pylon.core.util.getAddon
import io.github.pylonmc.pylon.core.util.pylonKey
import net.kyori.adventure.text.Component
import org.bukkit.Keyed
import org.bukkit.Material
import org.bukkit.NamespacedKey
import org.bukkit.inventory.ItemStack

/**
* Fluids aren't necessarily just liquids, they can also be gases or other substances that can flow.
Expand All @@ -29,8 +32,9 @@ open class PylonFluid(

private val internalItem by lazy {
val builder = ItemStackBuilder.of(material)
.name(Component.translatable("pylon.${key.namespace}.fluid.${key.key}"))
.editPdc { it.set(pylonFluidKeyKey, PylonSerializers.NAMESPACED_KEY, key) }
.addCustomModelDataString(key.toString())
.name(name)

for (tag in tags) {
builder.lore(tag.displayText)
Expand Down Expand Up @@ -94,4 +98,18 @@ open class PylonFluid(
override fun equals(other: Any?): Boolean = other is PylonFluid && key == other.key
override fun hashCode(): Int = key.hashCode()
override fun toString(): String = key.toString()

companion object {
val pylonFluidKeyKey = pylonKey("pylon_fluid_key")

/**
* Get the fluid represented by the given item stack, or null if the stack is null, empty or does not represent a fluid.
* See [item] for how to get an item stack that represents this fluid.
*/
fun fromStack(stack: ItemStack?): PylonFluid? {
if (stack == null || stack.isEmpty) return null
val id = stack.persistentDataContainer.get(pylonFluidKeyKey, PylonSerializers.NAMESPACED_KEY) ?: return null
return PylonRegistry.FLUIDS[id]
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package io.github.pylonmc.pylon.core.guide.button

import io.github.pylonmc.pylon.core.content.guide.PylonGuide
import io.github.pylonmc.pylon.core.item.builder.ItemStackBuilder
import io.github.pylonmc.pylon.core.util.pylonKey
import net.kyori.adventure.text.Component
import org.bukkit.Material
import org.bukkit.entity.Player
Expand All @@ -14,7 +15,7 @@ import xyz.xenondevs.invui.item.impl.AbstractItem
*/
open class BackButton() : AbstractItem() {

override fun getItemProvider() = ItemStackBuilder.of(Material.ENCHANTED_BOOK)
override fun getItemProvider() = ItemStackBuilder.gui(Material.ENCHANTED_BOOK, pylonKey("guide_back"))
.name(Component.translatable("pylon.pyloncore.guide.button.back.name"))
.lore(Component.translatable("pylon.pyloncore.guide.button.back.lore"))

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package io.github.pylonmc.pylon.core.guide.button

import io.github.pylonmc.pylon.core.resourcepack.block.BlockTextureEngine.cullingPreset
import io.github.pylonmc.pylon.core.config.PylonConfig
import io.github.pylonmc.pylon.core.i18n.PylonArgument
import io.github.pylonmc.pylon.core.item.builder.ItemStackBuilder
import io.github.pylonmc.pylon.core.resourcepack.block.BlockTextureConfig
import io.github.pylonmc.pylon.core.util.pylonKey
import net.kyori.adventure.text.Component
import org.bukkit.entity.Player
import org.bukkit.event.inventory.ClickType
Expand All @@ -15,7 +15,7 @@ import xyz.xenondevs.invui.item.impl.AbstractItem
class CullingPresetButton : AbstractItem() {
override fun getItemProvider(player: Player): ItemProvider? {
val preset = player.cullingPreset
return ItemStackBuilder.of(preset.material)
return ItemStackBuilder.gui(preset.material, pylonKey("guide_culling_preset_${preset.id}"))
.name(Component.translatable("pylon.pyloncore.guide.button.culling-preset.${preset.id}.name"))
.lore(
Component.translatable("pylon.pyloncore.guide.button.culling-preset.${preset.id}.lore")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import io.github.pylonmc.pylon.core.item.builder.ItemStackBuilder
import io.github.pylonmc.pylon.core.item.research.Research
import io.github.pylonmc.pylon.core.item.research.Research.Companion.researchPoints
import io.github.pylonmc.pylon.core.util.getAddon
import io.github.pylonmc.pylon.core.util.gui.GuiItems
import io.github.pylonmc.pylon.core.util.pylonKey
import net.kyori.adventure.text.Component
import org.bukkit.Material
import org.bukkit.entity.Player
Expand All @@ -21,7 +23,7 @@ open class ResearchButton(val research: Research) : AbstractItem() {

override fun getItemProvider(player: Player): ItemProvider = try {
val playerHasResearch = Research.getResearches(player).contains(research)
val item = ItemStackBuilder.of(if (playerHasResearch) Material.LIME_STAINED_GLASS_PANE else research.material)
val item = ItemStackBuilder.gui(if (playerHasResearch) Material.LIME_STAINED_GLASS_PANE else research.material, "${pylonKey("research")}:${research.key}:$playerHasResearch")
.name(research.name)

if (playerHasResearch) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package io.github.pylonmc.pylon.core.guide.button

import io.github.pylonmc.pylon.core.item.builder.ItemStackBuilder
import io.github.pylonmc.pylon.core.resourcepack.armor.ArmorTextureEngine.hasCustomArmorTextures
import io.github.pylonmc.pylon.core.util.pylonKey
import net.kyori.adventure.text.Component
import org.bukkit.Material
import org.bukkit.entity.Player
Expand All @@ -10,9 +11,10 @@ import org.bukkit.event.inventory.InventoryClickEvent
import xyz.xenondevs.invui.item.impl.AbstractItem

class ToggleArmorTexturesButton : AbstractItem() {
override fun getItemProvider(player: Player) = ItemStackBuilder.of(if (player.hasCustomArmorTextures) Material.LIME_CONCRETE else Material.RED_CONCRETE)
.name(Component.translatable("pylon.pyloncore.guide.button.toggle-armor-textures.name"))
.lore(Component.translatable("pylon.pyloncore.guide.button.toggle-armor-textures.lore"))
override fun getItemProvider(player: Player)
= ItemStackBuilder.gui(if (player.hasCustomArmorTextures) Material.LIME_CONCRETE else Material.RED_CONCRETE, pylonKey("toggle_armor_textures"))
.name(Component.translatable("pylon.pyloncore.guide.button.toggle-armor-textures.name"))
.lore(Component.translatable("pylon.pyloncore.guide.button.toggle-armor-textures.lore"))

override fun handleClick(clickType: ClickType, player: Player, event: InventoryClickEvent) {
player.hasCustomArmorTextures = !player.hasCustomArmorTextures
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package io.github.pylonmc.pylon.core.guide.button
import io.github.pylonmc.pylon.core.resourcepack.block.BlockTextureEngine.hasCustomBlockTextures
import io.github.pylonmc.pylon.core.item.builder.ItemStackBuilder
import io.github.pylonmc.pylon.core.resourcepack.block.BlockTextureEngine
import io.github.pylonmc.pylon.core.util.pylonKey
import net.kyori.adventure.text.Component
import org.bukkit.Material
import org.bukkit.entity.Player
Expand All @@ -11,9 +12,10 @@ import org.bukkit.event.inventory.InventoryClickEvent
import xyz.xenondevs.invui.item.impl.AbstractItem

class ToggleBlockTexturesButton : AbstractItem() {
override fun getItemProvider(player: Player) = ItemStackBuilder.of(if (player.hasCustomBlockTextures) Material.LIME_CONCRETE else Material.RED_CONCRETE)
.name(Component.translatable("pylon.pyloncore.guide.button.toggle-block-textures.name"))
.lore(Component.translatable("pylon.pyloncore.guide.button.toggle-block-textures.lore"))
override fun getItemProvider(player: Player)
= ItemStackBuilder.gui(if (player.hasCustomBlockTextures) Material.LIME_CONCRETE else Material.RED_CONCRETE, pylonKey("toggle_block_textures"))
.name(Component.translatable("pylon.pyloncore.guide.button.toggle-block-textures.name"))
.lore(Component.translatable("pylon.pyloncore.guide.button.toggle-block-textures.lore"))

override fun handleClick(clickType: ClickType, player: Player, event: InventoryClickEvent) {
player.hasCustomBlockTextures = !player.hasCustomBlockTextures
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package io.github.pylonmc.pylon.core.guide.button

import io.github.pylonmc.pylon.core.block.waila.Waila.Companion.wailaEnabled
import io.github.pylonmc.pylon.core.item.builder.ItemStackBuilder
import io.github.pylonmc.pylon.core.util.pylonKey
import net.kyori.adventure.text.Component
import org.bukkit.Material
import org.bukkit.entity.Player
Expand All @@ -14,9 +15,10 @@ import xyz.xenondevs.invui.item.impl.AbstractItem
*/
class ToggleWailaButton : AbstractItem() {

override fun getItemProvider(player: Player) = ItemStackBuilder.of(if (player.wailaEnabled) Material.LIME_CONCRETE else Material.RED_CONCRETE)
.name(Component.translatable("pylon.pyloncore.guide.button.toggle-waila.name"))
.lore(Component.translatable("pylon.pyloncore.guide.button.toggle-waila.lore"))
override fun getItemProvider(player: Player)
= ItemStackBuilder.gui(if (player.wailaEnabled) Material.LIME_CONCRETE else Material.RED_CONCRETE, pylonKey("toggle_waila"))
.name(Component.translatable("pylon.pyloncore.guide.button.toggle-waila.name"))
.lore(Component.translatable("pylon.pyloncore.guide.button.toggle-waila.lore"))

override fun handleClick(clickType: ClickType, player: Player, event: InventoryClickEvent) {
player.wailaEnabled = !player.wailaEnabled
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import io.github.pylonmc.pylon.core.guide.button.BackButton
import io.github.pylonmc.pylon.core.guide.button.PageButton
import io.github.pylonmc.pylon.core.item.builder.ItemStackBuilder
import io.github.pylonmc.pylon.core.util.gui.GuiItems
import io.github.pylonmc.pylon.core.util.pylonKey
import net.kyori.adventure.text.Component
import org.bukkit.Material
import org.bukkit.NamespacedKey
Expand Down Expand Up @@ -41,7 +42,7 @@ open class SimpleDynamicGuidePage(

override fun getKey() = key

override val item = ItemStackBuilder.of(material)
override val item = ItemStackBuilder.gui(material, "${pylonKey("guide_page")}:$key")
.name(Component.translatable("pylon.${key.namespace}.guide.page.${key.key}"))

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class AddonResearchesPage(val addon: PylonAddon) : SimpleDynamicGuidePage(
}
) {
override val item: ItemStackBuilder
get() = ItemStackBuilder.of(addon.material)
get() = ItemStackBuilder.gui(addon.material, addon.key)
.name(addon.displayName)

override val title: Component
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ open class PylonItem(val stack: ItemStack) : Keyed {

var isNameValid = true
if (name == null || name.key() != ItemStackBuilder.nameKey(schema.key)) {
PylonCore.logger.warning("Item ${schema.key}'s name is not a translation key; check your item uses ItemStackBuilder.pylonItem(...)")
PylonCore.logger.warning("Item ${schema.key}'s name is not a translation key; check your item uses PylonItemStackBuilder.of(...)")
isNameValid = false
}

Expand Down
Loading