diff --git a/src/main/java/techreborn/blocks/generator/BlockSolarPanel.java b/src/main/java/techreborn/blocks/generator/BlockSolarPanel.java new file mode 100644 index 000000000..108d3eebf --- /dev/null +++ b/src/main/java/techreborn/blocks/generator/BlockSolarPanel.java @@ -0,0 +1,25 @@ +package techreborn.blocks.generator; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import reborncore.common.BaseTileBlock; +import techreborn.client.TechRebornCreativeTab; +import techreborn.tiles.generator.TileSolarPanel; + +/** + * Created by mark on 25/02/2016. + */ +public class BlockSolarPanel extends BaseTileBlock { + + public BlockSolarPanel() { + super(Material.iron); + setUnlocalizedName("techreborn.solarpanel"); + setCreativeTab(TechRebornCreativeTab.instance); + } + + @Override + public TileEntity createNewTileEntity(World worldIn, int meta) { + return new TileSolarPanel(); + } +} diff --git a/src/main/java/techreborn/init/ModBlocks.java b/src/main/java/techreborn/init/ModBlocks.java index abe82a7dd..7b866b09f 100644 --- a/src/main/java/techreborn/init/ModBlocks.java +++ b/src/main/java/techreborn/init/ModBlocks.java @@ -79,6 +79,7 @@ public class ModBlocks { public static Block Compressor; public static Block Extractor; public static Block ElectricFurnace; + public static Block solarPanel; public static BlockOre ore; public static BlockOre2 ore2; @@ -284,6 +285,9 @@ public class ModBlocks { GameRegistry.registerBlock(ElectricFurnace, "techreborn.electricfurnace"); GameRegistry.registerTileEntity(TileElectricFurnace.class, "TileElectricFurnaceTR"); + solarPanel = new BlockSolarPanel(); + GameRegistry.registerBlock(solarPanel, "techreborn.solarpanel"); + GameRegistry.registerTileEntity(TileSolarPanel.class, "TileSolarPanel"); GameRegistry.registerTileEntity(TileMachineBase.class, "TileMachineBaseTR"); diff --git a/src/main/java/techreborn/init/RecipeCompact.java b/src/main/java/techreborn/init/RecipeCompact.java index 8c9dfd9f8..13671ebee 100644 --- a/src/main/java/techreborn/init/RecipeCompact.java +++ b/src/main/java/techreborn/init/RecipeCompact.java @@ -51,6 +51,7 @@ public class RecipeCompact implements IRecipeCompact { recipes.put("macerator", new ItemStack(ModBlocks.Grinder)); recipes.put("diamondDrill", new ItemStack(ModItems.diamondDrill)); recipes.put("miningDrill", new ItemStack(ModItems.ironDrill)); + recipes.put("solarPanel", new ItemStack(ModBlocks.solarPanel)); inited = false; } diff --git a/src/main/java/techreborn/tiles/generator/TileSolarPanel.java b/src/main/java/techreborn/tiles/generator/TileSolarPanel.java new file mode 100644 index 000000000..3ffb0dde6 --- /dev/null +++ b/src/main/java/techreborn/tiles/generator/TileSolarPanel.java @@ -0,0 +1,74 @@ +package techreborn.tiles.generator; + +import com.mojang.realmsclient.gui.ChatFormatting; +import net.minecraft.util.EnumFacing; +import reborncore.common.powerSystem.PowerSystem; +import reborncore.common.powerSystem.TilePowerAcceptor; + +import java.util.List; + +/** + * Created by mark on 25/02/2016. + */ +public class TileSolarPanel extends TilePowerAcceptor { + + boolean shouldMakePower = false; + + int powerToAdd; + + @Override + public void updateEntity() { + super.updateEntity(); + if(worldObj.getTotalWorldTime() % 60 == 0){ + shouldMakePower = isSunOut(); + } + if(shouldMakePower){ + powerToAdd = 10; + addEnergy(powerToAdd); + } else { + powerToAdd = 0; + } + } + + @Override + public void addInfo(List info, boolean isRealTile) { + super.addInfo(info, isRealTile); + if(isRealTile){ + // FIXME: 25/02/2016 + //info.add(ChatFormatting.LIGHT_PURPLE + "Power gen/tick " + ChatFormatting.GREEN + PowerSystem.getLocaliszedPower( powerToAdd)) ; + } + } + + public boolean isSunOut() { + return worldObj.canBlockSeeSky(pos.up()) && !worldObj.isRaining() && !worldObj.isThundering() && worldObj.isDaytime(); + } + + public TileSolarPanel() { + super(1); + } + + @Override + public double getMaxPower() { + return 1000; + } + + @Override + public boolean canAcceptEnergy(EnumFacing direction) { + return false; + } + + @Override + public boolean canProvideEnergy(EnumFacing direction) { + return true; + } + + @Override + public double getMaxOutput() { + return 32; + } + + @Override + public double getMaxInput() { + return 0; + } +} diff --git a/src/main/resources/assets/techreborn/lang/en_US.lang b/src/main/resources/assets/techreborn/lang/en_US.lang index b192534c2..b913a0d5a 100644 --- a/src/main/resources/assets/techreborn/lang/en_US.lang +++ b/src/main/resources/assets/techreborn/lang/en_US.lang @@ -64,6 +64,7 @@ tile.techreborn.ore2.copper.name=Copper Ore tile.techreborn.ore2.tin.name=Tin Ore tile.techreborn.storage2.copper.name=Copper Block tile.techreborn.storage2.tin.name=Tin Block +tile.techreborn.solarpanel.name=Solar panel #Blocks tile.techreborn.rubberlog.name=Rubber Wood