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)
|
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
|
@JvmOverloads
|
||||||
fun renderW(
|
fun renderW(
|
||||||
stack: PoseStack,
|
stack: PoseStack,
|
||||||
@ -81,4 +97,33 @@ data class SkinElement(
|
|||||||
winded.v1,
|
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)
|
PowerGaugePanel(this, frame, menu.energy, LEFT_MARGIN, GAUGE_TOP_WITH_SLOT)
|
||||||
SlotPanel(this, frame, menu.batterySlot, LEFT_MARGIN, SLOT_TOP_UNDER_GAUGE)
|
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)
|
SlotPanel(this, frame, menu.fuelSlot, 93f, PROGRESS_SLOT_TOP)
|
||||||
|
|
||||||
return frame
|
return frame
|
||||||
|
@ -6,6 +6,7 @@ import net.minecraft.network.chat.Component
|
|||||||
import net.minecraft.network.chat.TranslatableComponent
|
import net.minecraft.network.chat.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.client.render.SkinElement
|
import ru.dbotthepony.mc.otm.client.render.SkinElement
|
||||||
import ru.dbotthepony.mc.otm.client.screen.MatteryScreen
|
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.client.screen.panels.EditablePanel
|
||||||
import ru.dbotthepony.mc.otm.menu.FormattingHelper
|
import ru.dbotthepony.mc.otm.menu.FormattingHelper
|
||||||
import ru.dbotthepony.mc.otm.menu.widget.LevelGaugeWidget
|
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) {
|
override fun innerRender(stack: PoseStack, mouse_x: Float, mouse_y: Float, flag: Float) {
|
||||||
GAUGE_BACKGROUND.render(stack)
|
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 {
|
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) {
|
override fun innerRender(stack: PoseStack, mouse_x: Float, mouse_y: Float, flag: Float) {
|
||||||
GAUGE_BACKGROUND.render(stack)
|
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 {
|
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) {
|
override fun innerRender(stack: PoseStack, mouse_x: Float, mouse_y: Float, flag: Float) {
|
||||||
GAUGE_BACKGROUND.render(stack)
|
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 {
|
override fun innerRenderTooltips(stack: PoseStack, mouse_x: Float, mouse_y: Float, flag: Float): Boolean {
|
||||||
@ -133,9 +137,18 @@ class ProgressGaugePanel @JvmOverloads constructor(
|
|||||||
scissor = true
|
scissor = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var flop = false
|
||||||
|
|
||||||
override fun innerRender(stack: PoseStack, mouse_x: Float, mouse_y: Float, flag: Float) {
|
override fun innerRender(stack: PoseStack, mouse_x: Float, mouse_y: Float, flag: Float) {
|
||||||
GAUGE_BACKGROUND.render(stack)
|
if (flop) {
|
||||||
GAUGE_FOREGROUND.render(stack)
|
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 {
|
override fun innerRenderTooltips(stack: PoseStack, mouse_x: Float, mouse_y: Float, flag: Float): Boolean {
|
||||||
|
Loading…
Reference in New Issue
Block a user