Skip to content

Commit 36cfb52

Browse files
committed
dont keep the lines hashset around longer than we need it
1 parent 9a26907 commit 36cfb52

File tree

4 files changed

+13
-12
lines changed

4 files changed

+13
-12
lines changed

src/main/java/mekanism/client/render/RenderTickHandler.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
import com.mojang.blaze3d.vertex.VertexConsumer;
55
import it.unimi.dsi.fastutil.objects.Reference2ObjectOpenHashMap;
66
import java.util.ArrayList;
7+
import java.util.Collection;
78
import java.util.Comparator;
89
import java.util.EnumMap;
910
import java.util.List;
1011
import java.util.Map;
1112
import java.util.Map.Entry;
1213
import java.util.Objects;
13-
import java.util.Set;
1414
import java.util.UUID;
1515
import mekanism.api.RelativeSide;
1616
import mekanism.client.gui.GuiMekanism;
@@ -103,7 +103,7 @@ public class RenderTickHandler {
103103

104104
public static final Minecraft minecraft = Minecraft.getInstance();
105105

106-
private static final Map<BlockState, Set<Line>> cachedWireFrames = new Reference2ObjectOpenHashMap<>();
106+
private static final Map<BlockState, List<Line>> cachedWireFrames = new Reference2ObjectOpenHashMap<>();
107107
private static final Map<Direction, Map<TransmissionType, Model3D>> cachedOverlays = new EnumMap<>(Direction.class);
108108
private static final List<LazyRender> transparentRenderers = new ArrayList<>();
109109
private static final BoltRenderer boltRenderer = new BoltRenderer();
@@ -466,7 +466,7 @@ public void onBlockHover(RenderHighlightEvent.Block event) {
466466
}
467467

468468
private void renderQuadsWireFrame(BlockState state, VertexConsumer buffer, PoseStack matrix, RandomSource rand) {
469-
Set<Line> lines = cachedWireFrames.get(state);
469+
List<Line> lines = cachedWireFrames.get(state);
470470
if (lines == null) {
471471
BakedModel bakedModel = Minecraft.getInstance().getBlockRenderer().getBlockModel(state);
472472
//TODO: Eventually we may want to add support for Model data and maybe render type
@@ -477,14 +477,14 @@ private void renderQuadsWireFrame(BlockState state, VertexConsumer buffer, PoseS
477477
renderVertexWireFrame(lines, buffer, pose.pose(), pose.normal());
478478
}
479479

480-
public static void renderVertexWireFrame(Set<Line> lines, VertexConsumer buffer, Matrix4f pose, Matrix3f poseNormal) {
480+
public static void renderVertexWireFrame(Collection<Line> lines, VertexConsumer buffer, Matrix4f pose, Matrix3f poseNormal) {
481481
//tmp variables to avoid allocating each loop
482482
Vector4f pos = new Vector4f();
483483
Vector3f normal = new Vector3f();
484484
renderVertexWireFrame(lines, buffer, pose, poseNormal, pos, normal);
485485
}
486486

487-
public static void renderVertexWireFrame(Set<Line> lines, VertexConsumer buffer, Matrix4f pose, Matrix3f poseNormal, Vector4f pos, Vector3f normal) {
487+
public static void renderVertexWireFrame(Collection<Line> lines, VertexConsumer buffer, Matrix4f pose, Matrix3f poseNormal, Vector4f pos, Vector3f normal) {
488488
for (Line line : lines) {
489489
poseNormal.transform(line.nX(), line.nY(), line.nZ(), normal);
490490

src/main/java/mekanism/client/render/lib/Outlines.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
package mekanism.client.render.lib;
22

3+
import java.util.ArrayList;
34
import java.util.Arrays;
45
import java.util.HashSet;
5-
import java.util.Objects;
6+
import java.util.List;
67
import java.util.Set;
78
import mekanism.common.util.EnumUtils;
89
import net.minecraft.MethodsReturnNonnullByDefault;
@@ -21,7 +22,7 @@
2122

2223
public class Outlines {
2324

24-
public static Set<Line> extract(BakedModel model, @Nullable BlockState state, RandomSource rand, ModelData modelData, @Nullable RenderType renderType) {
25+
public static List<Line> extract(BakedModel model, @Nullable BlockState state, RandomSource rand, ModelData modelData, @Nullable RenderType renderType) {
2526
Set<Line> lines = new HashSet<>();
2627
VertexExtractor consumer = new VertexExtractor(lines);
2728
for (Direction direction : EnumUtils.DIRECTIONS) {
@@ -33,7 +34,7 @@ public static Set<Line> extract(BakedModel model, @Nullable BlockState state, Ra
3334
for (BakedQuad quad : model.getQuads(state, null, rand, modelData, renderType)) {
3435
consumer.unpack(quad);
3536
}
36-
return lines;
37+
return new ArrayList<>(lines);
3738
}
3839

3940
//modified version of VertexConsumer

src/main/java/mekanism/client/render/tileentity/RenderPigmentMixer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import com.mojang.blaze3d.vertex.PoseStack.Pose;
55
import com.mojang.blaze3d.vertex.VertexConsumer;
66
import com.mojang.math.Axis;
7-
import java.util.Set;
7+
import java.util.List;
88
import mekanism.api.annotations.NothingNullByDefault;
99
import mekanism.client.model.MekanismModelCache;
1010
import mekanism.client.render.RenderTickHandler;
@@ -30,7 +30,7 @@ public class RenderPigmentMixer extends MekanismTileEntityRenderer<TileEntityPig
3030

3131
private static final float SHAFT_SPEED = 5F;
3232
@Nullable
33-
private static Set<Line> lines;
33+
private static List<Line> lines;
3434

3535
public static void resetCached() {
3636
lines = null;

src/main/java/mekanism/client/render/tileentity/RenderSeismicVibrator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import com.mojang.blaze3d.vertex.PoseStack;
44
import com.mojang.blaze3d.vertex.PoseStack.Pose;
55
import com.mojang.blaze3d.vertex.VertexConsumer;
6-
import java.util.Set;
6+
import java.util.List;
77
import mekanism.api.annotations.NothingNullByDefault;
88
import mekanism.client.model.MekanismModelCache;
99
import mekanism.client.render.RenderTickHandler;
@@ -26,7 +26,7 @@
2626
public class RenderSeismicVibrator extends MekanismTileEntityRenderer<TileEntitySeismicVibrator> implements IWireFrameRenderer {
2727

2828
@Nullable
29-
private static Set<Line> lines;
29+
private static List<Line> lines;
3030

3131
public static void resetCached() {
3232
lines = null;

0 commit comments

Comments
 (0)