Added HeatGenerator

This commit is contained in:
Gig 2015-05-10 16:42:01 +01:00
parent 350580d76e
commit ee0844bd0c
4 changed files with 193 additions and 0 deletions

View file

@ -0,0 +1,61 @@
package techreborn.blocks.generator;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import techreborn.Core;
import techreborn.blocks.BlockMachineBase;
import techreborn.client.GuiHandler;
import techreborn.tiles.TileDieselGenerator;
import techreborn.tiles.TileHeatGenerator;
public class BlockHeatGenerator extends BlockMachineBase{
@SideOnly(Side.CLIENT)
private IIcon iconFront;
@SideOnly(Side.CLIENT)
private IIcon iconTop;
@SideOnly(Side.CLIENT)
private IIcon iconBottom;
public BlockHeatGenerator(Material material)
{
super(material);
setBlockName("techreborn.heatgenerator");
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister icon)
{
this.blockIcon = icon.registerIcon("techreborn:machine/machine_side");
this.iconFront = icon.registerIcon("techreborn:machine/machine_side");
this.iconTop = icon.registerIcon("techreborn:machine/machine_top");
this.iconBottom = icon.registerIcon("techreborn:machine/machine_bottom");
}
@Override
public TileEntity createNewTileEntity(World world, int p_149915_2_)
{
return new TileHeatGenerator();
}
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int metadata)
{
return metadata == 0 && side == 3 ? this.iconFront
: side == 1 ? this.iconTop :
side == 0 ? this.iconBottom: (side == 0 ? this.iconTop
: (side == metadata ? this.iconFront : this.blockIcon));
}
}

View file

@ -20,6 +20,7 @@ import techreborn.blocks.BlockSupercondensator;
import techreborn.blocks.BlockWoodenshelf;
import techreborn.blocks.generator.BlockDieselGenerator;
import techreborn.blocks.generator.BlockDragonEggSiphoner;
import techreborn.blocks.generator.BlockHeatGenerator;
import techreborn.blocks.generator.BlockLightningRod;
import techreborn.blocks.generator.BlockMagicEnergyAbsorber;
import techreborn.blocks.generator.BlockMagicEnergyConverter;
@ -60,6 +61,7 @@ import techreborn.tiles.TileChunkLoader;
import techreborn.tiles.TileDieselGenerator;
import techreborn.tiles.TileDragonEggSiphoner;
import techreborn.tiles.TileGrinder;
import techreborn.tiles.TileHeatGenerator;
import techreborn.tiles.TileImplosionCompressor;
import techreborn.tiles.TileIndustrialElectrolyzer;
import techreborn.tiles.TileLathe;
@ -113,6 +115,7 @@ public class ModBlocks {
public static Block FusionControlComputer;
public static Block FusionCoil;
public static Block LightningRod;
public static Block heatGenerator;
public static Block ore;
public static Block storage;
@ -259,6 +262,10 @@ public class ModBlocks {
LightningRod = new BlockLightningRod(Material.rock);
GameRegistry.registerBlock(LightningRod, "lightningrod");
heatGenerator = new BlockHeatGenerator(Material.rock);
GameRegistry.registerBlock(heatGenerator, "heatgenerator");
GameRegistry.registerTileEntity(TileHeatGenerator.class, "TileHeatGenerator");
registerOreDict();
}

View file

@ -0,0 +1,124 @@
package techreborn.tiles;
import ic2.api.energy.prefab.BasicSink;
import ic2.api.energy.prefab.BasicSource;
import ic2.api.energy.tile.IEnergyTile;
import ic2.api.tile.IWrenchable;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import techreborn.api.recipe.RecipeCrafter;
import techreborn.config.ConfigTechReborn;
import techreborn.init.ModBlocks;
import techreborn.util.Inventory;
public class TileHeatGenerator extends TileMachineBase implements IWrenchable, IEnergyTile {
public BasicSource energy;
public static final int euTick = 1;
public TileHeatGenerator()
{
energy = new BasicSource(this, 1000, 1);
}
@Override
public void updateEntity()
{
super.updateEntity();
energy.updateEntity();
if(!worldObj.isRemote)
{
if(worldObj.getBlock(xCoord + 1, yCoord, zCoord) == Blocks.lava)
{
energy.addEnergy(euTick);
}
else if(worldObj.getBlock(xCoord, yCoord, zCoord + 1) == Blocks.lava)
{
energy.addEnergy(euTick);
}
else if(worldObj.getBlock(xCoord, yCoord, zCoord - 1) == Blocks.lava)
{
energy.addEnergy(euTick);
}
else if(worldObj.getBlock(xCoord - 1, yCoord, zCoord) == Blocks.lava)
{
energy.addEnergy(euTick);
}
else if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) == Blocks.lava)
{
energy.addEnergy(euTick);
}
}
}
@Override
public boolean wrenchCanSetFacing(EntityPlayer entityPlayer, int side)
{
return false;
}
@Override
public short getFacing()
{
return 0;
}
@Override
public void setFacing(short facing)
{
}
@Override
public boolean wrenchCanRemove(EntityPlayer entityPlayer)
{
return true;
}
@Override
public float getWrenchDropRate()
{
return 1.0F;
}
@Override
public ItemStack getWrenchDrop(EntityPlayer entityPlayer)
{
return new ItemStack(ModBlocks.Dragoneggenergysiphoner, 1);
}
public boolean isComplete()
{
return false;
}
@Override
public void invalidate()
{
energy.invalidate();
}
@Override
public void onChunkUnload()
{
energy.onChunkUnload();
}
@Override
public void readFromNBT(NBTTagCompound tagCompound)
{
super.readFromNBT(tagCompound);
energy.readFromNBT(tagCompound);
}
@Override
public void writeToNBT(NBTTagCompound tagCompound)
{
super.writeToNBT(tagCompound);
energy.writeToNBT(tagCompound);
}
}

View file

@ -42,6 +42,7 @@ tile.techreborn.fusioncontrolcomputer.name=Fusion Control Computer
tile.techreborn.fusioncoil.name=Fusion Coil
tile.techreborn.lightningrod.name=Lightning Rod
tile.techreborn.assemblinmachine.name=Assembling Machine
tile.techreborn.heatgenerator.name=Heat Generator
#Ores