Ejemplo n.º 1
0
  @Override
  public void onUpdate() {
    super.onUpdate();

    double newSumTemp = 0;
    double newHeatLost = 0;
    double newHeatTransferred = 0;

    if (FMLCommonHandler.instance().getEffectiveSide().isServer()) {
      for (IGridTransmitter<IHeatTransfer, HeatNetwork> transmitter : transmitters) {
        if (transmitter instanceof MultipartTransmitter
            && ((MultipartTransmitter) transmitter).getPart() instanceof IHeatTransfer) {
          IHeatTransfer heatTransmitter =
              (IHeatTransfer) ((MultipartTransmitter) transmitter).getPart();
          double[] d = heatTransmitter.simulateHeat();
          newHeatTransferred += d[0];
          newHeatLost += d[1];
        }
      }

      for (IGridTransmitter<IHeatTransfer, HeatNetwork> transmitter : transmitters) {
        if (transmitter instanceof MultipartTransmitter
            && ((MultipartTransmitter) transmitter).getPart() instanceof IHeatTransfer) {
          IHeatTransfer heatTransmitter =
              (IHeatTransfer) ((MultipartTransmitter) transmitter).getPart();
          newSumTemp += heatTransmitter.applyTemperatureChange();
        }
      }
    }

    heatLost = newHeatLost;
    heatTransferred = newHeatTransferred;
    meanTemp = newSumTemp / transmitters.size();
  }