- private static final Map<Class<? extends AbstractBoundingBox>, AbstractRenderer> boundingBoxRendererMap = new HashMap<>();
-
- private final GetCache getCache;
- private long seed;
- private Set<AbstractBoundingBox> spawnChunkBoundingBoxes = new HashSet<>();
-
- ClientRenderer(GetCache getCache) {
- this.getCache = getCache;
- boundingBoxRendererMap.put(BoundingBoxVillage.class, new VillageRenderer());
- boundingBoxRendererMap.put(BoundingBoxSlimeChunk.class, new SlimeChunkRenderer());
- boundingBoxRendererMap.put(BoundingBoxWorldSpawn.class, new WorldSpawnRenderer());
- boundingBoxRendererMap.put(BoundingBoxStructure.class, new StructureRenderer());
- boundingBoxRendererMap.put(BoundingBoxMobSpawner.class, new MobSpawnerRenderer());
- }
-
- private boolean isWithinRenderDistance(AbstractBoundingBox boundingBox) {
- Coords minCoords = boundingBox.getMinCoords();
- Coords maxCoords = boundingBox.getMaxCoords();
- int renderDistanceBlocks = getRenderDistanceChunks() * CHUNK_SIZE;
- int minX = MathHelper.floor(PlayerCoords.getX() - renderDistanceBlocks);
- int maxX = MathHelper.floor(PlayerCoords.getX() + renderDistanceBlocks);
- int minZ = MathHelper.floor(PlayerCoords.getZ() - renderDistanceBlocks);
- int maxZ = MathHelper.floor(PlayerCoords.getZ() + renderDistanceBlocks);
-
- return maxCoords.getX() >= minX &&
- maxCoords.getZ() >= minZ &&
- minCoords.getX() <= maxX &&
- minCoords.getZ() <= maxZ;
- }
-
- public void render(int dimensionId, Boolean outerBoxesOnly) {
- Map<AbstractBoundingBox, Set<AbstractBoundingBox>> boundingBoxes = getBoundingBoxes(dimensionId);