From 525a91e931028e0c8b462f4e127fad1b8ee20954 Mon Sep 17 00:00:00 2001 From: Stuart Pomeroy Date: Sun, 27 Mar 2016 18:25:45 +0100 Subject: [PATCH] Fixes solar panels being powered wierdly... --- .../blocks/generator/BlockSolarPanel.java | 28 +++++++++++++++++++ .../tiles/generator/TileSolarPanel.java | 12 ++------ 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/src/main/java/techreborn/blocks/generator/BlockSolarPanel.java b/src/main/java/techreborn/blocks/generator/BlockSolarPanel.java index 0323c6806..2cd8e9e8d 100644 --- a/src/main/java/techreborn/blocks/generator/BlockSolarPanel.java +++ b/src/main/java/techreborn/blocks/generator/BlockSolarPanel.java @@ -1,12 +1,15 @@ package techreborn.blocks.generator; import me.modmuss50.jsonDestroyer.api.ITexturedBlock; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; +import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import reborncore.common.BaseTileBlock; import techreborn.client.TechRebornCreativeTab; @@ -54,6 +57,31 @@ public class BlockSolarPanel extends BaseTileBlock implements ITexturedBlock return new TileSolarPanel(); } + @Override public void onNeighborBlockChange(World worldIn, BlockPos pos, IBlockState state, Block neighborBlock) + { + if(worldIn.canBlockSeeSky(pos.up()) && !worldIn.isRaining() && !worldIn.isThundering() + && worldIn.isDaytime()){ + worldIn.setBlockState(pos, + worldIn.getBlockState(pos).withProperty(BlockSolarPanel.ACTIVE, true)); + }else{ + + worldIn.setBlockState(pos, + worldIn.getBlockState(pos).withProperty(BlockSolarPanel.ACTIVE, false)); + } + } + + @Override public IBlockState onBlockPlaced(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, + float hitZ, int meta, EntityLivingBase placer) + { + if(worldIn.canBlockSeeSky(pos.up()) && !worldIn.isRaining() && !worldIn.isThundering() + && worldIn.isDaytime()){ + return this.getDefaultState().withProperty(ACTIVE, true); + + }else{ + return this.getDefaultState().withProperty(ACTIVE, false); + } + } + @Override public String getTextureNameFromState(IBlockState state, EnumFacing side) { diff --git a/src/main/java/techreborn/tiles/generator/TileSolarPanel.java b/src/main/java/techreborn/tiles/generator/TileSolarPanel.java index 81552a228..a0ee05a01 100644 --- a/src/main/java/techreborn/tiles/generator/TileSolarPanel.java +++ b/src/main/java/techreborn/tiles/generator/TileSolarPanel.java @@ -1,11 +1,10 @@ package techreborn.tiles.generator; -import java.util.List; - import net.minecraft.util.EnumFacing; import reborncore.api.power.EnumPowerTier; import reborncore.common.powerSystem.TilePowerAcceptor; -import techreborn.blocks.generator.BlockSolarPanel; + +import java.util.List; /** * Created by modmuss50 on 25/02/2016. @@ -39,13 +38,6 @@ public class TileSolarPanel extends TilePowerAcceptor { powerToAdd = 0; } - if (shouldMakePower != lastTickSate) - { - if (worldObj != null) - worldObj.setBlockState(pos, - worldObj.getBlockState(pos).withProperty(BlockSolarPanel.ACTIVE, shouldMakePower)); - } - lastTickSate = shouldMakePower; } @Override