patch = (
width,
height,
f0,
f1,
xoff = 32,
yoff = 16,
extra1 = false,
extra2 = false
) => {
let rc;
switch (currentTexture) {
case "texture0":
rc = new TG.Texture(width, height)
.add(new TG.XOR().tint(...tint0))
.add(new TG.SinX().frequency(f0))
.add(new TG.SinY().frequency(f0))
.mul(new TG.SinX().offset(32).frequency(f1).tint(2, 2, 2))
.mul(
new TG.SinY()
.offset(16)
.frequency(f1)
.tint(...tint0)
)
.sub(new TG.Number().tint(...tint1))
.add(new TG.XOR().tint(...tint0))
.add(new TG.Noise().tint(...tint0))
.toCanvas();
break;
case "texture1":
rc = new TG.Texture(width, height)
.add(new TG.SinX().frequency(f0))
.add(new TG.SinY().frequency(f0))
.mul(new TG.SinX().offset(32).frequency(f1).tint(2, 2, 2))
.mul(new TG.SinY().offset(16).frequency(f1).tint(2, 2, 2))
.sub(new TG.Number().tint(0.5, 2, 4))
.add(new TG.Noise().tint(...tint0))
.add(new TG.SinX().frequency(f0))
.sub(new TG.SinY().frequency(f1))
.toCanvas();
break;
case "texture2":
rc = new TG.Texture(width, height)
.add(new TG.XOR().tint(1, 0.5, 0.7))
.add(new TG.SinX().frequency(f0).tint(...tint0))
.sub(new TG.SinY().frequency(f0).tint(...tint0))
.add(new TG.SinX().frequency(f1).tint(...tint1))
.add(new TG.SinY().frequency(f1).tint(...tint1))
.add(new TG.Noise().tint(0.1, 0.1, 0.2))
.toCanvas();
break;
case "texture3":
rc = new TG.Texture(width, height)
.add(
new TG.SinX()
.offset(xoff)
.frequency(f0)
.tint(...tint0)
)
.add(
new TG.SinY()
.offset(yoff)
.frequency(f0)
.tint(...tint0)
)
.add(new TG.Number().tint(0.75, 0.5, 0.5))
.add(new TG.SinX().frequency(f1).tint(...tint1))
.add(new TG.SinY().frequency(f1).tint(...tint1))
.add(new TG.Noise().tint(0.1, 0, 0))
.add(new TG.Noise().tint(0, 0.1, 0))
.add(new TG.Noise().tint(0, 0, 0.1))
.toCanvas();
break;
case "texture4":
rc = new TG.Texture(width, height)
.add(new TG.SinX().frequency(f0))
.mul(new TG.SinX().frequency(f0 / 2))
.mul(new TG.SinX().frequency(f0 / 4))
.mul(new TG.SinY().frequency(f1))
.mul(new TG.SinY().frequency(f1 / 2))
.mul(new TG.SinY().frequency(f1 / 4))
.add(new TG.SinX().frequency(0.004).tint(...tint1))
.toCanvas();
break;
case "texture5":
rc = new TG.Texture(width, height)
.add(new TG.XOR())
.mul(new TG.OR().tint(...tint0))
.mul(new TG.SinX().frequency(f0))
.div(new TG.SinY().frequency(f1))
.add(new TG.SinX().frequency(f1).tint(0.5, 0, 0))
.add(new TG.Noise().tint(0.1, 0.1, 0.2))
.toCanvas();
break;
case "texture6":
rc = new TG.Texture(width, height)
.add(new TG.SinX().frequency(f0))
.mul(new TG.SinY().frequency(f0 * 0.75))
.add(new TG.SinX().frequency(f1))
.mul(new TG.SinY().frequency(f1 / 2))
.add(new TG.Noise().tint(...tint0))
.toCanvas();
break;
case "texture7":
rc = new TG.Texture(width, height)
.add(new TG.SinX().frequency(f0))
.mul(new TG.SinX().frequency(f1))
.add(new TG.SinY().frequency(f0))
.mul(new TG.SinY().frequency(f1))
.div(new TG.Number().tint(...tint1))
.add(new TG.SinX().frequency(0.003).tint(0.5, 0, 0))
.toCanvas();
break;
case "texture8":
rc = new TG.Texture(width, height)
.add(new TG.SinX().frequency(f0))
.add(new TG.SinY().frequency(f0))
.mul(new TG.SinX().offset(xoff).frequency(f1).tint(2, 2, 1))
.mul(new TG.SinY().offset(yoff).frequency(f1).tint(2, 2, 2))
.sub(new TG.Number().tint(...tint1))
.add(new TG.Noise().tint(...tint0))
.toCanvas();
break;
}
return scaleImage(rc, canvasScale);
}