Package vazkii.botania.common.block.subtile.generating

Source Code of vazkii.botania.common.block.subtile.generating.SubTileDaybloom

/**
* This class was created by <Vazkii>. It's distributed as
* part of the Botania Mod. Get the Source Code in github:
* https://github.com/Vazkii/Botania
*
* Botania is Open Source and distributed under a
* Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License
* (http://creativecommons.org/licenses/by-nc-sa/3.0/deed.en_GB)
*
* File Created @ [Jan 25, 2014, 3:09:35 PM (GMT)]
*/
package vazkii.botania.common.block.subtile.generating;

import java.awt.Color;

import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection;
import vazkii.botania.api.lexicon.LexiconEntry;
import vazkii.botania.api.subtile.ISubTileContainer;
import vazkii.botania.api.subtile.SubTileGenerating;
import vazkii.botania.common.Botania;
import vazkii.botania.common.lexicon.LexiconData;
import vazkii.botania.common.lib.LibMisc;

public class SubTileDaybloom extends SubTileGenerating {

  @Override
  public int getColor() {
    return 0xFFFF00;
  }

  @Override
  public boolean canGeneratePassively() {
    boolean rain = supertile.getWorldObj().getWorldChunkManager().getBiomeGenAt(supertile.xCoord, supertile.zCoord).getIntRainfall() > 0 && (supertile.getWorldObj().isRaining() || supertile.getWorldObj().isThundering());
    return !supertile.getWorldObj().isRemote && supertile.getWorldObj().isDaytime() && !rain && supertile.getWorldObj().canBlockSeeTheSky(supertile.xCoord, supertile.yCoord + 1, supertile.zCoord);
  }

  @Override
  public int getDelayBetweenPassiveGeneration() {
    return 30 + (int) (getSurroundingFlowers() * 7.5);
  }

  @Override
  public boolean isPassiveFlower() {
    return true;
  }

  public int getSurroundingFlowers() {
    int flowers = 0;
    for(ForgeDirection dir : LibMisc.CARDINAL_DIRECTIONS) {
      TileEntity tile = supertile.getWorldObj().getTileEntity(supertile.xCoord + dir.offsetX, supertile.yCoord, supertile.zCoord + dir.offsetZ);
      if(tile != null && tile instanceof ISubTileContainer) {
        ISubTileContainer flower = (ISubTileContainer) tile;
        if(flower.getSubTile() != null && flower.getSubTile().getClass() == getClass()) {
          flowers++;

          Color color = new Color(getColor());
          float r = color.getRed() / 255F;
          float g = color.getGreen() / 255F;
          float b = color.getBlue() / 255F;

          float m = 0.045F;
          if(supertile.getWorldObj().getTotalWorldTime() % 10 == 0)
            Botania.proxy.wispFX(supertile.getWorldObj(), supertile.xCoord + 0.5, supertile.yCoord + 0.05, supertile.zCoord + 0.5, r, g, b, 0.1F, dir.offsetX * m, dir.offsetY * m, dir.offsetZ * m);
        }
      }
    }

    return flowers;
  }

  @Override
  public boolean shouldSyncPassiveGeneration() {
    return true;
  }

  @Override
  public LexiconEntry getEntry() {
    return LexiconData.daybloom;
  }

}
TOP

Related Classes of vazkii.botania.common.block.subtile.generating.SubTileDaybloom

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.