• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

CyclopsMC / IntegratedDynamics / 16552051255

27 Jul 2025 01:58PM UTC coverage: 53.206% (+8.0%) from 45.161%
16552051255

push

github

rubensworks
Resolve minor TODOs

2888 of 8740 branches covered (33.04%)

Branch coverage included in aggregate %.

17341 of 29280 relevant lines covered (59.22%)

3.08 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/main/java/org/cyclops/integrateddynamics/core/network/diagnostics/NetworkDiagnosticsPartOverlayRenderer.java
1
package org.cyclops.integrateddynamics.core.network.diagnostics;
2

3
import com.google.common.collect.Lists;
4
import com.google.common.collect.Sets;
5
import com.mojang.blaze3d.systems.RenderSystem;
6
import net.minecraft.client.Minecraft;
7
import net.minecraft.client.renderer.RenderType;
8
import net.minecraft.client.renderer.ShapeRenderer;
9
import net.minecraft.world.entity.player.Player;
10
import net.minecraft.world.phys.AABB;
11
import net.minecraft.world.phys.Vec3;
12
import net.minecraft.world.phys.shapes.CollisionContext;
13
import net.minecraft.world.phys.shapes.Shapes;
14
import net.minecraft.world.phys.shapes.VoxelShape;
15
import net.neoforged.bus.api.SubscribeEvent;
16
import net.neoforged.neoforge.client.event.RenderLevelStageEvent;
17
import org.cyclops.integrateddynamics.api.part.PartPos;
18
import org.cyclops.integrateddynamics.core.helper.PartHelpers;
19

20
import java.util.List;
21
import java.util.Set;
22

23
/**
24
 * @author rubensworks
25
 */
26
public class NetworkDiagnosticsPartOverlayRenderer {
27

28
    private static final NetworkDiagnosticsPartOverlayRenderer _INSTANCE = new NetworkDiagnosticsPartOverlayRenderer();
×
29
    private final Set<PartPos> partPositions = Sets.newHashSet();
×
30

31
    private NetworkDiagnosticsPartOverlayRenderer() {
×
32

33
    }
×
34

35
    public static NetworkDiagnosticsPartOverlayRenderer getInstance() {
36
        return _INSTANCE;
×
37
    }
38

39
    public synchronized void addPos(PartPos pos) {
40
        partPositions.add(pos);
×
41
    }
×
42

43
    public synchronized void removePos(PartPos pos) {
44
        partPositions.remove(pos);
×
45
    }
×
46

47
    public synchronized void clearPositions() {
48
        partPositions.clear();
×
49
    }
×
50

51
    public synchronized boolean hasPartPos(PartPos pos) {
52
        return partPositions.contains(pos);
×
53
    }
54

55
    @SubscribeEvent
56
    public void onRender(RenderLevelStageEvent.AfterSky event) {
57
        if (!partPositions.isEmpty()) {
×
58
            Player player = Minecraft.getInstance().player;
×
59

60
            Vec3 eyePos = event.getCamera().getPosition();
×
61
            double offsetX = eyePos.x;
×
62
            double offsetY = eyePos.y;
×
63
            double offsetZ = eyePos.z;
×
64

65
            RenderSystem.lineWidth(6.0F);
×
66

67
            List<PartPos> partList = Lists.newArrayList(partPositions);
×
68
            for (PartPos partPos : partList) {
×
69
                if (partPos.getPos().getLevelKey().location().equals(player.level().dimension().location()) && partPos.getPos().getBlockPos().distSqr(player.blockPosition()) < 10000) {
×
70
                    PartHelpers.PartStateHolder<?, ?> partStateHolder = PartHelpers.getPart(partPos);
×
71
                    final VoxelShape shape;
72
                    if (partStateHolder != null) {
×
73
                        shape = partStateHolder.getPart().getPartRenderPosition().getBoundingBox(partPos.getSide(), CollisionContext.empty());
×
74
                    } else {
75
                        shape = Shapes.BLOCK;
×
76
                    }
77

78
                    AABB bb = shape
×
79
                            .bounds()
×
80
                            .move(partPos.getPos().getBlockPos())
×
81
                            .move(-offsetX, -offsetY, -offsetZ)
×
82
                            .inflate(0.05, 0.05, 0.05)
×
83
                            .inflate(-0.05, -0.05, -0.05);
×
84
                    ShapeRenderer.renderLineBox(event.getPoseStack(), Minecraft.getInstance().renderBuffers().outlineBufferSource().getBuffer(RenderType.lines()),
×
85
                            bb, 1.0F, 0.2F, 0.1F, 0.8F);
86
                }
87
            }
×
88
        }
89
    }
×
90

91
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc