WirelessRedstone-CBE
10 merged pull requests.
Bug Fixes
- #25 RedstoneEther.isPlayerJammed returns false when the player or jammedentities is null, avoiding a NullPointerException. Added so GuideNH needs no compatibility patch. - @ABKQPO
- Fixed: NullPointerException in isPlayerJammed before the ether is initialized
- #20 GuiRedstoneWireless setFreq clamps the parsed value between 0 and RedstoneEther.numfreqs, which avoided an ArrayIndexOutOfBoundsException. - @pxbhop
- Fixed: crash when entering a wireless frequency above 5000
- #19 Added null guard in ReceiverPart.setActive() and WirelessPart.updateChange() to check that the tile is still valid before attempting network updates. Depends on ForgeMultipart#46. - @alppp
- Fixed: NullPointerException on chunk unload when receivers update
- #17 TransceiverPart.activate no longer opens the GUI client-side. The server sends a new PacketCustom type 11 with the tile coordinates, and WRCoreCPH handles it by opening the GUI for an ITileWireless. Also bumps GTNHLib to 0.9.62 and enables jabel. - @Eldrinn-Elantey
- Fixed: transceiver GUI bypassing chunk protection
- #16 WRAddonEventHandler.clientTick now also checks that RedstoneEther.client() is not null before processing textures or ticking the client addons. Braces added to the if/else. - @Alexdoru
- Fixed: NPE in client tick
- #14 Clears client world references in the addons, including TriangTexManager and RedstoneEtherClientAddons, to fix the world client leak. Generics and final fields were cleaned up. The build moves to settings convention 2.0.24, ForgeMultipart 1.7.10, CodeChickenCore 1.4.12 and GTNHLib 0.9.52, with the daemon JVM set to 25. - @Alexdoru
- Fixed: client world memory leak
Performance
- #24 WirelessPart now provides cached renderTransform and renderTranslation. The pearl position reuses one Vector3 and ReceiverPart uses a static Rotation. TransceiverPart caches the frequency text as a string. RenderWireless uses a static pearl ResourceLocation. - @boubou19
- #23 RenderWirelessBolt now returns early with no bolts, culls with a Frustrum, and caches per-bolt render data in a BoltRender held on WirelessBolt. Textures are kept as static ResourceLocations. - @boubou19
- #22 RedstoneEther.init no longer fills freqarray. A new getFreq(int) creates each RedstoneEtherFrequency on first use, and freqExists guards loops such as remEther. RedstoneEtherServer call sites now go through getFreq. - @Alexdoru
- #21 Changed lazy-loading strategy to only allocate RedstoneEtherFrequency objects per dimension when they are actually used, rather than creating all 5000 upfront. Dimension cost reduced from ~1.24 MB per loaded dimension to proportional-to-usage. - @Algent
- Fixed: excessive memory allocation on dimension load
Contributors
Everyone who authored, reviewed or co-authored a change on this page, with how many of them:
@boubou19 (7), @Alexdoru (3), @Algent (2), @Pxx500 (2), @ABKQPO (1), @alppp (1), @Eldrinn-Elantey (1), @Luca-Guettinger (1), @pxbhop (1), @Ruling-0 (1)