45 lines
1.2 KiB
Go
45 lines
1.2 KiB
Go
package renders
|
|
|
|
import (
|
|
"image"
|
|
)
|
|
|
|
func RenderLeftBody(skin *image.NRGBA, opts RenderOptions) *image.NRGBA {
|
|
slimOffset := GetSlimOffset(opts.Slim)
|
|
|
|
var (
|
|
leftHead *image.NRGBA = RemoveTransparency(Extract(skin, 16, 8, 8, 8))
|
|
leftLeftArm *image.NRGBA = nil
|
|
leftLeftLeg *image.NRGBA = nil
|
|
)
|
|
|
|
if IsOldSkin(skin) {
|
|
leftLeftArm = FlipHorizontal(RemoveTransparency(Extract(skin, 40, 20, 4, 12)))
|
|
leftLeftLeg = FlipHorizontal(RemoveTransparency(Extract(skin, 0, 20, 4, 12)))
|
|
} else {
|
|
leftLeftArm = RemoveTransparency(Extract(skin, 40-slimOffset, 52, 4, 12))
|
|
leftLeftLeg = RemoveTransparency(Extract(skin, 24, 52, 4, 12))
|
|
|
|
if opts.Overlay {
|
|
overlaySkin := FixTransparency(skin)
|
|
|
|
leftHead = Composite(leftHead, Extract(overlaySkin, 48, 8, 8, 8), 0, 0)
|
|
leftLeftArm = Composite(leftLeftArm, Extract(overlaySkin, 56-slimOffset, 52, 4, 12), 0, 0)
|
|
leftLeftLeg = Composite(leftLeftLeg, Extract(overlaySkin, 8, 52, 4, 12), 0, 0)
|
|
}
|
|
}
|
|
|
|
output := image.NewNRGBA(image.Rect(0, 0, 8, 32))
|
|
|
|
// Left Head
|
|
output = Composite(output, leftHead, 0, 0)
|
|
|
|
// Left Arm
|
|
output = Composite(output, leftLeftArm, 2, 8)
|
|
|
|
// Left Leg
|
|
output = Composite(output, leftLeftLeg, 2, 20)
|
|
|
|
return Scale(output, opts.Scale)
|
|
}
|