Add SkinGrid, make SkinElement not be a data class
This commit is contained in:
parent
5cc5829456
commit
1599dd39c9
@ -4,8 +4,40 @@ import com.mojang.blaze3d.systems.RenderSystem
|
||||
import com.mojang.blaze3d.vertex.PoseStack
|
||||
import net.minecraft.resources.ResourceLocation
|
||||
|
||||
@JvmRecord
|
||||
data class SkinElement @JvmOverloads constructor(
|
||||
class SkinGrid(
|
||||
val texture: ResourceLocation,
|
||||
val width: Float,
|
||||
val height: Float,
|
||||
val rows: Int = 16,
|
||||
val columns: Int = 16,
|
||||
) {
|
||||
private var row = 0
|
||||
private var column = 0
|
||||
|
||||
val imageWidth get() = width * columns
|
||||
val imageHeight get() = height * rows
|
||||
|
||||
fun skip() {
|
||||
column++
|
||||
|
||||
if (column >= columns) {
|
||||
jump()
|
||||
}
|
||||
}
|
||||
|
||||
fun jump() {
|
||||
row++
|
||||
column = 0
|
||||
}
|
||||
|
||||
fun next(): SkinElement {
|
||||
val element = SkinElement(texture, column * width, row * height, width, height, imageWidth, imageHeight)
|
||||
skip()
|
||||
return element
|
||||
}
|
||||
}
|
||||
|
||||
class SkinElement @JvmOverloads constructor(
|
||||
val texture: ResourceLocation = RenderHelper.WIDGETS,
|
||||
val image_x: Float,
|
||||
val image_y: Float,
|
||||
|
@ -14,6 +14,7 @@ import ru.dbotthepony.mc.otm.android.AndroidResearchBuilder
|
||||
import ru.dbotthepony.mc.otm.android.AndroidResearchType
|
||||
import ru.dbotthepony.mc.otm.android.feature.NanobotsArmor
|
||||
import ru.dbotthepony.mc.otm.client.render.SkinElement
|
||||
import ru.dbotthepony.mc.otm.client.render.SkinGrid
|
||||
|
||||
object AndroidResearch {
|
||||
val ICONS = ResourceLocation(OverdriveThatMatters.MOD_ID, "textures/gui/android_upgrades.png")
|
||||
@ -44,62 +45,33 @@ object AndroidResearch {
|
||||
val ICON_EXTENDED_REACH: SkinElement
|
||||
|
||||
init {
|
||||
var x = 0f
|
||||
var y = 0f
|
||||
val grid = SkinGrid(ICONS, 18f, 18f, 7, 7)
|
||||
|
||||
ICON_TRANSFER = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_ATTACK_BOOST = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_PLASMA_SHIELD_BOOST = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_CLOAK = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_GRAVITATIONAL_STABILIZER = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_AIR_BAGS = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_JUMP_BOOST = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
ICON_TRANSFER = grid.next()
|
||||
ICON_ATTACK_BOOST = grid.next()
|
||||
ICON_PLASMA_SHIELD_BOOST = grid.next()
|
||||
ICON_CLOAK = grid.next()
|
||||
ICON_GRAVITATIONAL_STABILIZER = grid.next()
|
||||
ICON_AIR_BAGS = grid.next()
|
||||
ICON_JUMP_BOOST = grid.next()
|
||||
|
||||
y += 18f
|
||||
x = 0f
|
||||
ICON_FEATHER_FALLING = grid.next()
|
||||
ICON_ARC = grid.next()
|
||||
ICON_ARROW = grid.next()
|
||||
ICON_ARMOR = grid.next()
|
||||
ICON_NANOBOTS = grid.next()
|
||||
ICON_NIGHT_VISION = grid.next()
|
||||
ICON_OXYGEN_SUPPLY = grid.next()
|
||||
|
||||
ICON_FEATHER_FALLING = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_ARC = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_ARROW = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_ARMOR = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_NANOBOTS = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_NIGHT_VISION = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_OXYGEN_SUPPLY = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
ICON_PLASMA_SHIELD = grid.next()
|
||||
ICON_SHOCKWAVE = grid.next()
|
||||
ICON_LIMB_OVERCLOCKING = grid.next()
|
||||
ICON_STEP_ASSIST = grid.next()
|
||||
ICON_ENDER_TELEPORT = grid.next()
|
||||
ICON_WIRELESS_CHARGING = grid.next()
|
||||
ICON_UNKNOWN = grid.next()
|
||||
|
||||
y += 18
|
||||
x = 0f
|
||||
|
||||
ICON_PLASMA_SHIELD = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_SHOCKWAVE = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_LIMB_OVERCLOCKING = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_STEP_ASSIST = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_ENDER_TELEPORT = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_WIRELESS_CHARGING = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_UNKNOWN = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
|
||||
y += 18f
|
||||
x = 0f
|
||||
|
||||
ICON_EXTENDED_REACH = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_EXTENDED_REACH = grid.next()
|
||||
}
|
||||
|
||||
private val registry = DeferredRegister.create(AndroidResearchType::class.java, OverdriveThatMatters.MOD_ID)
|
||||
|
Loading…
Reference in New Issue
Block a user