From 839f450a0cceb1734a58dd6d3a498ef57a73aecd Mon Sep 17 00:00:00 2001 From: Roman Danilov Date: Tue, 27 Feb 2024 00:14:05 +0300 Subject: [PATCH] Big recursive fix --- .../render/holograms/HologramData.java | 2 - .../render/holograms/HologramDataListed.java | 51 +++++++++++++++++++ .../render/holograms/HologramModule.java | 12 ++--- 3 files changed, 57 insertions(+), 8 deletions(-) create mode 100644 src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramDataListed.java diff --git a/src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramData.java b/src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramData.java index f2833731..9be72724 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramData.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramData.java @@ -20,8 +20,6 @@ public class HologramData { public int item_scale = 2; public boolean distanceScaling = false; - public ArrayList other_holograms = new ArrayList(); - public HologramData() { } diff --git a/src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramDataListed.java b/src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramDataListed.java new file mode 100644 index 00000000..babb6bf0 --- /dev/null +++ b/src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramDataListed.java @@ -0,0 +1,51 @@ +package nekiplay.meteorplus.features.modules.render.holograms; + +import meteordevelopment.meteorclient.utils.render.color.Color; +import meteordevelopment.meteorclient.utils.world.Dimension; +import net.minecraft.util.math.BlockPos; + +import java.util.ArrayList; + +public class HologramDataListed { + public double x; + public double y; + public double z; + public String text; + public String world; + public String dimension; + public Color color; + public double max_render_distance = 16; + public int item_id = 0; + public double scale = 1; + public int item_scale = 2; + public boolean distanceScaling = false; + + public ArrayList other_holograms = new ArrayList(); + + public HologramDataListed() { + + } + public HologramDataListed(double x, double y, double z, String text, String world, String dimension, Color color, double max_render_distance) { + this.x = x; + this.y = y; + this.z = z; + this.color = color; + + this.text = text; + this.world = world; + this.dimension = dimension; + this.max_render_distance = max_render_distance; + } + + public HologramDataListed(BlockPos pos, String text, String world, Dimension dimension, Color color, double max_render_distance) { + this.x = pos.getX(); + this.y = pos.getY(); + this.z = pos.getZ(); + this.color = color; + + this.text = text; + this.world = world; + this.dimension = dimension.name(); + this.max_render_distance = max_render_distance; + } +} diff --git a/src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramModule.java b/src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramModule.java index 3fd293ca..a39ebff4 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramModule.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/render/holograms/HologramModule.java @@ -33,8 +33,8 @@ public HologramModule() { } public Gson gson = new Gson(); - public List allHolograms = new ArrayList(); - public List inWorldHolograms = new ArrayList(); + public List allHolograms = new ArrayList(); + public List inWorldHolograms = new ArrayList(); @Override public void onActivate() { @@ -48,7 +48,7 @@ public void onActivate() { private void onTick(TickEvent.Post event) { inWorldHolograms.clear(); Dimension dim = PlayerUtils.getDimension(); - for (HologramData hologramData : allHolograms) { + for (HologramDataListed hologramData : allHolograms) { if (hologramData.world.equals(Utils.getWorldName()) && hologramData.dimension.equals(dim.name())) { inWorldHolograms.add(hologramData); } @@ -58,7 +58,7 @@ private void onTick(TickEvent.Post event) { @EventHandler private void on2DRender(Render2DEvent event) { Vec3d camera_pos = mc.gameRenderer.getCamera().getPos(); - for (HologramData hologramData : inWorldHolograms) { + for (HologramDataListed hologramData : inWorldHolograms) { Vector3d pos = new Vector3d(hologramData.x, hologramData.y, hologramData.z); if (pos.distance(camera_pos.x, camera_pos.y, camera_pos.z) <= hologramData.max_render_distance) { if (NametagUtils.to2D(pos, hologramData.scale, hologramData.distanceScaling)) { @@ -113,7 +113,7 @@ private void load() { BufferedReader reader = new BufferedReader(fr); try { String json = reader.readLine(); - HologramData hologramData = gson.fromJson(json, HologramData.class); + HologramDataListed hologramData = gson.fromJson(json, HologramDataListed.class); if (hologramData != null) { allHolograms.add(hologramData); MeteorPlusAddon.LOG.info(MeteorPlusAddon.LOGPREFIX + " Success loaded hologram: " + file.getName()); @@ -144,7 +144,7 @@ private void createDefault() { if (!dir2.exists()) { dir2.mkdir(); - HologramData hologramData = new HologramData(new BlockPos(0, 64, 0), "Spawn", world_name, PlayerUtils.getDimension(), Color.RED, 16); + HologramDataListed hologramData = new HologramDataListed(new BlockPos(0, 64, 0), "Spawn", world_name, PlayerUtils.getDimension(), Color.RED, 16); HologramData hologramData2 = new HologramData(new BlockPos(0, 15, 0), PlayerUtils.getDimension().name(), world_name, PlayerUtils.getDimension(), Color.RED, 16); hologramData.other_holograms.add(hologramData2); String json = gson.toJson(hologramData);