Examples of IEnergyHandler


Examples of cofh.api.energy.IEnergyHandler

  @Optional.Method(modid = "CoFHAPI")
  protected final int transmitEnergy(int energy) {
    if (handlerCache != null)
      for(int i = handlerCache.length; i-- > 0;) {
        IEnergyHandler tile = handlerCache[i];
        if (tile == null)
          continue;

        ForgeDirection from = ForgeDirection.VALID_DIRECTIONS[i];
        if(tile.receiveEnergy(from, energy, true) > 0)
          energy -= tile.receiveEnergy(from, energy * 10, false) / 10;

        if(energy <= 0)
          return 0;
      }

View Full Code Here

Examples of cofh.api.energy.IEnergyHandler

    if (tile instanceof ITileInfo) {
      ((ITileInfo) tile).getTileInfo(info, side, player, debug);
    } else {
      if (tile instanceof IEnergyHandler) {
        IEnergyHandler eHandler = (IEnergyHandler) tile;
        if (eHandler.getMaxEnergyStored(side) <= 0) {
          return;
        }
        info.add(new ChatComponentText(StringHelper.localize("info.cofh.energy") + ": " + eHandler.getEnergyStored(side) + "/"
            + eHandler.getMaxEnergyStored(side) + " RF."));
      }
    }
  }
View Full Code Here

Examples of cofh.api.energy.IEnergyHandler

   * @return amount sent
   */
  public int sendEnergy(ForgeDirection orientation, TileEntity tile, int amount) {
    int sent = 0;
    if (BlockUtil.isRFTile(orientation.getOpposite(), tile)) {
      IEnergyHandler receptor = (IEnergyHandler) tile;

      int extractable = energyStorage.extractEnergy(amount, true);
      if (extractable > 0) {
        sent = receptor.receiveEnergy(orientation.getOpposite(), extractable, false);
        energyStorage.extractEnergy(sent, false);
      }
    }
    return sent;
  }
View Full Code Here

Examples of cofh.api.energy.IEnergyHandler

      return false;

    if (!(tile instanceof IEnergyHandler))
      return false;

    IEnergyHandler receptor = (IEnergyHandler) tile;
    return receptor.canConnectEnergy(side);
  }
View Full Code Here

Examples of cofh.api.energy.IEnergyHandler

  private int getPowerToExtract() {
    TileEntity tile = getTileBuffer(orientation).getTile();

    if (tile instanceof IEnergyHandler) {
      IEnergyHandler handler = (IEnergyHandler) tile;

      int minEnergy = 0;
      int maxEnergy = handler.receiveEnergy(
          orientation.getOpposite(),
          Math.round(this.energy), true);
      return extractEnergy(minEnergy, maxEnergy, false);
    } else if (tile instanceof IPowerReceptor) {
      PowerReceiver receptor = ((IPowerReceptor) tile)
View Full Code Here

Examples of cofh.api.energy.IEnergyHandler

      } else {
        setPumping(false);
      }

      if (tile instanceof IEnergyHandler) {
        IEnergyHandler handler = (IEnergyHandler) tile;
        if (extracted > 0) {
          int neededRF = handler.receiveEnergy(
              orientation.getOpposite(),
              (int) Math.round(extracted), false);

          extractEnergy(0, neededRF, true);
        }
View Full Code Here

Examples of cofh.api.energy.IEnergyHandler

            powerConsumed = nearbyTransport.receiveEnergy(
                ForgeDirection.VALID_DIRECTIONS[out].getOpposite(),
                powerConsumed);
            tilePowered = true;
          } else if (tiles[out] instanceof IEnergyHandler) {
            IEnergyHandler handler = (IEnergyHandler) tiles[out];

            if (handler.canConnectEnergy(ForgeDirection.VALID_DIRECTIONS[out].getOpposite())) {
              // Transmit power to an RF energy handler

              powerConsumed = handler.receiveEnergy(ForgeDirection.VALID_DIRECTIONS[out].getOpposite(),
                  powerConsumed, false);
              tilePowered = true;
            }
          } else {
            PowerReceiver prov = getReceiverOnSide(ForgeDirection.VALID_DIRECTIONS[out]);

            if (prov != null) {
              // Transmit power to the legacy power framework

              powerConsumed = (int) Math.ceil(prov.receiveEnergy(Type.PIPE, powerConsumed / 10.0,
                  ForgeDirection.VALID_DIRECTIONS[out].getOpposite()) * 10);
              tilePowered = true;
            }
          }

          if (!tilePowered) {
            externalPower[out] = powerConsumed;
          }

          displayPower[out] += powerConsumed;
          totalPowerConsumed += powerConsumed;
        }
      }
    }

    // STEP 3 - assume equal repartition of all consumed locations and
    // compute display for each source of power

    if (totalPowerConsumed > 0) {
      for (int in = 0; in < 6; ++in) {
        int powerConsumed = internalPower[in] * totalPowerConsumed / totalPowerContained;
        displayPower[in] += powerConsumed;
      }
    }

    // NEXT STEPS... other things to do...

    highestPower = 0;
    for (int i = 0; i < 6; i++) {
      displayPower[i] = (short) ((prevDisplayPower[i] * (DISPLAY_SMOOTHING - 1.0F) + displayPower[i]) / DISPLAY_SMOOTHING);

      if (displayPower[i] > highestPower) {
        highestPower = displayPower[i];
      }

      if (displayPower[i] < 0) {
        displayPower[i] = 0;
      }
    }

    overload += highestPower > maxPower * 0.95 ? 1 : -1;
    if (overload < 0) {
      overload = 0;
    }
    if (overload > OVERLOAD_TICKS) {
      overload = OVERLOAD_TICKS;
    }

    // Compute the tiles requesting energy that are not power pipes

    for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
        if (!outputOpen(dir)) {
          continue;
      }

      TileEntity tile = tiles [dir.ordinal()];
     
        if (tile instanceof TileGenericPipe && ((TileGenericPipe) tile).pipe.transport instanceof PipeTransportPower) {
          continue;
        }
       
      if (tile instanceof IEnergyHandler) {
        IEnergyHandler handler = (IEnergyHandler) tile;
        if (handler.canConnectEnergy(dir.getOpposite())) {
          int request = handler.receiveEnergy(dir.getOpposite(), this.maxPower, true);

          if (request > 0) {
            requestEnergy(dir, request);
          }
        }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.