Skip to content

LogisticsPipes ​

24 merged pull requests.

New Features ​

  • #125 Added ComputerCraft commands makeRequest(fluid, amount), getFluidAmount(fluid), and getAvailableFluids() to PipeFluidRequestLogistics. Added CCFluidIdentifierBuilder and extended LPGlobalCCAccess with getFluidIdentifierBuilder() for Forge registry name lookup. Also extended OpenComputers wrapper. - @DerekChan65535
    • Added: PipeFluidRequestLogistics CC/OC integration, CCFluidIdentifierBuilder, Fluid request commands, FluidIdentifier builder for computers
  • #120 Replaced hardcoded energy value text in GuiPowerProvider with localized language keys. - @Ranzuu
    • Added: localized energy value keys
  • #114 Replaced hardcoded texture rendering with localized texture references and added language keys for GUI elements across multiple GUI classes. - @Ranzuu
    • Added: localized texture support, translation keys for GUI elements
  • #113 Added NEI handler classes (CraftingPipeOverlayHandler, NEILogisticsPipesConfig), packet handlers for recipe import, and data serialization support. Integrated with GuiCraftingPipe and ModuleBaseGui. - @ChaosTheLegend
    • Added: NEI recipe import overlay, advanced recipe import with fluids, fluid satellite auto-configuration, improved quantity display for large numbers
    • Fixed: hotkey support in crafting pipe GUIs
  • #101 Added satellite ID copying logic to PipeItemsSatelliteLogistics with chat feedback. - @Firenezz
    • Added: satellite ID copy functionality, chat confirmation

Changes ​

  • #108 ModuleTypeFilterItemSink swaps EnumSet<OrePrefixes> for a HashSet and maps prefixes with OrePrefixes::getName, since OrePrefixes is no longer an enum. dependencies.gradle bumps NEI, ModularUI2, AE2, EnderCore, EnderIO, GT5-Unofficial, GTNHLib, OpenComputers and StorageDrawers. - @Vlamonster

Bug Fixes ​

  • #137 Reworked CraftingPipeSign.render with a type check on the pipe, named constants for scale and offsets, and a shared empty sign data object. isListCompatible now returns false so the sign is not drawn from a cached render list. - @PLASMAchicken
    • Fixed: Logistics Pipes crafting sign crash, Logistics Pipes crafting sign broken render
    • Closes GTNH#22909
  • #132 Modified LogisticsRenderPipe to cull against renderViewEntity instead of player entity, improving compatibility with freecam. - @Caedis
    • Fixed: Freecam rendering compatibility
  • #131 Modified version check logic in SpecialInventoryHandlerManager to properly detect GT versions beyond GT5. - @felixfour
    • Fixed: GT loader check for GT6 compatibility
  • #129 Moved LogisticsNewRenderPipe.loadModels() out of the class's static initializer and into LogisticsPipes.init, so models load in the init stage. - @tiffit
    • Fixed: pipe models not loading with Hodgepodge async icon loading
  • #128 Removed LogisticsPipes.loadClasses() and forName() from preInit. They force-loaded classes including cofh.thermaldynamics.render.RenderDuctItems, which pulls in client-only TileEntitySpecialRenderer on a dedicated server. - @mitchej123
    • Removed: class preloading for checksum generation
    • Fixed: NoClassDefFoundError for TileEntitySpecialRenderer on server with LP, RFB and Thermal
  • #124 ServerRouter.queue changed from an unsynchronized LinkedList to a ConcurrentLinkedQueue. handleQueuedTasks now polls until null instead of checking isEmpty and then polling, so the tick thread and the computer call thread no longer corrupt the list. - @DerekChan65535
    • Fixed: server crash from ServerRouter task queue under OpenComputers/ComputerCraft access
  • #123 LogisticsTileGenericPipe overrides createScreen to return a ModularScreen. PipeFluidSupplierMk2 moves from the Column and Row widgets to Flow.column and Flow.row, and dependencies.gradle bumps ModularUI2 to 2.3.72 and others. - @tiffit
    • Fixed: Fluid Supplier Mk2 GUI client-to-server sync issues
    • Closes GTNH#24967
  • #122 Updated PacketHandler to copy FML's proper FMLIndexedMessageToMessageCodec implementation, fixing resource handling. - @Alexdoru
    • Fixed: network handler memory leak
  • #112 ModuleCrafter now listens to its dummy inventory and sends it to watchers. A new ModuleBufferInventory packet and IModuleBufferInventoryReceive interface sync the MK3 buffer list. HUDCraftingMK3 is deleted and merged into HUDCrafting. - @jude123412
    • Added: ModuleBufferInventory packet
    • Removed: HUDCraftingMK3 class
    • Fixed: HUD Glasses not rendering crafting pipe results after relogging
  • #111 Added world reference cleanup in ServerPacketBufferHandlerThread, LogisticsEventListener, LogisticsPipes, PacketHandler, and MainProxy to prevent memory leaks. - @Alexdoru
    • Fixed: world leak in ServerPacketBufferHandlerThread
  • #109 FluidRoutedPipe.endReached uses the new getAdjacentTank(output direction) to fill the intended side first. PipeFluidProvider.canProvide returns early when any filter has blockProvider set, as a stopgap marked FIXME. - @Glease
    • Fixed: fluid delivered to the wrong adjacent tank, fluid provider pipe providing fluid across a firewall
  • #107 LogisticsNewPipeItemRenderer and LogisticsNewSolidBlockWorldRenderer inventory rendering now draws through CCRenderState with the lightmap pulled, instead of the vanilla Tessellator. Copied from MrTJPCore's TCubeMapRender. - @sisyphussy
    • Fixed: wrong lighting on Logistics Pipes block item rendering
  • #102 PipeFluidBasic.sinkAmount now uses long arithmetic for free space and capacity, so a reported capacity of Integer.MAX_VALUE no longer overflows. The result is clamped to int, and the early return inside the tank loop is removed. - @and-reas-se
    • Fixed: fluids not routed to basic fluid pipes connected to fluid-voiding tanks

Performance ​

  • #135 Added cached VALUES arrays to CoverSides and BlockRotation in LogisticsNewSolidBlockWorldRenderer and used them instead of values() in the pipe world, item and solid block renderers. - @boubou19
  • #133 Added a cached Particles.VALUES array and used it in place of Particles.values() in ParticleFX, PipeFXRenderHandler and CoreRoutedPipe. values() cloned the array on each call and was called over 500 times in a short playtest. - @boubou19

Internal / Refactor ​

  • #130 Removed the static renderPass field in LogisticsPipeWorldRenderer and the write in LogisticsBlockGenericPipe.canRenderInPass. Renderers now call ForgeHooksClient.getWorldRenderPass(), which is safe with threaded chunk rendering. - @mitchej123
    • Fixed: render pass stored in a shared static field
  • #121 Replaced CapturingTessellator with DirectTessellator (VBO to VAO) in VBOList and the item renderers. Removed GLRenderList, IRenderable and the enableVBO flag with its OptiFine check. GLRenderListHandler.tick now runs once every 20 ticks and removes entries with an iterator. Added required-after:gtnhlib to the mod dependencies. - @sisyphussy
    • Removed: display list render fallback, OptiFine VBO check

Chores ​

  • #115 Replaced the not-grep action and its toml config with a plain grep step in test-scala-presence.yml, and bumped actions/checkout to v4. - @UltraProdigy
    • Fixed: Scala presence CI check

Contributors ​

Everyone who authored, reviewed or co-authored a change on this page, with how many of them:

@UltraProdigy (8), @Dream-Master (5), @sisyphussy (4), @boubou19 (3), @Caedis (3), @slprime (3), @Alexdoru (2), @Algent (2), @claude (2), @DerekChan65535 (2), @Ethryan (2), @mitchej123 (2), @Ranzuu (2), @serenibyss (2), @tiffit (2), @and-reas-se (1), @AnsonYeung (1), @ChaosTheLegend (1), @chochem (1), @felixfour (1), @Firenezz (1), @FourIsTheNumber (1), @Glease (1), @jude123412 (1), @Justxs (1), @Miklebe (1), @PLASMAchicken (1), @Vlamonster (1), @wlhlm (1), @Worive (1)