Added solar panel textures that are based on sate

This commit is contained in:
modmuss50 2016-02-26 08:26:24 +00:00
parent 76665a0360
commit e3c71248a4
2 changed files with 48 additions and 1 deletions

View file

@ -1,7 +1,13 @@
package techreborn.blocks.generator; package techreborn.blocks.generator;
import me.modmuss50.jsonDestroyer.api.ITexturedBlock;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyBool;
import net.minecraft.block.properties.PropertyDirection;
import net.minecraft.block.state.BlockState;
import net.minecraft.block.state.IBlockState;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraft.world.World; import net.minecraft.world.World;
import reborncore.common.BaseTileBlock; import reborncore.common.BaseTileBlock;
import techreborn.client.TechRebornCreativeTab; import techreborn.client.TechRebornCreativeTab;
@ -10,16 +16,50 @@ import techreborn.tiles.generator.TileSolarPanel;
/** /**
* Created by mark on 25/02/2016. * Created by mark on 25/02/2016.
*/ */
public class BlockSolarPanel extends BaseTileBlock { public class BlockSolarPanel extends BaseTileBlock implements ITexturedBlock {
public static PropertyBool ACTIVE = PropertyBool.create("active");
public BlockSolarPanel() { public BlockSolarPanel() {
super(Material.iron); super(Material.iron);
setUnlocalizedName("techreborn.solarpanel"); setUnlocalizedName("techreborn.solarpanel");
setCreativeTab(TechRebornCreativeTab.instance); setCreativeTab(TechRebornCreativeTab.instance);
this.setDefaultState(this.blockState.getBaseState().withProperty(ACTIVE, false));
}
protected BlockState createBlockState() {
ACTIVE = PropertyBool.create("active");
return new BlockState(this, ACTIVE);
}
@Override
public IBlockState getStateFromMeta(int meta) {
return getDefaultState().withProperty(ACTIVE, meta == 0 ? false : true);
}
@Override
public int getMetaFromState(IBlockState state) {
return state.getValue(ACTIVE) == true ? 1 : 0;
} }
@Override @Override
public TileEntity createNewTileEntity(World worldIn, int meta) { public TileEntity createNewTileEntity(World worldIn, int meta) {
return new TileSolarPanel(); return new TileSolarPanel();
} }
private final String prefix = "techreborn:blocks/machine/";
@Override
public String getTextureNameFromState(IBlockState state, EnumFacing side) {
boolean isActive = state.getValue(ACTIVE);
if(side == EnumFacing.UP){
return prefix + "solar_panel_top_" + (isActive ? "on" : "off");
}
return prefix + "solar_panel_side_" + (isActive ? "on" : "off");
}
@Override
public int amountOfStates() {
return 2;
}
} }

View file

@ -4,6 +4,7 @@ import com.mojang.realmsclient.gui.ChatFormatting;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import reborncore.common.powerSystem.PowerSystem; import reborncore.common.powerSystem.PowerSystem;
import reborncore.common.powerSystem.TilePowerAcceptor; import reborncore.common.powerSystem.TilePowerAcceptor;
import techreborn.blocks.generator.BlockSolarPanel;
import java.util.List; import java.util.List;
@ -13,6 +14,7 @@ import java.util.List;
public class TileSolarPanel extends TilePowerAcceptor { public class TileSolarPanel extends TilePowerAcceptor {
boolean shouldMakePower = false; boolean shouldMakePower = false;
boolean lastTickSate = false;
int powerToAdd; int powerToAdd;
@ -28,6 +30,11 @@ public class TileSolarPanel extends TilePowerAcceptor {
} else { } else {
powerToAdd = 0; powerToAdd = 0;
} }
if(shouldMakePower != lastTickSate){
if(worldObj != null)
worldObj.setBlockState(pos, worldObj.getBlockState(pos).withProperty(BlockSolarPanel.ACTIVE, shouldMakePower));
}
lastTickSate = shouldMakePower;
} }
@Override @Override