Now gauges render properly
This commit is contained in:
parent
f6057a73a6
commit
65aa3392ba
@ -31,6 +31,22 @@ data class SkinElement(
|
||||
renderRaw(stack, x, y, width, height, winding)
|
||||
}
|
||||
|
||||
@JvmOverloads
|
||||
fun renderPartial(
|
||||
stack: PoseStack,
|
||||
x: Float = 0f,
|
||||
y: Float = 0f,
|
||||
width: Float = rect_w,
|
||||
height: Float = rect_h,
|
||||
winding: UVWindingOrder = UVWindingOrder.U0_V0_U1_V1
|
||||
) {
|
||||
RenderSystem.setShaderTexture(0, texture)
|
||||
RenderSystem.enableBlend()
|
||||
RenderSystem.defaultBlendFunc()
|
||||
|
||||
renderRawPartial(stack, x, y, width, height, winding)
|
||||
}
|
||||
|
||||
@JvmOverloads
|
||||
fun renderW(
|
||||
stack: PoseStack,
|
||||
@ -81,4 +97,33 @@ data class SkinElement(
|
||||
winded.v1,
|
||||
)
|
||||
}
|
||||
|
||||
@JvmOverloads
|
||||
fun renderRawPartial(
|
||||
stack: PoseStack,
|
||||
x: Float = 0f,
|
||||
y: Float = 0f,
|
||||
width: Float = rect_w,
|
||||
height: Float = rect_h,
|
||||
winding: UVWindingOrder = UVWindingOrder.U0_V0_U1_V1
|
||||
) {
|
||||
val u0 = image_x / defined_width
|
||||
val v0 = image_y / defined_height
|
||||
val u1 = (image_x + width) / defined_width
|
||||
val v1 = (image_y + height) / defined_height
|
||||
|
||||
val winded = winding.translate(u0, v0, u1, v1)
|
||||
|
||||
RenderHelper.drawTexturedRectUV(
|
||||
stack,
|
||||
x,
|
||||
y,
|
||||
width,
|
||||
height,
|
||||
winded.u0,
|
||||
winded.v0,
|
||||
winded.u1,
|
||||
winded.v1,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -18,7 +18,7 @@ class ChemicalGeneratorScreen(menu: ChemicalGeneratorMenu, inventory: Inventory,
|
||||
PowerGaugePanel(this, frame, menu.energy, LEFT_MARGIN, GAUGE_TOP_WITH_SLOT)
|
||||
SlotPanel(this, frame, menu.batterySlot, LEFT_MARGIN, SLOT_TOP_UNDER_GAUGE)
|
||||
|
||||
ProgressGaugePanel(this, frame, menu.progress, 63f, PROGRESS_ARROW_TOP)
|
||||
ProgressGaugePanel(this, frame, menu.progress, 63f, PROGRESS_ARROW_TOP).flop = true
|
||||
SlotPanel(this, frame, menu.fuelSlot, 93f, PROGRESS_SLOT_TOP)
|
||||
|
||||
return frame
|
||||
|
@ -6,6 +6,7 @@ import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import ru.dbotthepony.mc.otm.client.render.SkinElement
|
||||
import ru.dbotthepony.mc.otm.client.screen.MatteryScreen
|
||||
import ru.dbotthepony.mc.otm.client.screen.UVWindingOrder
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.EditablePanel
|
||||
import ru.dbotthepony.mc.otm.menu.FormattingHelper
|
||||
import ru.dbotthepony.mc.otm.menu.widget.LevelGaugeWidget
|
||||
@ -24,7 +25,8 @@ class PowerGaugePanel @JvmOverloads constructor(
|
||||
|
||||
override fun innerRender(stack: PoseStack, mouse_x: Float, mouse_y: Float, flag: Float) {
|
||||
GAUGE_BACKGROUND.render(stack)
|
||||
GAUGE_FOREGROUND.render(stack)
|
||||
val height = this.height * widget.percentage()
|
||||
GAUGE_FOREGROUND.renderPartial(stack, y = this.height - height, height = height, winding = UVWindingOrder.U0_V1_U1_V0)
|
||||
}
|
||||
|
||||
override fun innerRenderTooltips(stack: PoseStack, mouse_x: Float, mouse_y: Float, flag: Float): Boolean {
|
||||
@ -61,7 +63,8 @@ class MatterGaugePanel @JvmOverloads constructor(
|
||||
|
||||
override fun innerRender(stack: PoseStack, mouse_x: Float, mouse_y: Float, flag: Float) {
|
||||
GAUGE_BACKGROUND.render(stack)
|
||||
GAUGE_FOREGROUND.render(stack)
|
||||
val height = this.height * widget.percentage()
|
||||
GAUGE_FOREGROUND.renderPartial(stack, y = this.height - height, height = height, winding = UVWindingOrder.U0_V1_U1_V0)
|
||||
}
|
||||
|
||||
override fun innerRenderTooltips(stack: PoseStack, mouse_x: Float, mouse_y: Float, flag: Float): Boolean {
|
||||
@ -98,7 +101,8 @@ class PatternGaugePanel @JvmOverloads constructor(
|
||||
|
||||
override fun innerRender(stack: PoseStack, mouse_x: Float, mouse_y: Float, flag: Float) {
|
||||
GAUGE_BACKGROUND.render(stack)
|
||||
GAUGE_FOREGROUND.render(stack)
|
||||
val height = this.height * widget.percentage()
|
||||
GAUGE_FOREGROUND.renderPartial(stack, y = this.height - height, height = height, winding = UVWindingOrder.U0_V1_U1_V0)
|
||||
}
|
||||
|
||||
override fun innerRenderTooltips(stack: PoseStack, mouse_x: Float, mouse_y: Float, flag: Float): Boolean {
|
||||
@ -133,9 +137,18 @@ class ProgressGaugePanel @JvmOverloads constructor(
|
||||
scissor = true
|
||||
}
|
||||
|
||||
var flop = false
|
||||
|
||||
override fun innerRender(stack: PoseStack, mouse_x: Float, mouse_y: Float, flag: Float) {
|
||||
GAUGE_BACKGROUND.render(stack)
|
||||
GAUGE_FOREGROUND.render(stack)
|
||||
if (flop) {
|
||||
GAUGE_BACKGROUND.render(stack, winding = UVWindingOrder.U1_V0_U0_V1)
|
||||
val width = this.width * widget.percentage()
|
||||
GAUGE_FOREGROUND.renderPartial(stack, x = this.width - width, width = width, winding = UVWindingOrder.U1_V0_U0_V1)
|
||||
} else {
|
||||
GAUGE_BACKGROUND.render(stack)
|
||||
val width = this.width * widget.percentage()
|
||||
GAUGE_FOREGROUND.renderPartial(stack, width = width)
|
||||
}
|
||||
}
|
||||
|
||||
override fun innerRenderTooltips(stack: PoseStack, mouse_x: Float, mouse_y: Float, flag: Float): Boolean {
|
||||
|
Loading…
Reference in New Issue
Block a user