HyCodeYourTale
classpublicPriority 3

RespawnMarkerProvider

com.hypixel.hytale.server.core.universe.world.worldmap.markers.RespawnMarkerProvider

implements WorldMapManager.MarkerProvider

0

Methods

0

Public Methods

0

Fields

1

Constructors

Constants

RespawnMarkerProviderINSTANCE= new RespawnMarkerProvider()

Constructors

private
RespawnMarkerProvider()

Inheritance

Parent
Current
Interface
Child

Use mouse wheel to zoom, drag to pan. Click nodes to navigate.

Related Classes

Source Code

package com.hypixel.hytale.server.core.universe.world.worldmap.markers;

import com.hypixel.hytale.math.vector.Transform;
import com.hypixel.hytale.math.vector.Vector3i;
import com.hypixel.hytale.protocol.packets.worldmap.MapMarker;
import com.hypixel.hytale.server.core.asset.type.gameplay.GameplayConfig;
import com.hypixel.hytale.server.core.asset.type.gameplay.WorldMapConfig;
import com.hypixel.hytale.server.core.entity.entities.player.data.PlayerRespawnPointData;
import com.hypixel.hytale.server.core.universe.world.World;
import com.hypixel.hytale.server.core.universe.world.WorldMapTracker;
import com.hypixel.hytale.server.core.universe.world.worldmap.WorldMapManager;
import com.hypixel.hytale.server.core.util.PositionUtil;
import javax.annotation.Nonnull;

public class RespawnMarkerProvider implements WorldMapManager.MarkerProvider {
   public static final RespawnMarkerProvider INSTANCE = new RespawnMarkerProvider();

   private RespawnMarkerProvider() {
   }

   @Override
   public void update(
      @Nonnull World world, @Nonnull GameplayConfig gameplayConfig, @Nonnull WorldMapTracker tracker, int chunkViewRadius, int playerChunkX, int playerChunkZ
   ) {
      WorldMapConfig worldMapConfig = gameplayConfig.getWorldMapConfig();
      if (worldMapConfig.isDisplayHome()) {
         PlayerRespawnPointData[] respawnPoints = tracker.getPlayer().getPlayerConfigData().getPerWorldData(world.getName()).getRespawnPoints();
         if (respawnPoints != null) {
            for (int i = 0; i < respawnPoints.length; i++) {
               addRespawnMarker(tracker, playerChunkX, playerChunkZ, respawnPoints[i], i);
            }
         }
      }
   }

   private static void addRespawnMarker(
      @Nonnull WorldMapTracker tracker, int playerChunkX, int playerChunkZ, @Nonnull PlayerRespawnPointData respawnPoint, int index
   ) {
      String respawnPointName = respawnPoint.getName();
      Vector3i respawnPointPosition = respawnPoint.getBlockPosition();
      tracker.trySendMarker(
         -1,
         playerChunkX,
         playerChunkZ,
         respawnPointPosition.toVector3d(),
         0.0F,
         respawnPointName + index,
         respawnPointName,
         respawnPointPosition,
         (id, name, rp) -> new MapMarker(id, name, "Home.png", PositionUtil.toTransformPacket(new Transform(rp)), null)
      );
   }
}