mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-19 12:17:17 -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) {
|
if (remainingTicks <= 0 && inventory.isDefined) {
|
||||||
val stack = inventory.get
|
val stack = inventory.get
|
||||||
remainingTicks = TileEntityFurnace.getItemBurnTime(stack)
|
remainingTicks = TileEntityFurnace.getItemBurnTime(stack)
|
||||||
updateClient()
|
if (remainingTicks > 0) { // If not we probably have a container item now (e.g. bucket after lava bucket).
|
||||||
stack.stackSize -= 1
|
updateClient()
|
||||||
if (stack.stackSize <= 0) {
|
stack.stackSize -= 1
|
||||||
if (stack.getItem.hasContainerItem(stack))
|
if (stack.stackSize <= 0) {
|
||||||
inventory = Option(stack.getItem.getContainerItem(stack))
|
if (stack.getItem.hasContainerItem(stack))
|
||||||
else
|
inventory = Option(stack.getItem.getContainerItem(stack))
|
||||||
inventory = None
|
else
|
||||||
|
inventory = None
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (remainingTicks > 0) {
|
if (remainingTicks > 0) {
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import li.cil.oc.util.ExtendedBlock._
|
|||||||
import li.cil.oc.util.ExtendedWorld._
|
import li.cil.oc.util.ExtendedWorld._
|
||||||
import net.minecraft.block.Block
|
import net.minecraft.block.Block
|
||||||
import net.minecraft.block.BlockLiquid
|
import net.minecraft.block.BlockLiquid
|
||||||
|
import net.minecraft.block.BlockStaticLiquid
|
||||||
import net.minecraft.util.EnumFacing
|
import net.minecraft.util.EnumFacing
|
||||||
import net.minecraftforge.fluids.Fluid
|
import net.minecraftforge.fluids.Fluid
|
||||||
import net.minecraftforge.fluids.FluidContainerRegistry
|
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 {
|
def currentWrapper = if (position.world.get.blockExists(position)) position.world.get.getBlock(position) match {
|
||||||
case block: IFluidBlock => Option(new FluidBlockWrapper(position, block))
|
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 block: Block if block.isAir(position) || block.isReplaceable(position) => Option(new AirBlockWrapper(position, block))
|
||||||
case _ => None
|
case _ => None
|
||||||
}
|
}
|
||||||
else None
|
else None
|
||||||
|
|
||||||
|
def isFullLiquidBlock = {
|
||||||
|
val state = position.world.get.getBlockState(position.toBlockPos)
|
||||||
|
state.getValue(BlockLiquid.LEVEL) == 0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private trait BlockWrapperBase extends IFluidHandler {
|
private trait BlockWrapperBase extends IFluidHandler {
|
||||||
@ -141,7 +147,8 @@ object FluidUtils {
|
|||||||
if (resource != null && resource.getFluid.canBePlacedInWorld && resource.getFluid.getBlock != null) {
|
if (resource != null && resource.getFluid.canBePlacedInWorld && resource.getFluid.getBlock != null) {
|
||||||
if (doFill) {
|
if (doFill) {
|
||||||
val world = position.world.get
|
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)
|
world.setBlock(position, resource.getFluid.getBlock)
|
||||||
// This fake neighbor update is required to get stills to start flowing.
|
// This fake neighbor update is required to get stills to start flowing.
|
||||||
world.notifyBlockOfNeighborChange(position, world.getBlock(position))
|
world.notifyBlockOfNeighborChange(position, world.getBlock(position))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user