All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.parzivail.util.client.screen.blit.BlitRectangle Maven / Gradle / Ivy

package com.parzivail.util.client.screen.blit;

import com.parzivail.util.math.MathUtil;
import net.minecraft.class_332;

public class BlitRectangle
{
	private final T blittable;

	public int x;
	public int y;
	public int width;
	public int height;

	public int originX;
	public int originY;

	public boolean visible = true;

	public BlitRectangle(T blittable, int x, int y, int width, int height)
	{
		this.blittable = blittable;
		this.x = x;
		this.y = y;
		this.width = width;
		this.height = height;
	}

	public T getBlittable()
	{
		return blittable;
	}

	public BlitRectangle(T blittable, int x, int y)
	{
		this(blittable, x, y, blittable.width(), blittable.height());
	}

	public boolean contains(int pX, int pY)
	{
		return visible && MathUtil.rectContains(originX + x, originY + y, width, height, pX, pY);
	}

	public void updateMouseState(int mouseX, int mouseY)
	{
		if (!visible)
			return;

		if (!(blittable instanceof IHoverable hoverable))
			return;

		hoverable.setHovering(contains(mouseX, mouseY));
	}

	public void setOrigin(int originX, int originY)
	{
		this.originX = originX;
		this.originY = originY;
	}

	public void blit(class_332 context)
	{
		if (!visible)
			return;
		blittable.blit(context, originX + x, originY + y, width, height);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy