Fix some issues with the solar panels
This commit is contained in:
parent
3fe609e207
commit
0aa8974035
4 changed files with 62 additions and 36 deletions
|
@ -24,8 +24,6 @@
|
|||
|
||||
package techreborn.blocks.generator.solarpanel;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.properties.IProperty;
|
||||
|
@ -47,11 +45,12 @@ import net.minecraft.world.World;
|
|||
import prospector.shootingstar.ShootingStar;
|
||||
import prospector.shootingstar.model.ModelCompound;
|
||||
import reborncore.common.BaseTileBlock;
|
||||
import reborncore.common.util.ArrayUtils;
|
||||
import techreborn.client.TechRebornCreativeTab;
|
||||
import techreborn.lib.ModInfo;
|
||||
import techreborn.tiles.generator.TileSolarPanel;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by modmuss50 on 25/02/2016.
|
||||
*/
|
||||
|
@ -76,6 +75,7 @@ public class BlockSolarPanel extends BaseTileBlock {
|
|||
public int getMetaFromState(IBlockState state) {
|
||||
return state.getValue(TYPE).ordinal();
|
||||
}
|
||||
|
||||
protected BlockStateContainer createBlockState() {
|
||||
return new BlockStateContainer(this, new IProperty[]{TYPE});
|
||||
}
|
||||
|
@ -87,7 +87,7 @@ public class BlockSolarPanel extends BaseTileBlock {
|
|||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World worldIn, int meta) {
|
||||
return new TileSolarPanel();
|
||||
return new TileSolarPanel(getStateFromMeta(meta).getValue(TYPE));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -109,7 +109,5 @@ public class BlockSolarPanel extends BaseTileBlock {
|
|||
for (EnumPanelType panelType : EnumPanelType.values()) {
|
||||
list.add(new ItemStack(this, 1, panelType.ordinal()));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,9 +6,9 @@ import reborncore.api.power.EnumPowerTier;
|
|||
public enum EnumPanelType implements IStringSerializable {
|
||||
Basic("basic", 1, 0, EnumPowerTier.MICRO),
|
||||
Hybrid("hybrid", 16, 0, EnumPowerTier.LOW),
|
||||
Advanced("advanced", 64, 6, EnumPowerTier.MEDIUM),
|
||||
Ultimate("ultimate", 256, 26, EnumPowerTier.HIGH),
|
||||
Quantum("quantum", 1024, 102, EnumPowerTier.EXTREME);
|
||||
Advanced("advanced", 64, 2, EnumPowerTier.MEDIUM),
|
||||
Ultimate("ultimate", 256, 16, EnumPowerTier.HIGH),
|
||||
Quantum("quantum", 1024, 64, EnumPowerTier.EXTREME);
|
||||
|
||||
private int ID;
|
||||
private String friendlyName;
|
||||
|
|
|
@ -70,7 +70,7 @@ public class StackToolTipEvent {
|
|||
if (block != null && (block instanceof BlockContainer || block instanceof ITileEntityProvider)
|
||||
&& block.getRegistryName().getResourceDomain().contains("techreborn")) {
|
||||
TileEntity tile = block.createTileEntity(Minecraft.getMinecraft().world,
|
||||
block.getDefaultState());
|
||||
block.getStateFromMeta(event.getItemStack().getItemDamage()));
|
||||
if (tile instanceof IListInfoProvider) {
|
||||
((IListInfoProvider) tile).addInfo(event.getToolTip(), false);
|
||||
}
|
||||
|
|
|
@ -26,28 +26,32 @@ package techreborn.tiles.generator;
|
|||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.text.TextFormatting;
|
||||
import reborncore.api.IToolDrop;
|
||||
import reborncore.api.power.EnumPowerTier;
|
||||
import reborncore.common.powerSystem.TilePowerAcceptor;
|
||||
import techreborn.blocks.generator.solarpanel.BlockSolarPanel;
|
||||
import reborncore.common.util.StringUtils;
|
||||
import techreborn.Core;
|
||||
import techreborn.blocks.generator.solarpanel.EnumPanelType;
|
||||
import techreborn.init.ModBlocks;
|
||||
|
||||
public class TileSolarPanel extends TilePowerAcceptor implements IToolDrop {
|
||||
import java.util.List;
|
||||
|
||||
public class TileSolarPanel extends TilePowerAcceptor implements IToolDrop {
|
||||
|
||||
boolean canSeeSky = false;
|
||||
int powerToAdd;
|
||||
EnumPanelType panel = null;
|
||||
EnumPanelType panel;
|
||||
|
||||
//This is left here to allow the world to create a new instance of it when loading, do not remove this.
|
||||
public TileSolarPanel() {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
this.panel = getPanelType();
|
||||
public TileSolarPanel(EnumPanelType panel) {
|
||||
this.panel = panel;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -74,19 +78,9 @@ public class TileSolarPanel extends TilePowerAcceptor implements IToolDrop {
|
|||
return canSeeSky && !this.world.isRaining() && !this.world.isThundering() && this.world.isDaytime();
|
||||
}
|
||||
|
||||
private EnumPanelType getPanelType() {
|
||||
if (world != null) {
|
||||
return world.getBlockState(pos).getValue(BlockSolarPanel.TYPE);
|
||||
}
|
||||
return EnumPanelType.Basic;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getBaseMaxPower() {
|
||||
if (this.panel != null) {
|
||||
return panel.internalCapacity;
|
||||
}
|
||||
return 0;
|
||||
return panel.internalCapacity;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -101,10 +95,7 @@ public class TileSolarPanel extends TilePowerAcceptor implements IToolDrop {
|
|||
|
||||
@Override
|
||||
public double getBaseMaxOutput() {
|
||||
if (this.panel != null) {
|
||||
return this.panel.generationRateD;
|
||||
}
|
||||
return 0;
|
||||
return panel.generationRateD;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -112,17 +103,54 @@ public class TileSolarPanel extends TilePowerAcceptor implements IToolDrop {
|
|||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumPowerTier getTier() {
|
||||
return this.panel.powerTier;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumPowerTier getBaseTier() {
|
||||
if (this.panel != null){
|
||||
return this.panel.powerTier;
|
||||
}
|
||||
return EnumPowerTier.MEDIUM;
|
||||
return getTier();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getToolDrop(final EntityPlayer p0) {
|
||||
return new ItemStack(ModBlocks.SOLAR_PANEL);
|
||||
return new ItemStack(ModBlocks.SOLAR_PANEL, 1, world.getBlockState(pos).getBlock().getMetaFromState(world.getBlockState(pos)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound tag) {
|
||||
super.readFromNBT(tag);
|
||||
if(tag.hasKey("panelType")){
|
||||
panel = EnumPanelType.values()[tag.getInteger("panelType")];
|
||||
} else {
|
||||
Core.logHelper.warn("A solar panel has failed to load from NBT, it will not work correctly. Please break and replace it to fix the issue. BlockPos:" + pos.toString());
|
||||
panel = EnumPanelType.Basic;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound writeToNBT(NBTTagCompound tag) {
|
||||
tag.setInteger("panelType", panel.ordinal());
|
||||
return super.writeToNBT(tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void checkTeir() {
|
||||
//Nope
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInfo(List<String> info, boolean isRealTile) {
|
||||
info.add(TextFormatting.GRAY + "Internal Energy Storage: " + TextFormatting.GOLD
|
||||
+ getLocaliszedPowerFormatted((int) getMaxPower()));
|
||||
|
||||
info.add(TextFormatting.GRAY + "Generation Rate Day: " + TextFormatting.GOLD
|
||||
+ getLocaliszedPowerFormatted(panel.generationRateD));
|
||||
|
||||
info.add(TextFormatting.GRAY + "Generation Rate Night: " + TextFormatting.GOLD
|
||||
+ getLocaliszedPowerFormatted(panel.generationRateN));
|
||||
|
||||
info.add(TextFormatting.GRAY + "Tier: " + TextFormatting.GOLD + StringUtils.toFirstCapitalAllLowercase(getTier().toString()));
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue