Bugfixes
This commit is contained in:
@@ -1,5 +1,11 @@
|
|||||||
# Refined Storage Changelog
|
# Refined Storage Changelog
|
||||||
|
|
||||||
|
### 0.7.19
|
||||||
|
**Bugfixes**
|
||||||
|
- Fixed controller being buggy with reconnecting
|
||||||
|
- Fixed controller texture updating too slow when energy changes
|
||||||
|
- Fixed not being able to take item from grid at times
|
||||||
|
|
||||||
### 0.7.18
|
### 0.7.18
|
||||||
**Bugfixes**
|
**Bugfixes**
|
||||||
- Fixed cables sending updates when not needed
|
- Fixed cables sending updates when not needed
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import refinedstorage.api.autocrafting.ICraftingTask;
|
|||||||
import refinedstorage.api.network.GridPullFlags;
|
import refinedstorage.api.network.GridPullFlags;
|
||||||
import refinedstorage.api.network.IGridHandler;
|
import refinedstorage.api.network.IGridHandler;
|
||||||
import refinedstorage.api.network.INetworkMaster;
|
import refinedstorage.api.network.INetworkMaster;
|
||||||
|
import refinedstorage.api.storage.CompareFlags;
|
||||||
import refinedstorage.item.ItemWirelessGrid;
|
import refinedstorage.item.ItemWirelessGrid;
|
||||||
|
|
||||||
public class GridHandler implements IGridHandler {
|
public class GridHandler implements IGridHandler {
|
||||||
@@ -44,6 +45,11 @@ public class GridHandler implements IGridHandler {
|
|||||||
|
|
||||||
ItemStack took = network.take(stack, size);
|
ItemStack took = network.take(stack, size);
|
||||||
|
|
||||||
|
// Fallback for corner cases where NBT changes
|
||||||
|
if (took == null) {
|
||||||
|
took = network.take(stack, size, CompareFlags.COMPARE_DAMAGE);
|
||||||
|
}
|
||||||
|
|
||||||
if (took != null) {
|
if (took != null) {
|
||||||
if (GridPullFlags.isPullingWithShift(flags)) {
|
if (GridPullFlags.isPullingWithShift(flags)) {
|
||||||
if (!player.inventory.addItemStackToInventory(took.copy())) {
|
if (!player.inventory.addItemStackToInventory(took.copy())) {
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ public class BlockController extends BlockBase {
|
|||||||
TileController controller = (TileController) world.getTileEntity(pos);
|
TileController controller = (TileController) world.getTileEntity(pos);
|
||||||
|
|
||||||
return super.getActualState(state, world, pos)
|
return super.getActualState(state, world, pos)
|
||||||
.withProperty(ENERGY, controller.getEnergyScaled(8));
|
.withProperty(ENERGY, controller.getEnergyScaledForDisplay());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -132,7 +132,7 @@ public class BlockController extends BlockBase {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getComparatorInputOverride(IBlockState state, World world, BlockPos pos) {
|
public int getComparatorInputOverride(IBlockState state, World world, BlockPos pos) {
|
||||||
return ((TileController) world.getTileEntity(pos)).getEnergyScaled(15);
|
return ((TileController) world.getTileEntity(pos)).getEnergyScaledForComparator();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -66,9 +66,8 @@ public abstract class TileSlave extends TileBase implements INetworkSlave, ISync
|
|||||||
public void connect(World world, INetworkMaster network) {
|
public void connect(World world, INetworkMaster network) {
|
||||||
if (network.canRun()) {
|
if (network.canRun()) {
|
||||||
this.network = network;
|
this.network = network;
|
||||||
this.connected = true;
|
|
||||||
|
|
||||||
this.network.addSlave(this);
|
this.network.addSlave(this);
|
||||||
|
this.connected = true;
|
||||||
|
|
||||||
world.notifyNeighborsOfStateChange(pos, getBlockType());
|
world.notifyNeighborsOfStateChange(pos, getBlockType());
|
||||||
|
|
||||||
|
|||||||
@@ -76,8 +76,10 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
|||||||
private EnergyStorage energy = new EnergyStorage(ENERGY_CAPACITY);
|
private EnergyStorage energy = new EnergyStorage(ENERGY_CAPACITY);
|
||||||
private int energyUsage;
|
private int energyUsage;
|
||||||
|
|
||||||
|
private int lastEnergyDisplay;
|
||||||
|
private int lastEnergyComparator;
|
||||||
|
|
||||||
private boolean couldRun;
|
private boolean couldRun;
|
||||||
private long lastEnergyUpdate;
|
|
||||||
|
|
||||||
private EnumControllerType type;
|
private EnumControllerType type;
|
||||||
|
|
||||||
@@ -130,8 +132,6 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
|||||||
slaves.removeAll(slavesToRemove);
|
slaves.removeAll(slavesToRemove);
|
||||||
slavesToRemove.clear();
|
slavesToRemove.clear();
|
||||||
|
|
||||||
int lastEnergy = energy.getEnergyStored();
|
|
||||||
|
|
||||||
if (canRun()) {
|
if (canRun()) {
|
||||||
if (ticks % 20 == 0 || forceUpdate) {
|
if (ticks % 20 == 0 || forceUpdate) {
|
||||||
updateSlaves();
|
updateSlaves();
|
||||||
@@ -165,21 +165,13 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
|||||||
craftingTasks.pop();
|
craftingTasks.pop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (!slaves.isEmpty()) {
|
} else {
|
||||||
disconnectSlaves();
|
disconnectSlaves();
|
||||||
|
|
||||||
updateSlaves();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (couldRun != canRun()) {
|
|
||||||
couldRun = canRun();
|
|
||||||
|
|
||||||
worldObj.notifyNeighborsOfStateChange(pos, RefinedStorageBlocks.CONTROLLER);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wirelessGridHandler.update();
|
wirelessGridHandler.update();
|
||||||
|
|
||||||
if (getType() == EnumControllerType.NORMAL && energyUsage > 0) {
|
if (canRun() && getType() == EnumControllerType.NORMAL) {
|
||||||
if (energy.getEnergyStored() - energyUsage >= 0) {
|
if (energy.getEnergyStored() - energyUsage >= 0) {
|
||||||
energy.extractEnergy(energyUsage, false);
|
energy.extractEnergy(energyUsage, false);
|
||||||
} else {
|
} else {
|
||||||
@@ -189,14 +181,22 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
|||||||
energy.setEnergyStored(energy.getMaxEnergyStored());
|
energy.setEnergyStored(energy.getMaxEnergyStored());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (energy.getEnergyStored() != lastEnergy) {
|
if (couldRun != canRun()) {
|
||||||
|
couldRun = canRun();
|
||||||
|
|
||||||
|
worldObj.notifyNeighborsOfStateChange(pos, RefinedStorageBlocks.CONTROLLER);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (getEnergyScaledForDisplay() != lastEnergyDisplay) {
|
||||||
|
lastEnergyDisplay = getEnergyScaledForDisplay();
|
||||||
|
|
||||||
|
RefinedStorageUtils.updateBlock(worldObj, pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (getEnergyScaledForComparator() != lastEnergyComparator) {
|
||||||
|
lastEnergyComparator = getEnergyScaledForComparator();
|
||||||
|
|
||||||
worldObj.updateComparatorOutputLevel(pos, RefinedStorageBlocks.CONTROLLER);
|
worldObj.updateComparatorOutputLevel(pos, RefinedStorageBlocks.CONTROLLER);
|
||||||
|
|
||||||
if (System.currentTimeMillis() - lastEnergyUpdate > 1500) {
|
|
||||||
lastEnergyUpdate = System.currentTimeMillis();
|
|
||||||
|
|
||||||
RefinedStorageUtils.updateBlock(worldObj, pos);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -645,6 +645,14 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
|||||||
return (int) ((float) energy.getEnergyStored() / (float) ENERGY_CAPACITY * (float) i);
|
return (int) ((float) energy.getEnergyStored() / (float) ENERGY_CAPACITY * (float) i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getEnergyScaledForDisplay() {
|
||||||
|
return getEnergyScaled(8);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getEnergyScaledForComparator() {
|
||||||
|
return getEnergyScaled(15);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxEnergyStored(EnumFacing from) {
|
public int getMaxEnergyStored(EnumFacing from) {
|
||||||
return energy.getMaxEnergyStored();
|
return energy.getMaxEnergyStored();
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ public class DrawerStorage extends ExternalStorage {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addItems(List<ItemStack> items) {
|
public void addItems(List<ItemStack> items) {
|
||||||
if (!drawer.isEmpty()) {
|
if (!drawer.isEmpty() && drawer.getStoredItemCount() > 0) {
|
||||||
items.add(drawer.getStoredItemCopy());
|
items.add(drawer.getStoredItemCopy());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user