mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-12-16 23:23:41 +01:00
reworked blaze heater heating system (again)
This commit is contained in:
parent
376b6cc851
commit
ffb1b17626
1 changed files with 11 additions and 5 deletions
|
@ -18,7 +18,7 @@ import net.minecraftforge.common.ForgeHooks;
|
||||||
public class HeaterTileEntity extends SmartTileEntity {
|
public class HeaterTileEntity extends SmartTileEntity {
|
||||||
private int fuelLevel;
|
private int fuelLevel;
|
||||||
private int burnTimeRemaining;
|
private int burnTimeRemaining;
|
||||||
private static final int maxHeatCapacity = 5000;
|
private static final int maxHeatCapacity = 10000;
|
||||||
|
|
||||||
public HeaterTileEntity(TileEntityType<? extends HeaterTileEntity> tileEntityTypeIn) {
|
public HeaterTileEntity(TileEntityType<? extends HeaterTileEntity> tileEntityTypeIn) {
|
||||||
super(tileEntityTypeIn);
|
super(tileEntityTypeIn);
|
||||||
|
@ -32,11 +32,11 @@ public class HeaterTileEntity extends SmartTileEntity {
|
||||||
super.tick();
|
super.tick();
|
||||||
if (burnTimeRemaining > 0) {
|
if (burnTimeRemaining > 0) {
|
||||||
burnTimeRemaining--;
|
burnTimeRemaining--;
|
||||||
if (burnTimeRemaining <= 0 && fuelLevel > 0) {
|
if (burnTimeRemaining <= 0 && fuelLevel > 1) {
|
||||||
fuelLevel--;
|
fuelLevel--;
|
||||||
burnTimeRemaining = maxHeatCapacity / 2;
|
burnTimeRemaining = maxHeatCapacity / 2;
|
||||||
updateHeatLevel();
|
|
||||||
}
|
}
|
||||||
|
updateHeatLevel();
|
||||||
markDirty();
|
markDirty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,7 @@ public class HeaterTileEntity extends SmartTileEntity {
|
||||||
boolean specialFuelUsed = itemStack.getItem() == AllItems.FUEL_PELLET.get();
|
boolean specialFuelUsed = itemStack.getItem() == AllItems.FUEL_PELLET.get();
|
||||||
int burnTime =
|
int burnTime =
|
||||||
itemStack.getItem() == Items.EGG ? 150 : (specialFuelUsed ? 1000 : ForgeHooks.getBurnTime(itemStack));
|
itemStack.getItem() == Items.EGG ? 150 : (specialFuelUsed ? 1000 : ForgeHooks.getBurnTime(itemStack));
|
||||||
int newFuelLevel = (specialFuelUsed ? 3 : 2);
|
int newFuelLevel = (specialFuelUsed ? 2 : 1);
|
||||||
if (burnTime <= 0 || newFuelLevel < fuelLevel)
|
if (burnTime <= 0 || newFuelLevel < fuelLevel)
|
||||||
return false;
|
return false;
|
||||||
if (newFuelLevel > this.fuelLevel) {
|
if (newFuelLevel > this.fuelLevel) {
|
||||||
|
@ -91,6 +91,12 @@ public class HeaterTileEntity extends SmartTileEntity {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateHeatLevel() {
|
private void updateHeatLevel() {
|
||||||
HeaterBlock.setBlazeLevel(world, pos, 1 + fuelLevel);
|
if (fuelLevel == 2)
|
||||||
|
HeaterBlock.setBlazeLevel(world, pos, 4);
|
||||||
|
else if (fuelLevel == 0 || burnTimeRemaining <= 0)
|
||||||
|
HeaterBlock.setBlazeLevel(world, pos, 1);
|
||||||
|
else {
|
||||||
|
HeaterBlock.setBlazeLevel(world, pos, (double) burnTimeRemaining / maxHeatCapacity > 0.1 ? 3 : 2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue