Skip to content

Commit fac697a

Browse files
author
yitzy299
committed
Single biome input GUI
1 parent d5205df commit fac697a

5 files changed

Lines changed: 33 additions & 4 deletions

File tree

src/main/kotlin/net/quiltservertools/interdimensional/gui/components/TextComponent.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class TextComponent(private val displayName: String, private val icon: Item, pri
2525
anvilGui.open()
2626
}
2727

28-
abstract class TextInputGui(val handler: CreateGuiHandler) : AnvilInputGui(handler.player, false) {
28+
abstract class TextInputGui(player: ServerPlayerEntity) : AnvilInputGui(player, false) {
2929
init {
3030
this.setSlot(2, ActionComponent(Items.LIME_CONCRETE, "Submit") {
3131
this.close()
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package net.quiltservertools.interdimensional.gui.elements
2+
3+
import net.minecraft.item.Item
4+
import net.minecraft.item.ItemStack
5+
import net.minecraft.util.Identifier
6+
import net.minecraft.util.registry.Registry
7+
import net.minecraft.world.biome.BuiltinBiomes
8+
import net.quiltservertools.interdimensional.gui.biomeSource.SingleBiomeResult
9+
import net.quiltservertools.interdimensional.gui.components.TextComponent
10+
11+
class BiomeIdentifierInputGui(private val element: BiomeSourceElement) : TextComponent.TextInputGui(element.handler.player) {
12+
override fun getItemStack(icon: Item, displayName: String): ItemStack {
13+
return ItemStack(icon).setCustomName(element.result.itemStack.name)
14+
}
15+
16+
override fun close() {
17+
element.result = SingleBiomeResult(element, element.handler.player.server.registryManager.get(Registry.BIOME_KEY).get(
18+
Identifier(this.input)
19+
)?: BuiltinBiomes.PLAINS)
20+
super.close()
21+
element.handler.open()
22+
}
23+
}

src/main/kotlin/net/quiltservertools/interdimensional/gui/elements/BiomeSourceElement.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import net.quiltservertools.interdimensional.gui.biomeSource.BiomeSourceResult
1616
import net.quiltservertools.interdimensional.gui.biomeSource.EndResult
1717
import net.quiltservertools.interdimensional.gui.biomeSource.MultiNoiseResult
1818
import net.quiltservertools.interdimensional.gui.biomeSource.SingleBiomeResult
19+
import net.quiltservertools.interdimensional.gui.components.ActionComponent
1920
import net.quiltservertools.interdimensional.gui.components.LinkComponent
2021
import net.quiltservertools.interdimensional.text
2122

@@ -31,13 +32,18 @@ class BiomeSourceElement(val handler: CreateGuiHandler) : LinkComponent {
3132
val source = it.chunkManager.chunkGenerator.biomeSource
3233
val identifier = it.registryKey.value
3334
if (source is MultiNoiseBiomeSource) {
34-
val noiseResult = MultiNoiseResult(identifier.path, this, identifier.equals(Identifier("the_nether")), it)
35+
val noiseResult =
36+
MultiNoiseResult(identifier.path, this, identifier.equals(Identifier("the_nether")), it)
3537
gui.addSlot(noiseResult)
3638
} else if (source is TheEndBiomeSource) {
3739
gui.addSlot(EndResult(this, it))
3840
}
3941
}
42+
4043
result = gui.getSlot(0) as BiomeSourceResult
44+
45+
gui.setSlot(45, ActionComponent(Items.OAK_SIGN, "Single Biome Source") { BiomeIdentifierInputGui(this).open() })
46+
gui.setSlot(53, ActionComponent(Items.RED_CONCRETE, "Return") { close() })
4147
}
4248

4349
override fun getItemStack(): ItemStack {

src/main/kotlin/net/quiltservertools/interdimensional/gui/elements/IdentifierInputGui.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import net.quiltservertools.interdimensional.gui.CreateGuiHandler
77
import net.quiltservertools.interdimensional.gui.components.TextComponent
88
import net.quiltservertools.interdimensional.text
99

10-
class IdentifierInputGui(handler: CreateGuiHandler) : TextComponent.TextInputGui(handler) {
10+
class IdentifierInputGui(val handler: CreateGuiHandler) : TextComponent.TextInputGui(handler.player) {
1111
override fun onClose() {
1212
if (this.input.isNotEmpty()) {
1313
handler.identifier = Identifier(this.input)

src/main/kotlin/net/quiltservertools/interdimensional/gui/elements/SeedInputGui.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import net.quiltservertools.interdimensional.gui.CreateGuiHandler
66
import net.quiltservertools.interdimensional.gui.components.TextComponent
77
import net.quiltservertools.interdimensional.text
88

9-
class SeedInputGui(handler: CreateGuiHandler) : TextComponent.TextInputGui(handler) {
9+
class SeedInputGui(val handler: CreateGuiHandler) : TextComponent.TextInputGui(handler.player) {
1010
override fun getItemStack(icon: Item, displayName: String): ItemStack {
1111
if (handler.seed != 0L) {
1212
return ItemStack(icon).setCustomName("$displayName: ${handler.seed}".text())

0 commit comments

Comments
 (0)