Fixed some tank node logic
This commit is contained in:
parent
9881d2d209
commit
2dc5dbeb3a
13 changed files with 98 additions and 78 deletions
|
@ -83,7 +83,7 @@ public class ItemBlockTank extends ItemBlock implements IFluidContainerItem
|
||||||
if (tile instanceof TileFluidDistribution)
|
if (tile instanceof TileFluidDistribution)
|
||||||
{
|
{
|
||||||
((TileFluidDistribution) tile).setSubID(stack.getItemDamage());
|
((TileFluidDistribution) tile).setSubID(stack.getItemDamage());
|
||||||
((TileFluidDistribution) tile).getTank().fill(getFluid(stack), true);
|
((TileFluidDistribution) tile).getForwardTank().fill(getFluid(stack), true);
|
||||||
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -31,7 +31,7 @@ import archaic.Archaic;
|
||||||
import resonantinduction.core.Reference;
|
import resonantinduction.core.Reference;
|
||||||
import resonantinduction.core.grid.fluid.distribution.FluidDistributionGrid;
|
import resonantinduction.core.grid.fluid.distribution.FluidDistributionGrid;
|
||||||
import resonantinduction.core.grid.fluid.distribution.TFluidDistributor;
|
import resonantinduction.core.grid.fluid.distribution.TFluidDistributor;
|
||||||
import resonantinduction.core.grid.fluid.distribution.TankNetwork;
|
import resonantinduction.core.grid.fluid.distribution.TankGrid;
|
||||||
import resonantinduction.core.grid.fluid.distribution.TileFluidDistribution;
|
import resonantinduction.core.grid.fluid.distribution.TileFluidDistribution;
|
||||||
import universalelectricity.api.UniversalElectricity;
|
import universalelectricity.api.UniversalElectricity;
|
||||||
import universalelectricity.core.transform.vector.Vector3;
|
import universalelectricity.core.transform.vector.Vector3;
|
||||||
|
@ -85,9 +85,9 @@ public class TileTank extends TileFluidDistribution implements IComparatorInputO
|
||||||
@Override
|
@Override
|
||||||
public int getLightValue(IBlockAccess access)
|
public int getLightValue(IBlockAccess access)
|
||||||
{
|
{
|
||||||
if (getTank().getFluid() != null)
|
if (getForwardTank().getFluid() != null)
|
||||||
{
|
{
|
||||||
return getTank().getFluid().getFluid().getLuminosity();
|
return getForwardTank().getFluid().getFluid().getLuminosity();
|
||||||
}
|
}
|
||||||
return super.getLightValue(access);
|
return super.getLightValue(access);
|
||||||
}
|
}
|
||||||
|
@ -97,7 +97,7 @@ public class TileTank extends TileFluidDistribution implements IComparatorInputO
|
||||||
{
|
{
|
||||||
if (this.network == null)
|
if (this.network == null)
|
||||||
{
|
{
|
||||||
this.network = new TankNetwork();
|
this.network = new TankGrid();
|
||||||
this.network.addConnector(this);
|
this.network.addConnector(this);
|
||||||
}
|
}
|
||||||
return this.network;
|
return this.network;
|
||||||
|
@ -106,7 +106,7 @@ public class TileTank extends TileFluidDistribution implements IComparatorInputO
|
||||||
@Override
|
@Override
|
||||||
public void setNetwork(FluidDistributionGrid network)
|
public void setNetwork(FluidDistributionGrid network)
|
||||||
{
|
{
|
||||||
if (network instanceof TankNetwork)
|
if (network instanceof TankGrid)
|
||||||
{
|
{
|
||||||
this.network = network;
|
this.network = network;
|
||||||
}
|
}
|
||||||
|
@ -153,7 +153,7 @@ public class TileTank extends TileFluidDistribution implements IComparatorInputO
|
||||||
if (!fluid.getFluid().isGaseous())
|
if (!fluid.getFluid().isGaseous())
|
||||||
{
|
{
|
||||||
GL11.glScaled(0.99, 0.99, 0.99);
|
GL11.glScaled(0.99, 0.99, 0.99);
|
||||||
FluidTank tank = ((TileTank) tileEntity).getTank();
|
FluidTank tank = ((TileTank) tileEntity).getForwardTank();
|
||||||
double percentageFilled = (double) tank.getFluidAmount() / (double) tank.getCapacity();
|
double percentageFilled = (double) tank.getFluidAmount() / (double) tank.getCapacity();
|
||||||
|
|
||||||
double ySouthEast = FluidUtility.getAveragePercentageFilledForSides(TileTank.class, percentageFilled, tileEntity.worldObj, new Vector3(tileEntity), ForgeDirection.SOUTH, ForgeDirection.EAST);
|
double ySouthEast = FluidUtility.getAveragePercentageFilledForSides(TileTank.class, percentageFilled, tileEntity.worldObj, new Vector3(tileEntity), ForgeDirection.SOUTH, ForgeDirection.EAST);
|
||||||
|
@ -166,7 +166,7 @@ public class TileTank extends TileFluidDistribution implements IComparatorInputO
|
||||||
{
|
{
|
||||||
GL11.glTranslated(-0.5, -0.5, -0.5);
|
GL11.glTranslated(-0.5, -0.5, -0.5);
|
||||||
GL11.glScaled(0.99, 0.99, 0.99);
|
GL11.glScaled(0.99, 0.99, 0.99);
|
||||||
int capacity = tileEntity instanceof TileTank ? ((TileTank) tileEntity).getTank().getCapacity() : fluid.amount;
|
int capacity = tileEntity instanceof TileTank ? ((TileTank) tileEntity).getForwardTank().getCapacity() : fluid.amount;
|
||||||
double filledPercentage = (double) fluid.amount / (double) capacity;
|
double filledPercentage = (double) fluid.amount / (double) capacity;
|
||||||
double renderPercentage = fluid.getFluid().isGaseous() ? 1 : filledPercentage;
|
double renderPercentage = fluid.getFluid().isGaseous() ? 1 : filledPercentage;
|
||||||
|
|
||||||
|
@ -198,7 +198,7 @@ public class TileTank extends TileFluidDistribution implements IComparatorInputO
|
||||||
@Override
|
@Override
|
||||||
public boolean renderDynamic(Vector3 position, boolean isItem, float frame)
|
public boolean renderDynamic(Vector3 position, boolean isItem, float frame)
|
||||||
{
|
{
|
||||||
renderTank(TileTank.this, position.x, position.y, position.z, getTank().getFluid());
|
renderTank(TileTank.this, position.x, position.y, position.z, getForwardTank().getFluid());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -278,9 +278,9 @@ public class TileTank extends TileFluidDistribution implements IComparatorInputO
|
||||||
ItemStack itemStack = new ItemStack(Archaic.blockTank, 1, 0);
|
ItemStack itemStack = new ItemStack(Archaic.blockTank, 1, 0);
|
||||||
if (itemStack != null)
|
if (itemStack != null)
|
||||||
{
|
{
|
||||||
if (getTank() != null && getTank().getFluid() != null)
|
if (getForwardTank() != null && getForwardTank().getFluid() != null)
|
||||||
{
|
{
|
||||||
FluidStack stack = getTank().getFluid();
|
FluidStack stack = getForwardTank().getFluid();
|
||||||
|
|
||||||
if (stack != null)
|
if (stack != null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -22,7 +22,7 @@ public class WailaFluidTank implements IWailaDataProvider
|
||||||
TileEntity tile = accessor.getTileEntity();
|
TileEntity tile = accessor.getTileEntity();
|
||||||
if (tile instanceof TileTank)
|
if (tile instanceof TileTank)
|
||||||
{
|
{
|
||||||
FluidTank tank = ((TileTank) tile).getTank();
|
FluidTank tank = ((TileTank) tile).getForwardTank();
|
||||||
if (tank != null && tank.getFluid() != null)
|
if (tank != null && tank.getFluid() != null)
|
||||||
{
|
{
|
||||||
currenttip.add(LanguageUtility.getLocal("info.waila.tank.fluid") + " " + tank.getFluid().getFluid().getLocalizedName());
|
currenttip.add(LanguageUtility.getLocal("info.waila.tank.fluid") + " " + tank.getFluid().getFluid().getLocalizedName());
|
||||||
|
|
|
@ -11,7 +11,7 @@ import universalelectricity.core.transform.vector.VectorWorld
|
||||||
* A node that works with Forge Multipart
|
* A node that works with Forge Multipart
|
||||||
* @author Calclavia
|
* @author Calclavia
|
||||||
*/
|
*/
|
||||||
abstract class MultipartNode[N <: Node[N]](parent: INodeProvider) extends Node[N](parent)
|
abstract class MultipartNode[N](parent: INodeProvider) extends Node[N](parent)
|
||||||
{
|
{
|
||||||
override def world: World =
|
override def world: World =
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package resonantinduction.core.grid.fluid.distribution
|
package resonantinduction.core.grid.fluid.distribution
|
||||||
|
|
||||||
import net.minecraftforge.common.util.ForgeDirection
|
import net.minecraftforge.common.util.ForgeDirection
|
||||||
import net.minecraftforge.fluids.{FluidStack, FluidTank, FluidTankInfo}
|
import net.minecraftforge.fluids._
|
||||||
import universalelectricity.core.grid.{TickingGrid, UpdateTicker}
|
import universalelectricity.core.grid.{TickingGrid, UpdateTicker}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -9,14 +9,14 @@ import universalelectricity.core.grid.{TickingGrid, UpdateTicker}
|
||||||
*
|
*
|
||||||
* @author DarkCow, Calclavia
|
* @author DarkCow, Calclavia
|
||||||
*/
|
*/
|
||||||
abstract class FluidDistributionGrid extends TickingGrid[TFluidDistributor]
|
abstract class FluidDistributionGrid extends TickingGrid[TankNode] with IFluidHandler
|
||||||
{
|
{
|
||||||
val tank = new FluidTank(0)
|
val tank = new FluidTank(0)
|
||||||
var needsUpdate = false
|
var needsUpdate = false
|
||||||
|
|
||||||
override def canUpdate: Boolean =
|
override def canUpdate: Boolean =
|
||||||
{
|
{
|
||||||
return needsUpdate && getNodes.size > 0
|
return needsUpdate && getNodes().size > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
override def continueUpdate: Boolean =
|
override def continueUpdate: Boolean =
|
||||||
|
@ -33,9 +33,9 @@ abstract class FluidDistributionGrid extends TickingGrid[TFluidDistributor]
|
||||||
UpdateTicker.addUpdater(this)
|
UpdateTicker.addUpdater(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
override def reconstructNode(node: TFluidDistributor)
|
override def reconstructNode(node: TankNode)
|
||||||
{
|
{
|
||||||
val connectorTank: FluidTank = node.getTank
|
val connectorTank: FluidTank = node.genericParent.getTank
|
||||||
|
|
||||||
if (connectorTank != null)
|
if (connectorTank != null)
|
||||||
{
|
{
|
||||||
|
@ -58,7 +58,7 @@ abstract class FluidDistributionGrid extends TickingGrid[TFluidDistributor]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
def fill(source: TFluidDistributor, from: ForgeDirection, resource: FluidStack, doFill: Boolean): Int =
|
override def fill(from: ForgeDirection, resource: FluidStack, doFill: Boolean): Int =
|
||||||
{
|
{
|
||||||
val fill: Int = tank.fill(resource.copy, doFill)
|
val fill: Int = tank.fill(resource.copy, doFill)
|
||||||
if (fill > 0)
|
if (fill > 0)
|
||||||
|
@ -69,7 +69,7 @@ abstract class FluidDistributionGrid extends TickingGrid[TFluidDistributor]
|
||||||
return fill
|
return fill
|
||||||
}
|
}
|
||||||
|
|
||||||
def drain(source: TFluidDistributor, from: ForgeDirection, resource: FluidStack, doDrain: Boolean): FluidStack =
|
override def drain(from: ForgeDirection, resource: FluidStack, doDrain: Boolean): FluidStack =
|
||||||
{
|
{
|
||||||
if (resource != null && resource.isFluidEqual(tank.getFluid))
|
if (resource != null && resource.isFluidEqual(tank.getFluid))
|
||||||
{
|
{
|
||||||
|
@ -81,7 +81,7 @@ abstract class FluidDistributionGrid extends TickingGrid[TFluidDistributor]
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
def drain(source: TFluidDistributor, from: ForgeDirection, resource: Int, doDrain: Boolean): FluidStack =
|
override def drain(from: ForgeDirection, resource: Int, doDrain: Boolean): FluidStack =
|
||||||
{
|
{
|
||||||
val drain: FluidStack = tank.drain(resource, doDrain)
|
val drain: FluidStack = tank.drain(resource, doDrain)
|
||||||
needsUpdate = true
|
needsUpdate = true
|
||||||
|
@ -89,10 +89,11 @@ abstract class FluidDistributionGrid extends TickingGrid[TFluidDistributor]
|
||||||
return drain
|
return drain
|
||||||
}
|
}
|
||||||
|
|
||||||
def tankInfo: Array[FluidTankInfo] =
|
override def canFill(from: ForgeDirection, fluid: Fluid) = true
|
||||||
{
|
|
||||||
return Array[FluidTankInfo](tank.getInfo)
|
override def canDrain(from: ForgeDirection, fluid: Fluid) = true
|
||||||
}
|
|
||||||
|
override def getTankInfo(from: ForgeDirection) = Array[FluidTankInfo](tank.getInfo)
|
||||||
|
|
||||||
override def toString: String =
|
override def toString: String =
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
package resonantinduction.core.grid.fluid.distribution
|
||||||
|
|
||||||
|
import net.minecraftforge.common.util.ForgeDirection
|
||||||
|
import net.minecraftforge.fluids._
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wraps the fluid handler to forward it to a certain object.
|
||||||
|
* @author Calclavia
|
||||||
|
*/
|
||||||
|
trait TFluidForwarder extends IFluidHandler
|
||||||
|
{
|
||||||
|
def getForwardTank: IFluidHandler
|
||||||
|
|
||||||
|
override def fill(from: ForgeDirection, resource: FluidStack, doFill: Boolean): Int =
|
||||||
|
{
|
||||||
|
return getForwardTank.fill(from, resource, doFill)
|
||||||
|
}
|
||||||
|
|
||||||
|
override def drain(from: ForgeDirection, resource: FluidStack, doDrain: Boolean): FluidStack =
|
||||||
|
{
|
||||||
|
return getForwardTank.drain(from, resource, doDrain)
|
||||||
|
}
|
||||||
|
|
||||||
|
override def drain(from: ForgeDirection, maxDrain: Int, doDrain: Boolean): FluidStack =
|
||||||
|
{
|
||||||
|
return getForwardTank.drain(from, maxDrain, doDrain)
|
||||||
|
}
|
||||||
|
|
||||||
|
override def canFill(from: ForgeDirection, fluid: Fluid): Boolean =
|
||||||
|
{
|
||||||
|
return getForwardTank.canFill(from, fluid)
|
||||||
|
}
|
||||||
|
|
||||||
|
override def canDrain(from: ForgeDirection, fluid: Fluid): Boolean =
|
||||||
|
{
|
||||||
|
return getForwardTank.canDrain(from, fluid)
|
||||||
|
}
|
||||||
|
|
||||||
|
override def getTankInfo(from: ForgeDirection): Array[FluidTankInfo] =
|
||||||
|
{
|
||||||
|
return getForwardTank.getTankInfo(from)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -10,11 +10,11 @@ import scala.collection.mutable
|
||||||
/** Network that handles connected tanks
|
/** Network that handles connected tanks
|
||||||
*
|
*
|
||||||
* @author DarkGuardsman */
|
* @author DarkGuardsman */
|
||||||
class TankNetwork extends FluidDistributionGrid
|
class TankGrid extends FluidDistributionGrid
|
||||||
{
|
{
|
||||||
needsUpdate = true
|
needsUpdate = true
|
||||||
|
|
||||||
override def update()
|
override def update(deltaTime: Double)
|
||||||
{
|
{
|
||||||
val networkTankFluid = tank.getFluid
|
val networkTankFluid = tank.getFluid
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ class TankNetwork extends FluidDistributionGrid
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
heightPriorityQueue ++= getNodes()
|
heightPriorityQueue ++= (getNodes() map (_.genericParent))
|
||||||
|
|
||||||
var didChange = false
|
var didChange = false
|
||||||
|
|
|
@ -7,15 +7,19 @@ import resonant.lib.utility.WorldUtility
|
||||||
import resonantinduction.core.grid.MultipartNode
|
import resonantinduction.core.grid.MultipartNode
|
||||||
import universalelectricity.api.core.grid.INodeProvider
|
import universalelectricity.api.core.grid.INodeProvider
|
||||||
|
|
||||||
class TankNode(parent: INodeProvider) extends MultipartNode[TankNode](parent) with IFluidHandler
|
class TankNode(parent: INodeProvider) extends MultipartNode[TankNode](parent) with IFluidHandler with TFluidForwarder
|
||||||
{
|
{
|
||||||
var maxFlowRate: Int = 20
|
var maxFlowRate: Int = 20
|
||||||
var maxPressure: Int = 100
|
var maxPressure: Int = 100
|
||||||
|
|
||||||
|
//TODO: Do we actually call this?
|
||||||
private var pressure: Int = 0
|
private var pressure: Int = 0
|
||||||
var connectedSides: Byte = 0
|
var connectedSides: Byte = 0
|
||||||
|
|
||||||
var onChange: () => Unit = null
|
var onChange: () => Unit = null
|
||||||
|
|
||||||
|
def genericParent = parent.asInstanceOf[TFluidDistributor]
|
||||||
|
|
||||||
def getMaxFlowRate: Int =
|
def getMaxFlowRate: Int =
|
||||||
{
|
{
|
||||||
return maxFlowRate
|
return maxFlowRate
|
||||||
|
@ -76,6 +80,10 @@ class TankNode(parent: INodeProvider) extends MultipartNode[TankNode](parent) wi
|
||||||
return source.isInstanceOf[TankNode]
|
return source.isInstanceOf[TankNode]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override def getForwardTank = getGrid.asInstanceOf[TankGrid]
|
||||||
|
|
||||||
|
override protected def newGrid() = new TankGrid
|
||||||
|
|
||||||
override def load(nbt: NBTTagCompound)
|
override def load(nbt: NBTTagCompound)
|
||||||
{
|
{
|
||||||
super.load(nbt)
|
super.load(nbt)
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
package resonantinduction.core.grid.fluid.distribution
|
package resonantinduction.core.grid.fluid.distribution
|
||||||
|
|
||||||
import net.minecraft.block.material.Material
|
import net.minecraft.block.material.Material
|
||||||
import net.minecraftforge.common.util.ForgeDirection
|
|
||||||
import net.minecraftforge.fluids.{Fluid, FluidStack, FluidTankInfo}
|
|
||||||
import resonantinduction.core.grid.fluid.TileFluidNodeProvider
|
import resonantinduction.core.grid.fluid.TileFluidNodeProvider
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -10,7 +8,7 @@ import resonantinduction.core.grid.fluid.TileFluidNodeProvider
|
||||||
*
|
*
|
||||||
* @author DarkGuardsman
|
* @author DarkGuardsman
|
||||||
*/
|
*/
|
||||||
abstract class TileFluidDistribution(material: Material) extends TileFluidNodeProvider(material) with TFluidDistributor
|
abstract class TileFluidDistribution(material: Material) extends TileFluidNodeProvider(material) with TFluidDistributor with TFluidForwarder
|
||||||
{
|
{
|
||||||
tankNode.onChange = () => sendRenderUpdate
|
tankNode.onChange = () => sendRenderUpdate
|
||||||
|
|
||||||
|
@ -26,38 +24,10 @@ abstract class TileFluidDistribution(material: Material) extends TileFluidNodePr
|
||||||
super.invalidate()
|
super.invalidate()
|
||||||
}
|
}
|
||||||
|
|
||||||
def fill(from: ForgeDirection, resource: FluidStack, doFill: Boolean): Int =
|
|
||||||
{
|
|
||||||
return tankNode.fill(from, resource, doFill)
|
|
||||||
}
|
|
||||||
|
|
||||||
def drain(from: ForgeDirection, resource: FluidStack, doDrain: Boolean): FluidStack =
|
|
||||||
{
|
|
||||||
return tankNode.drain(from, resource, doDrain)
|
|
||||||
}
|
|
||||||
|
|
||||||
def drain(from: ForgeDirection, maxDrain: Int, doDrain: Boolean): FluidStack =
|
|
||||||
{
|
|
||||||
return tankNode.drain(from, maxDrain, doDrain)
|
|
||||||
}
|
|
||||||
|
|
||||||
def canFill(from: ForgeDirection, fluid: Fluid): Boolean =
|
|
||||||
{
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
def canDrain(from: ForgeDirection, fluid: Fluid): Boolean =
|
|
||||||
{
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
def getTankInfo(from: ForgeDirection): Array[FluidTankInfo] =
|
|
||||||
{
|
|
||||||
return Array[FluidTankInfo](getTank.getInfo)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Network used to link all parts together
|
* Network used to link all parts together
|
||||||
*/
|
*/
|
||||||
protected var tankNode: TankNode = null
|
protected var tankNode: TankNode = null
|
||||||
|
|
||||||
|
override def getForwardTank = tankNode
|
||||||
}
|
}
|
|
@ -24,7 +24,7 @@ class FluidPressureNode(parent: INodeProvider) extends MultipartNode[AnyRef](par
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
def update(deltaTime: Double)
|
override def update(deltaTime: Double)
|
||||||
{
|
{
|
||||||
if (!world.isRemote)
|
if (!world.isRemote)
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,7 +4,6 @@ import codechicken.multipart.{TMultiPart, TileMultipart}
|
||||||
import io.netty.buffer.ByteBuf
|
import io.netty.buffer.ByteBuf
|
||||||
import io.netty.channel.ChannelHandlerContext
|
import io.netty.channel.ChannelHandlerContext
|
||||||
import net.minecraft.entity.player.EntityPlayer
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
import net.minecraft.tileentity.TileEntity
|
|
||||||
import resonant.lib.network.discriminator.PacketType
|
import resonant.lib.network.discriminator.PacketType
|
||||||
import resonant.lib.network.handle.TPacketReceiver
|
import resonant.lib.network.handle.TPacketReceiver
|
||||||
import universalelectricity.core.transform.vector.Vector3
|
import universalelectricity.core.transform.vector.Vector3
|
||||||
|
@ -16,10 +15,10 @@ import universalelectricity.core.transform.vector.Vector3
|
||||||
*/
|
*/
|
||||||
class PacketMultiPart extends PacketType
|
class PacketMultiPart extends PacketType
|
||||||
{
|
{
|
||||||
var x: Int
|
var x: Int = 0
|
||||||
var y: Int
|
var y: Int = 0
|
||||||
var z: Int
|
var z: Int = 0
|
||||||
var partID: Int
|
var partID: Int = 0
|
||||||
|
|
||||||
def this(part: TMultiPart, partID: Int)
|
def this(part: TMultiPart, partID: Int)
|
||||||
{
|
{
|
||||||
|
|
|
@ -166,10 +166,12 @@ abstract class PartColorableMaterial[M](insulationType: Item) extends TMultiPart
|
||||||
{
|
{
|
||||||
val drops = mutable.Set.empty[ItemStack]
|
val drops = mutable.Set.empty[ItemStack]
|
||||||
drops.add(getItem)
|
drops.add(getItem)
|
||||||
|
|
||||||
if (requiresInsulation && isInsulated)
|
if (requiresInsulation && isInsulated)
|
||||||
{
|
{
|
||||||
drops.add(new ItemStack(insulationType, 1, BlockColored.func_150031_c(color)))
|
drops.add(new ItemStack(insulationType, 1, BlockColored.func_150031_c(color)))
|
||||||
}
|
}
|
||||||
|
|
||||||
return drops
|
return drops
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,24 +1,20 @@
|
||||||
package resonantinduction.core.prefab.part
|
package resonantinduction.core.prefab.part
|
||||||
|
|
||||||
import java.util.{ArrayList, List}
|
|
||||||
|
|
||||||
import codechicken.multipart.{IRedstonePart, TMultiPart}
|
import codechicken.multipart.{IRedstonePart, TMultiPart}
|
||||||
import net.minecraft.item.ItemStack
|
import net.minecraft.item.ItemStack
|
||||||
import net.minecraft.util.MovingObjectPosition
|
import net.minecraft.util.MovingObjectPosition
|
||||||
import resonant.content.spatial.block.TraitTicker
|
import resonant.content.spatial.block.TraitTicker
|
||||||
|
|
||||||
import scala.collection.JavaConversions._
|
|
||||||
|
|
||||||
trait TraitPart extends TMultiPart with TraitTicker
|
trait TraitPart extends TMultiPart with TraitTicker
|
||||||
{
|
{
|
||||||
|
override def update()
|
||||||
|
{
|
||||||
|
super[TraitTicker].update()
|
||||||
|
}
|
||||||
|
|
||||||
protected def getItem: ItemStack
|
protected def getItem: ItemStack
|
||||||
|
|
||||||
override def getDrops: Iterable[ItemStack] =
|
override def getDrops: Iterable[ItemStack] = Seq(getItem)
|
||||||
{
|
|
||||||
val drops: List[ItemStack] = new ArrayList[ItemStack]
|
|
||||||
drops.add(getItem)
|
|
||||||
return drops
|
|
||||||
}
|
|
||||||
|
|
||||||
override def pickItem(hit: MovingObjectPosition): ItemStack =
|
override def pickItem(hit: MovingObjectPosition): ItemStack =
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue