More work on tile entity

This commit is contained in:
Dimmerworld 2017-10-06 02:08:03 +11:00 committed by drcrazy
parent fed439307e
commit 74b8246b39
2 changed files with 47 additions and 18 deletions

View file

@ -4,11 +4,11 @@ import net.minecraft.util.IStringSerializable;
import reborncore.api.power.EnumPowerTier; import reborncore.api.power.EnumPowerTier;
public enum EnumPanelType implements IStringSerializable { public enum EnumPanelType implements IStringSerializable {
Basic("basic", 128, 1000, 50000, EnumPowerTier.LOW, 0), Basic("basic", 128, 1000, 256, 50000, EnumPowerTier.LOW, 0),
Hybrid("hybrid", 32, 2000, 100000, EnumPowerTier.MEDIUM, 1), Hybrid("hybrid", 32, 2000, 2084, 100000, EnumPowerTier.MEDIUM, 1),
Advanced("advanced", 512, 3000, 200000, EnumPowerTier.MEDIUM, 2), Advanced("advanced", 512, 3000, 4092, 200000, EnumPowerTier.MEDIUM, 2),
Ultimate("ultimate", 2048, 4000, 300000, EnumPowerTier.HIGH, 3), Ultimate("ultimate", 2048, 4000, 6084, 300000, EnumPowerTier.HIGH, 3),
Quantum("quantum", 2048, 5000, 400000, EnumPowerTier.EXTREME, 4); Quantum("quantum", 4048, 5000, 8042, 400000, EnumPowerTier.EXTREME, 4);
private int ID; private int ID;
private String friendlyName; private String friendlyName;
@ -19,16 +19,20 @@ public enum EnumPanelType implements IStringSerializable {
public int generationRateN = 64; public int generationRateN = 64;
// Generation of FE during Night // Generation of FE during Night
public int outputRate = 0;
// Output rate of energy
public int internalCapacity = 0; public int internalCapacity = 0;
// Internal FE storage of solar panel // Internal FE storage of solar panel
EnumPanelType(String friendlyName, int generationRateD, int generationRateN, int internalCapacity, EnumPowerTier tier, int ID) { EnumPanelType(String friendlyName, int generationRateD, int generationRateN, int outputRate, int internalCapacity, EnumPowerTier tier, int ID) {
this.friendlyName = friendlyName; this.friendlyName = friendlyName;
this.ID = ID; this.ID = ID;
this.generationRateD = generationRateD; this.generationRateD = generationRateD;
this.generationRateN = generationRateN; this.generationRateN = generationRateN;
this.internalCapacity = internalCapacity; this.internalCapacity = internalCapacity;
this.outputRate = outputRate;
} }

View file

@ -57,19 +57,43 @@ public class TileSolarPanel extends TilePowerAcceptor implements IToolDrop, IEne
boolean shouldMakePower = false; boolean shouldMakePower = false;
boolean lastTickSate = false; boolean lastTickSate = false;
int powerToAdd; int powerToAdd;
private int generationRateD; private int generationRateD = 0;
private int generationRateN; private int generationRateN = 0;
private int internalCapacity; private int internalCapacity = 0;
private int outputRate = 0;
public TileSolarPanel() { public TileSolarPanel() {
super(); super();
generationRateD = getPanelType().generationRateD; try {
generationRateN = getPanelType().generationRateN; EnumPanelType panel = getPanelType();
internalCapacity = getPanelType().internalCapacity; generationRateD = panel.generationRateD;
generationRateN = panel.generationRateN;
internalCapacity = panel.internalCapacity;
outputRate = getPanelType().outputRate;
}catch (Exception e){
System.out.println("Error(Dimmerworld): " + e );
}
}
@Override
public void onLoad() {
try {
EnumPanelType panel = getPanelType();
generationRateD = panel.generationRateD;
generationRateN = panel.generationRateN;
internalCapacity = panel.internalCapacity;
outputRate = getPanelType().outputRate;
}catch (Exception e){
System.out.println("Error(Dimmerworld): " + e );
}
} }
@Override @Override
public void update() { public void update() {
// super.update(); // super.update();
// if (!this.world.isRemote) { // if (!this.world.isRemote) {
// if (this.world.getTotalWorldTime() % 60 == 0) { // if (this.world.getTotalWorldTime() % 60 == 0) {
@ -92,6 +116,10 @@ public class TileSolarPanel extends TilePowerAcceptor implements IToolDrop, IEne
// && this.world.isDaytime(); // && this.world.isDaytime();
// } // }
private EnumPanelType getPanelType() {
return world.getBlockState(pos).getValue(BlockSolarPanel.TYPE);
}
@Override @Override
public double getBaseMaxPower() { public double getBaseMaxPower() {
return (double)generationRateD; return (double)generationRateD;
@ -114,7 +142,7 @@ public class TileSolarPanel extends TilePowerAcceptor implements IToolDrop, IEne
@Override @Override
public int getEnergyStored() { public int getEnergyStored() {
return 100; return 1000;
} }
@Override @Override
@ -139,17 +167,14 @@ public class TileSolarPanel extends TilePowerAcceptor implements IToolDrop, IEne
@Override @Override
public double getBaseMaxOutput() { public double getBaseMaxOutput() {
return generationRateD; return outputRate;
}
private EnumPanelType getPanelType() {
return world.getBlockState(pos).getValue(BlockSolarPanel.TYPE);
} }
@Override @Override
public double getBaseMaxInput() { public double getBaseMaxInput() {
return 0; return 0;
} }
@Override @Override
public ItemStack getToolDrop(final EntityPlayer p0) { public ItemStack getToolDrop(final EntityPlayer p0) {
return new ItemStack(ModBlocks.SOLAR_PANEL); return new ItemStack(ModBlocks.SOLAR_PANEL);