36 lines
1.2 KiB
Kotlin
36 lines
1.2 KiB
Kotlin
package mods.betterfoliage.client.texture
|
|
|
|
import mods.octarinecore.client.resource.*
|
|
import net.minecraft.util.ResourceLocation
|
|
import java.awt.image.BufferedImage
|
|
|
|
/**
|
|
* Generate Short Grass textures from [Blocks.tallgrass] block textures.
|
|
* The bottom 3/8 of the base texture is chopped off.
|
|
*
|
|
* @param[domain] Resource domain of generator
|
|
*/
|
|
class GrassGenerator(domain: String) : TextureGenerator(domain) {
|
|
|
|
override fun generate(params: ParameterList): BufferedImage? {
|
|
val target = targetResource(params)!!
|
|
val isSnowed = params["snowed"]?.toBoolean() ?: false
|
|
|
|
val baseTexture = resourceManager[target.second]?.loadImage() ?: return null
|
|
|
|
// draw bottom half of texture
|
|
val result = BufferedImage(baseTexture.width, baseTexture.height, BufferedImage.TYPE_4BYTE_ABGR)
|
|
val graphics = result.createGraphics()
|
|
graphics.drawImage(baseTexture, 0, 3 * baseTexture.height / 8, null)
|
|
|
|
// blend with white if snowed
|
|
if (isSnowed && target.first == ResourceType.COLOR) {
|
|
for (x in 0..result.width - 1) for (y in 0..result.height - 1) {
|
|
result[x, y] = blendRGB(result[x, y], 16777215, 2, 3)
|
|
}
|
|
}
|
|
|
|
return result
|
|
}
|
|
}
|