Block certain side

This commit is contained in:
Raoul Van den Berge
2016-08-06 21:44:12 +02:00
parent c11d800bc9
commit aa8e49d2f9
6 changed files with 42 additions and 6 deletions

View File

@@ -1,5 +1,6 @@
package refinedstorage.tile;
import mcmultipart.microblock.IMicroblock;
import net.minecraft.block.SoundType;
import net.minecraft.block.state.IBlockState;
import net.minecraft.item.ItemStack;
@@ -46,6 +47,11 @@ public class TileConstructor extends TileMultipartNode implements IComparable {
dataManager.addWatchedParameter(COMPARE);
}
@Override
public boolean canAddMicroblock(IMicroblock microblock) {
return !isBlockingMicroblock(microblock, getDirection());
}
@Override
public int getEnergyUsage() {
return RefinedStorage.INSTANCE.constructorUsage + upgrades.getEnergyUsage();

View File

@@ -1,5 +1,6 @@
package refinedstorage.tile;
import mcmultipart.microblock.IMicroblock;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.inventory.InventoryHelper;
@@ -40,6 +41,11 @@ public class TileDestructor extends TileMultipartNode implements IComparable, IF
dataManager.addWatchedParameter(MODE);
}
@Override
public boolean canAddMicroblock(IMicroblock microblock) {
return !isBlockingMicroblock(microblock, getDirection());
}
@Override
public int getEnergyUsage() {
return RefinedStorage.INSTANCE.destructorUsage + upgrades.getEnergyUsage();

View File

@@ -1,5 +1,6 @@
package refinedstorage.tile;
import mcmultipart.microblock.IMicroblock;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing;
@@ -31,6 +32,11 @@ public class TileExporter extends TileMultipartNode implements IComparable {
dataManager.addWatchedParameter(COMPARE);
}
@Override
public boolean canAddMicroblock(IMicroblock microblock) {
return !isBlockingMicroblock(microblock, getDirection());
}
@Override
public int getEnergyUsage() {
return RefinedStorage.INSTANCE.exporterUsage + upgrades.getEnergyUsage();

View File

@@ -1,5 +1,6 @@
package refinedstorage.tile;
import mcmultipart.microblock.IMicroblock;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing;
@@ -34,6 +35,11 @@ public class TileImporter extends TileMultipartNode implements IComparable, IFil
dataManager.addWatchedParameter(MODE);
}
@Override
public boolean canAddMicroblock(IMicroblock microblock) {
return !isBlockingMicroblock(microblock, getDirection());
}
@Override
public int getEnergyUsage() {
return RefinedStorage.INSTANCE.importerUsage + upgrades.getEnergyUsage();

View File

@@ -82,12 +82,8 @@ public abstract class TileMultipartNode extends TileNode implements IMicroblockC
if (tile instanceof TileMultipartNode) {
for (IMicroblock microblock : ((TileMultipartNode) tile).getMicroblockContainer().getParts()) {
if (microblock instanceof IMicroblock.IFaceMicroblock) {
IMicroblock.IFaceMicroblock faceMicroblock = (IMicroblock.IFaceMicroblock) microblock;
if (faceMicroblock.getFace() == direction && !faceMicroblock.isFaceHollow()) {
return true;
}
if (isBlockingMicroblock(microblock, direction)) {
return true;
}
}
}
@@ -95,6 +91,16 @@ public abstract class TileMultipartNode extends TileNode implements IMicroblockC
return false;
}
public static boolean isBlockingMicroblock(IMicroblock microblock, EnumFacing direction) {
if (!(microblock instanceof IMicroblock.IFaceMicroblock)) {
return false;
}
IMicroblock.IFaceMicroblock faceMicroblock = (IMicroblock.IFaceMicroblock) microblock;
return faceMicroblock.getFace() == direction && !faceMicroblock.isFaceHollow();
}
@Override
public boolean canConduct(EnumFacing direction) {
return !hasBlockingMicroblock(worldObj, pos, direction) && !hasBlockingMicroblock(worldObj, pos.offset(direction), direction.getOpposite());

View File

@@ -2,6 +2,7 @@ package refinedstorage.tile.externalstorage;
import com.jaquadro.minecraft.storagedrawers.api.storage.IDrawer;
import com.jaquadro.minecraft.storagedrawers.api.storage.IDrawerGroup;
import mcmultipart.microblock.IMicroblock;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.tileentity.TileEntity;
@@ -64,6 +65,11 @@ public class TileExternalStorage extends TileMultipartNode implements IStoragePr
dataManager.addWatchedParameter(CAPACITY);
}
@Override
public boolean canAddMicroblock(IMicroblock microblock) {
return !isBlockingMicroblock(microblock, getDirection());
}
@Override
public int getEnergyUsage() {
return RefinedStorage.INSTANCE.externalStorageUsage + (storages.size() * RefinedStorage.INSTANCE.externalStoragePerStorageUsage);