Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.blocaria.hg.hg.renderers;
- import com.blocaria.hg.hg.Game;
- import org.bukkit.Location;
- import org.bukkit.entity.Player;
- import org.bukkit.map.*;
- import java.awt.*;
- import java.awt.image.BufferedImage;
- public class AreaRenderer extends MapRenderer {
- private Location endPoint;
- private boolean isRender;
- private int minX;
- private int deltaX;
- private int minZ;
- private int deltaZ;
- public AreaRenderer(Location endPoint) {
- super();
- this.isRender = false;
- Location location1 = Game.getInstance().getCorner1();
- Location location2 = Game.getInstance().getCorner2();
- this.minX = Math.min(location1.getBlockX(), location2.getBlockX());
- this.deltaX = Math.max(location1.getBlockX(), location2.getBlockX()) - minX;
- this.minZ = Math.min(location1.getBlockZ(), location2.getBlockZ());
- this.deltaZ = Math.max(location1.getBlockZ(), location2.getBlockZ()) - minZ;
- System.out.println(minX);
- System.out.println(deltaX);
- System.out.println(minZ);
- System.out.println(deltaZ);
- this.endPoint = normalizeLoc(endPoint);
- }
- private byte yawToDirection(double yaw) {
- byte direction = (byte) (Math.floor((yaw / 22.5) + 0.5) % 16);
- if (direction < 0) {
- direction += 16;
- }
- return direction;
- }
- private Location normalizeLoc(Location l) {
- int blockX = l.getBlockX() - minX;
- int blockZ = l.getBlockZ() - minZ;
- int onMapX = blockX * 256 / deltaX - 128;
- int onMapZ = blockZ * 256 / deltaZ - 128;
- return new Location(l.getWorld(), onMapX, 1, onMapZ);
- }
- private int normalizeX(int x) {
- return (x - minX) * 256 / deltaX - 128;
- }
- private int normalizeZ(int z) {
- return (z - minZ) * 256 / deltaZ - 128;
- }
- @Override
- public void render(MapView mv, MapCanvas canvas, Player p) {
- Location l = p.getLocation();
- int onMapX = normalizeX(l.getBlockX());
- int onMapZ = normalizeZ(l.getBlockZ());
- MapCursor c = new MapCursor((byte) onMapX, (byte) onMapZ, yawToDirection(p.getLocation().getYaw()), MapCursor.Type.GREEN_POINTER.getValue(), true);
- MapCursor x = new MapCursor((byte) endPoint.getBlockX(), (byte) endPoint.getBlockZ(), (byte) 0, MapCursor.Type.WHITE_CROSS.getValue(), true);
- MapCursorCollection coll = new MapCursorCollection();
- coll.addCursor(c);
- coll.addCursor(x);
- canvas.setCursors(coll);
- if (isRender) {
- return;
- }
- BufferedImage image = new BufferedImage(128, 128, BufferedImage.TYPE_INT_ARGB);
- Graphics2D g = image.createGraphics();
- g.setColor(new Color(68, 153, 64));
- g.drawString("Rejoins la safezone", 5, 10);
- int diameter = 20;
- g.setColor(new Color(172, 163, 114));
- g.fillOval((endPoint.getBlockX() + 128) / 2 - diameter / 2, (endPoint.getBlockZ() + 128) / 2 - diameter / 2, diameter, diameter);
- canvas.drawImage(0, 0, image);
- this.isRender = true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement