Electrodynamics

Electrodynamics

503k Downloads

Logistical wires send power in bursts, which makes them effectively never meltdown

9thCore opened this issue ยท 2 comments

commented

Repro:

  1. Add a power source which outputs a lot of power
  2. Add a potentiometer or a battery
  3. Connect with any non-logistical wire besides superconductive (as it never melts down)
  4. Wire ampacity too low, so it melts down
  5. Repeat 3. with any logistical wire besides superconductive
  6. Notice how power only gets transferred in short bursts (presumably because of block state updates related to its LIT property; looks like current only goes through when off?), which prevents a meltdown entirely

Video:
https://github.com/user-attachments/assets/fc65b090-edab-4e88-829f-779adf4a4a14

Technical data:
Minecraft 1.20.1
Forge 47.3.1
Electrodynamics 1.20.1-0.9.1-0

commented

Tinkered around and debugged for a bit (read: a few hours) and I've narrowed the issue down to logistical wires specifically directly connected to the producer being the culprit and not letting any power flow out.
Wires in-between don't impact anything but letting redstone get energy, and wires directly connected to the receiver have no special impact either.
It seems that while the logistical wire is on, voltage is set to 0, so ElectricNetwork#sendToReceivers is never called (see if block it's in). The reason for which I'm still trying to grasp, however
(is behaviour intended, after all? seems like odd logic, given that its neither documented in the guidebook nor makes much logical sense as we already have the relay which can block electricity flow)

commented

i figured it out. was not a bug after all, is a combination of multiple factors

  1. the sources i'd tested get disabled by any amount of redstone current
  2. logistical wires output 15 redstone current in every direction
  3. while the sources are disabled, no power is transmitted out, so the logistical wire eventually turns off as it re-reads the current being transmitted over the network
  4. rinse and repeat