This commit is contained in:
2025-08-03 11:13:47 +02:00
parent bf7e52138d
commit 3f0814639d
5 changed files with 68 additions and 41 deletions
@@ -5,7 +5,6 @@ import eu.mhsl.minecraft.pixelpics.render.raytrace.Raytracer;
import eu.mhsl.minecraft.pixelpics.render.util.MathUtil;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
import java.awt.image.BufferedImage;
@@ -30,16 +29,16 @@ public class DefaultScreenRenderer implements Renderer {
}
@Override
public BufferedImage render(Player player, Resolution resolution) {
public BufferedImage render(Location eyeLocation, Resolution resolution) {
int width = resolution.getWidth();
int height = resolution.getHeight();
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
int[] imageData = ((DataBufferInt) image.getRaster().getDataBuffer()).getData();
World world = player.getWorld();
Vector linePoint = player.getEyeLocation().toVector();
List<Vector> rayMap = buildRayMap(player, resolution);
World world = eyeLocation.getWorld();
Vector linePoint = eyeLocation.toVector();
List<Vector> rayMap = buildRayMap(eyeLocation, resolution);
for (int i = 0; i < rayMap.size(); i++) {
imageData[i] = raytracer.trace(world, linePoint, rayMap.get(i));
}
@@ -47,8 +46,7 @@ public class DefaultScreenRenderer implements Renderer {
return image;
}
private List<Vector> buildRayMap(Player p, Resolution resolution) {
Location eyeLocation = p.getEyeLocation();
private List<Vector> buildRayMap(Location eyeLocation, Resolution resolution) {
Vector lineDirection = eyeLocation.getDirection();
double x = lineDirection.getX();
@@ -1,10 +1,9 @@
package eu.mhsl.minecraft.pixelpics.render.render;
import org.bukkit.entity.Player;
import org.bukkit.Location;
import java.awt.image.BufferedImage;
public interface Renderer {
BufferedImage render(Player player, Resolution resolution);
BufferedImage render(Location eyeLocation, Resolution resolution);
}