Add screen rendering events for buttons
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
package moe.nea.firmament.events
|
||||
|
||||
import net.minecraft.client.gui.screen.ingame.HandledScreen
|
||||
|
||||
data class HandledScreenForegroundEvent(
|
||||
val screen: HandledScreen<*>,
|
||||
val mouseX: Int, val mouseY: Int, val delta: Float
|
||||
) : FirmamentEvent() {
|
||||
companion object : FirmamentEventBus<HandledScreenForegroundEvent>()
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package moe.nea.firmament.events
|
||||
|
||||
import me.shedaniel.math.Rectangle
|
||||
import net.minecraft.client.gui.screen.ingame.HandledScreen
|
||||
|
||||
data class HandledScreenPushREIEvent(
|
||||
val screen: HandledScreen<*>,
|
||||
val rectangles: MutableList<Rectangle> = mutableListOf()
|
||||
) : FirmamentEvent() {
|
||||
|
||||
fun block(rectangle: Rectangle) {
|
||||
rectangles.add(rectangle)
|
||||
}
|
||||
|
||||
companion object : FirmamentEventBus<HandledScreenPushREIEvent>()
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package moe.nea.firmament.events
|
||||
|
||||
import net.minecraft.client.gui.screen.ingame.HandledScreen
|
||||
|
||||
data class ScreenClickEvent(val screen: HandledScreen<*>, val mouseX: Double, val mouseY: Double, val button: Int) :
|
||||
FirmamentEvent.Cancellable() {
|
||||
companion object : FirmamentEventBus<ScreenClickEvent>()
|
||||
}
|
||||
@@ -23,6 +23,7 @@ import me.shedaniel.rei.api.client.registry.category.CategoryRegistry
|
||||
import me.shedaniel.rei.api.client.registry.display.DisplayRegistry
|
||||
import me.shedaniel.rei.api.client.registry.entry.CollapsibleEntryRegistry
|
||||
import me.shedaniel.rei.api.client.registry.entry.EntryRegistry
|
||||
import me.shedaniel.rei.api.client.registry.screen.ExclusionZones
|
||||
import me.shedaniel.rei.api.client.registry.screen.ScreenRegistry
|
||||
import me.shedaniel.rei.api.client.registry.transfer.TransferHandler
|
||||
import me.shedaniel.rei.api.client.registry.transfer.TransferHandlerRegistry
|
||||
@@ -30,9 +31,11 @@ import me.shedaniel.rei.api.common.entry.EntryStack
|
||||
import me.shedaniel.rei.api.common.entry.type.EntryTypeRegistry
|
||||
import me.shedaniel.rei.api.common.entry.type.VanillaEntryTypes
|
||||
import net.minecraft.client.gui.screen.ingame.GenericContainerScreen
|
||||
import net.minecraft.client.gui.screen.ingame.HandledScreen
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.minecraft.text.Text
|
||||
import net.minecraft.util.Identifier
|
||||
import moe.nea.firmament.events.HandledScreenPushREIEvent
|
||||
import moe.nea.firmament.features.inventory.CraftingOverlay
|
||||
import moe.nea.firmament.recipes.SBCraftingRecipe
|
||||
import moe.nea.firmament.recipes.SBForgeRecipe
|
||||
@@ -74,6 +77,10 @@ class FirmamentReiPlugin : REIClientPlugin {
|
||||
registry.add(SBForgeRecipe.Category)
|
||||
}
|
||||
|
||||
override fun registerExclusionZones(zones: ExclusionZones) {
|
||||
zones.register(HandledScreen::class.java) { HandledScreenPushREIEvent(it).rectangles }
|
||||
}
|
||||
|
||||
override fun registerDisplays(registry: DisplayRegistry) {
|
||||
registry.registerDisplayGenerator(
|
||||
SBCraftingRecipe.Category.catIdentifier,
|
||||
|
||||
Reference in New Issue
Block a user