mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-19 04:06:43 -04:00
Merge branch 'master-MC1.7.10' of github.com:MightyPirates/OpenComputers into master-MC1.8.9
# Conflicts: # src/main/scala/li/cil/oc/util/FluidUtils.scala
This commit is contained in:
commit
b8ac9976df
@ -94,13 +94,15 @@ class UpgradeGenerator(val host: EnvironmentHost with internal.Agent) extends pr
|
||||
if (remainingTicks <= 0 && inventory.isDefined) {
|
||||
val stack = inventory.get
|
||||
remainingTicks = TileEntityFurnace.getItemBurnTime(stack)
|
||||
updateClient()
|
||||
stack.stackSize -= 1
|
||||
if (stack.stackSize <= 0) {
|
||||
if (stack.getItem.hasContainerItem(stack))
|
||||
inventory = Option(stack.getItem.getContainerItem(stack))
|
||||
else
|
||||
inventory = None
|
||||
if (remainingTicks > 0) { // If not we probably have a container item now (e.g. bucket after lava bucket).
|
||||
updateClient()
|
||||
stack.stackSize -= 1
|
||||
if (stack.stackSize <= 0) {
|
||||
if (stack.getItem.hasContainerItem(stack))
|
||||
inventory = Option(stack.getItem.getContainerItem(stack))
|
||||
else
|
||||
inventory = None
|
||||
}
|
||||
}
|
||||
}
|
||||
if (remainingTicks > 0) {
|
||||
|
@ -4,6 +4,7 @@ import li.cil.oc.util.ExtendedBlock._
|
||||
import li.cil.oc.util.ExtendedWorld._
|
||||
import net.minecraft.block.Block
|
||||
import net.minecraft.block.BlockLiquid
|
||||
import net.minecraft.block.BlockStaticLiquid
|
||||
import net.minecraft.util.EnumFacing
|
||||
import net.minecraftforge.fluids.Fluid
|
||||
import net.minecraftforge.fluids.FluidContainerRegistry
|
||||
@ -72,11 +73,16 @@ object FluidUtils {
|
||||
|
||||
def currentWrapper = if (position.world.get.blockExists(position)) position.world.get.getBlock(position) match {
|
||||
case block: IFluidBlock => Option(new FluidBlockWrapper(position, block))
|
||||
case block: BlockLiquid if FluidRegistry.lookupFluidForBlock(block) != null => Option(new LiquidBlockWrapper(position, block))
|
||||
case block: BlockStaticLiquid if FluidRegistry.lookupFluidForBlock(block) != null && isFullLiquidBlock => Option(new LiquidBlockWrapper(position, block))
|
||||
case block: Block if block.isAir(position) || block.isReplaceable(position) => Option(new AirBlockWrapper(position, block))
|
||||
case _ => None
|
||||
}
|
||||
else None
|
||||
|
||||
def isFullLiquidBlock = {
|
||||
val state = position.world.get.getBlockState(position.toBlockPos)
|
||||
state.getValue(BlockLiquid.LEVEL) == 0
|
||||
}
|
||||
}
|
||||
|
||||
private trait BlockWrapperBase extends IFluidHandler {
|
||||
@ -141,7 +147,8 @@ object FluidUtils {
|
||||
if (resource != null && resource.getFluid.canBePlacedInWorld && resource.getFluid.getBlock != null) {
|
||||
if (doFill) {
|
||||
val world = position.world.get
|
||||
world.breakBlock(position)
|
||||
if (!world.isAirBlock(position) && !world.isAnyLiquid(position.bounds))
|
||||
world.breakBlock(position)
|
||||
world.setBlock(position, resource.getFluid.getBlock)
|
||||
// This fake neighbor update is required to get stills to start flowing.
|
||||
world.notifyBlockOfNeighborChange(position, world.getBlock(position))
|
||||
|
Loading…
x
Reference in New Issue
Block a user