Examples of Coord4D


Examples of mekanism.api.Coord4D

      bindTexture(MekanismRenderer.getBlocksTexture());

      if(data.height >= 2 && tileEntity.waterTank.getCapacity() > 0)
      {
        Coord4D renderLoc = tileEntity.getRenderLocation();

        push();

        GL11.glTranslated(getX(renderLoc.xCoord), getY(renderLoc.yCoord), getZ(renderLoc.zCoord));
View Full Code Here

Examples of mekanism.api.Coord4D

    {
      int xPos = MathHelper.floor_double(pos.blockX);
      int yPos = MathHelper.floor_double(pos.blockY);
      int zPos = MathHelper.floor_double(pos.blockZ);

      Coord4D obj = new Coord4D(xPos, yPos, zPos, tileEntity.getWorldObj().provider.dimensionId);

      if(xPos == tileEntity.xCoord && yPos == tileEntity.yCoord && zPos == tileEntity.zCoord)
      {
        EnumColor color = configurable.getSideData().get(configurable.getConfiguration()[MekanismUtils.getBaseOrientation(pos.sideHit, configurable.getOrientation())]).color;
View Full Code Here

Examples of mekanism.api.Coord4D

    for(int face = 0; face < 4; face++)
    {
      int side0 = sideEdges[side][((face + 3) % 4)];
      int side1 = sideEdges[side][face];

      if(!canConnect(world, new Coord4D(x, y, z), sideEdges[side][face], side))
      {
        map |= (7 << face * 2) % 256 | 7 >>> 8 - face * 2;
      }
      else if(!canConnect(world, new Coord4D(x, y, z).getFromSide(ForgeDirection.getOrientation(side0)), side1, side))
      {
        map |= 1 << face * 2;
      }
      else if(!canConnect(world, new Coord4D(x, y, z).getFromSide(ForgeDirection.getOrientation(side1)), side0, side))
      {
        map |= 1 << face * 2;
      }
    }

 
View Full Code Here

Examples of mekanism.api.Coord4D

    return glassMap.get(map);
  }

  private boolean canConnect(IBlockAccess access, Coord4D obj, int side, int face)
  {
    Coord4D coord = obj.getFromSide(ForgeDirection.getOrientation(side));
    Coord4D coordAbove = obj.getFromSide(ForgeDirection.getOrientation(face));

    return (coord.getBlock(access) == block && coord.getMetadata(access) == metadata) && (coordAbove.getBlock(access) != block || coordAbove.getMetadata(access) != metadata);
  }
View Full Code Here

Examples of mekanism.api.Coord4D

  }

  @SideOnly(Side.CLIENT)
  public boolean shouldRenderSide(IBlockAccess world, int x, int y, int z, int side)
  {
    Coord4D obj = new Coord4D(x, y, z).getFromSide(ForgeDirection.getOrientation(side).getOpposite());
    return obj.getBlock(world) != block || obj.getMetadata(world) != metadata;
  }
View Full Code Here

Examples of mekanism.api.Coord4D

    if(worldObj.isRemote)
    {
      if(dataWatcher.getWatchableObjectByte(2) == 1)
      {
        latched = new Coord4D(dataWatcher.getWatchableObjectInt(3), dataWatcher.getWatchableObjectInt(4), dataWatcher.getWatchableObjectInt(5), worldObj.provider.dimensionId);
      }
      else {
        latched = null;
      }
View Full Code Here

Examples of mekanism.api.Coord4D

    {
      int count = 1;
     
      while(true)
      {
        Coord4D coord = start.getFromSide(side, count);
       
        if(transportStack.canInsertToTransporter(coord.getTileEntity(worldObj), side))
        {
          list.add(coord);
          count++;
        }
        else {
View Full Code Here

Examples of mekanism.api.Coord4D

    tileEntity.getTile().getWorldObj().spawnEntityInWorld(entityItem);
  }

  public static float[] getStackPosition(ILogisticalTransporter tileEntity, TransporterStack stack, float partial)
  {
    Coord4D offset = new Coord4D(0, 0, 0, tileEntity.getTile().getWorldObj().provider.dimensionId).step(ForgeDirection.getOrientation(stack.getSide(tileEntity)));
    float progress = (((float)stack.progress + partial) / 100F) - 0.5F;

    float itemFix = 0;

    if(!(stack.itemStack.getItem() instanceof ItemBlock))
View Full Code Here

Examples of mekanism.api.Coord4D

      int blockCount = 0;

      for(int i = 0; i < 6; i++)
      {
        ForgeDirection direction = ForgeDirection.getOrientation(i);
        Coord4D neighbor = start.translate(direction.offsetX, direction.offsetY, direction.offsetZ);

        if(!transportStack.canInsertToTransporter(neighbor.getTileEntity(worldObj), direction) && (!neighbor.equals(finalNode) || !destChecker.isValid(transportStack, i, neighbor.getTileEntity(worldObj))))
        {
          blockCount++;
        }
      }

      if(blockCount >= 6)
      {
        return false;
      }

      double maxSearchDistance = start.distanceTo(finalNode) * 2;

      while(!openSet.isEmpty())
      {
        Coord4D currentNode = null;
        double lowestFScore = 0;

        for(Coord4D node : openSet)
        {
          if(currentNode == null || fScore.get(node) < lowestFScore)
          {
            currentNode = node;
            lowestFScore = fScore.get(node);
          }
        }

        if(currentNode == null && start.distanceTo(currentNode) > maxSearchDistance)
        {
          break;
        }

        openSet.remove(currentNode);
        closedSet.add(currentNode);

        for(int i = 0; i < 6; i++)
        {
          ForgeDirection direction = ForgeDirection.getOrientation(i);
          Coord4D neighbor = currentNode.getFromSide(direction);

          if(transportStack.canInsertToTransporter(neighbor.getTileEntity(worldObj), direction))
          {
            TileEntity tile = neighbor.getTileEntity(worldObj);
            double tentativeG = gScore.get(currentNode) + currentNode.distanceTo(neighbor);

            tentativeG += ((ILogisticalTransporter)tile).getCost();

            if(closedSet.contains(neighbor))
            {
              if(tentativeG >= gScore.get(neighbor))
              {
                continue;
              }
            }

            TileEntity currTile = currentNode.getTileEntity(worldObj);

            if(!openSet.contains(neighbor) || tentativeG < gScore.get(neighbor))
            {
              navMap.put(neighbor, currentNode);
              gScore.put(neighbor, tentativeG);
              fScore.put(neighbor, gScore.get(neighbor) + getEstimate(neighbor, finalNode));
              openSet.add(neighbor);
            }
          }
          else if(neighbor.equals(finalNode) && destChecker.isValid(transportStack, i, neighbor.getTileEntity(worldObj)))
          {
            results = reconstructPath(navMap, currentNode);
            return true;
          }
        }
View Full Code Here

Examples of mekanism.api.Coord4D

   * @return boolean[] of adjacent connections
   */
  public static boolean[] getConnections(TileEntity tileEntity, Set<ForgeDirection> sides)
  {
    boolean[] connectable = new boolean[] {false, false, false, false, false, false};
    Coord4D coord = Coord4D.get(tileEntity);

    for(ForgeDirection side : sides)
    {
      TileEntity tile = coord.getFromSide(side).getTileEntity(tileEntity.getWorldObj());

      connectable[side.ordinal()] |= isEnergyAcceptor(tile) && isConnectable(tileEntity, tile, side);
      connectable[side.ordinal()] |= isCable(tile);
      connectable[side.ordinal()] |= isOutputter(tile, side);
    }
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.