Some more rewrite on thermal grid
This commit is contained in:
parent
baa21f5f5a
commit
173224b2cb
|
@ -327,8 +327,8 @@ item.edx:uranium.0.name=Uranium-235
|
|||
item.edx:uranium.0.tooltip=Enriched Uranium
|
||||
item.edx:uranium.1.name=Uranium-238
|
||||
item.edx:uranium.1.tooltip=Breeding Uranium
|
||||
item.edx:fissileFuel.name=Fissile Fuel Rod
|
||||
item.edx:fissileFuel.tooltip=The primary fuel source for fission reactors.
|
||||
item.edx:fuelRod.name=Fissile Fuel Rod
|
||||
item.edx:fuelRod.tooltip=The primary fuel source for fission reactors.
|
||||
item.edx:breederFuel.name=Breeder Fuel Rod
|
||||
item.edx:breederFuel.tooltip=The fuel source for re-breeding decayed fissile fuels.
|
||||
item.edx:uraniumHexafluoride.name=Uranium Hexafluoride
|
||||
|
|
|
@ -186,11 +186,11 @@ class TileFirebox extends SpatialTile(Material.rock) with IFluidHandler with TIn
|
|||
|
||||
override def getSizeInventory = 1
|
||||
|
||||
def getMeltIronEnergy(volume: Float): Long =
|
||||
def getMeltIronEnergy(volume: Float): Double =
|
||||
{
|
||||
val temperatureChange: Float = 1811 - ThermalPhysics.getDefaultTemperature(worldObj, xCoord, zCoord)
|
||||
val temperatureChange: Float = 1811 - ThermalPhysics.getDefaultTemperature(toVectorWorld)
|
||||
val mass: Float = ThermalPhysics.getMass(volume, 7.9f)
|
||||
return (ThermalPhysics.getEnergyForTemperatureChange(mass, 450, temperatureChange) + ThermalPhysics.getEnergyForStateChange(mass, 272000)).asInstanceOf[Long]
|
||||
return ThermalPhysics.getEnergyForTemperatureChange(mass, 450, temperatureChange) + ThermalPhysics.getEnergyForStateChange(mass, 272000)
|
||||
}
|
||||
|
||||
override def isItemValidForSlot(i: Int, itemStack: ItemStack): Boolean =
|
||||
|
|
|
@ -42,8 +42,8 @@ object TextureHookHandler
|
|||
@SideOnly(Side.CLIENT)
|
||||
def postTextureHook(event: TextureStitchEvent.Post)
|
||||
{
|
||||
QuantumContent.FLUID_URANIUM_HEXAFLOURIDE.setIcons(RenderUtility.loadedIconMap.get(Reference.prefix + "uraniumHexafluoride"))
|
||||
QuantumContent.FLUID_STEAM.setIcons(RenderUtility.loadedIconMap.get(Reference.prefix + "steam"))
|
||||
QuantumContent.fluidUraniumHexaflouride.setIcons(RenderUtility.loadedIconMap.get(Reference.prefix + "uraniumHexafluoride"))
|
||||
QuantumContent.fluidSteam.setIcons(RenderUtility.loadedIconMap.get(Reference.prefix + "steam"))
|
||||
QuantumContent.FLUID_DEUTERIUM.setIcons(RenderUtility.loadedIconMap.get(Reference.prefix + "deuterium"))
|
||||
QuantumContent.getFluidTritium.setIcons(RenderUtility.loadedIconMap.get(Reference.prefix + "tritium"))
|
||||
QuantumContent.getFluidToxicWaste.setIcons(QuantumContent.blockToxicWaste.getIcon(0, 0))
|
||||
|
|
|
@ -18,7 +18,7 @@ import net.minecraft.item.crafting.FurnaceRecipes
|
|||
import net.minecraft.item.{Item, ItemStack}
|
||||
import net.minecraft.util.{IIcon, ResourceLocation}
|
||||
import net.minecraftforge.client.event.TextureStitchEvent
|
||||
import net.minecraftforge.fluids.{FluidContainerRegistry, FluidRegistry, FluidStack}
|
||||
import net.minecraftforge.fluids.{Fluid, FluidContainerRegistry, FluidRegistry, FluidStack}
|
||||
import net.minecraftforge.oredict.OreDictionary
|
||||
import resonant.api.recipe.{MachineRecipes, RecipeType}
|
||||
import resonant.lib.factory.resources.ResourceFactory
|
||||
|
@ -77,6 +77,21 @@ object AutoResourceFactory
|
|||
registerAutoMaterial("tin")
|
||||
}
|
||||
|
||||
def registerAutoMaterial(material: String)
|
||||
{
|
||||
if (!materials.contains(material) && OreDictionary.getOres("ore" + material.capitalizeFirst).size > 0)
|
||||
{
|
||||
Settings.config.load()
|
||||
val allowMaterial = Settings.config.get("Resource-Generator", "Enable " + material, true).getBoolean(true)
|
||||
Settings.config.save()
|
||||
|
||||
if (allowMaterial && !blackList.contains(material))
|
||||
{
|
||||
materials += material
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def postInit()
|
||||
{
|
||||
//Add vanilla ore processing recipes
|
||||
|
@ -115,7 +130,7 @@ object AutoResourceFactory
|
|||
}
|
||||
|
||||
//Generate molten fluid
|
||||
val fluidMolten = new FluidColored("molten" + nameCaps).setDensity(7).setViscosity(5000).setTemperature(273 + 1538)
|
||||
val fluidMolten = new Fluid("molten" + nameCaps).setDensity(7).setViscosity(5000).setTemperature(273 + 1538)
|
||||
FluidRegistry.registerFluid(fluidMolten)
|
||||
LanguageRegistry.instance.addStringLocalization(fluidMolten.getUnlocalizedName, LanguageUtility.getLocal("misc.molten") + " " + localizedName)
|
||||
val blockFluidMaterial = new BlockFluidMaterial(fluidMolten)
|
||||
|
@ -154,21 +169,6 @@ object AutoResourceFactory
|
|||
}
|
||||
}
|
||||
|
||||
def registerAutoMaterial(material: String)
|
||||
{
|
||||
if (!materials.contains(material) && OreDictionary.getOres("ore" + material.capitalizeFirst).size > 0)
|
||||
{
|
||||
Settings.config.load()
|
||||
val allowMaterial = Settings.config.get("Resource-Generator", "Enable " + material, true).getBoolean(true)
|
||||
Settings.config.save()
|
||||
|
||||
if (allowMaterial && !blackList.contains(material))
|
||||
{
|
||||
materials += material
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
@SideOnly(Side.CLIENT)
|
||||
def reloadTextures(e: TextureStitchEvent.Post)
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
package edx.core.resource.content
|
||||
|
||||
import net.minecraftforge.fluids.Fluid
|
||||
|
||||
class FluidColored(fluidName: String) extends Fluid(fluidName)
|
||||
{
|
||||
var color = 0xFFFFFF
|
||||
|
||||
def setColor(color: Int): FluidColored =
|
||||
{
|
||||
this.color = color
|
||||
return this
|
||||
}
|
||||
|
||||
override def getColor = color
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package edx.core.wrapper
|
||||
|
||||
import net.minecraft.nbt.NBTTagCompound
|
||||
import net.minecraftforge.fluids.FluidStack
|
||||
|
||||
/**
|
||||
* @author Calclavia
|
||||
*/
|
||||
object FluidStackWrapper
|
||||
{
|
||||
|
||||
implicit class FluidStackWrapper(fluidStack: FluidStack)
|
||||
{
|
||||
def getTemperature: Int =
|
||||
{
|
||||
if (fluidStack.tag == null)
|
||||
fluidStack.tag = new NBTTagCompound
|
||||
|
||||
fluidStack.tag.getInteger("temperature")
|
||||
}
|
||||
|
||||
def setTemperature(temp: Int)
|
||||
{
|
||||
if (fluidStack.tag == null)
|
||||
fluidStack.tag = new NBTTagCompound
|
||||
|
||||
fluidStack.tag.setInteger("temperature", temp)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -132,11 +132,8 @@ class TileBattery extends SpatialTile(Material.iron) with TIO with TElectric wit
|
|||
|
||||
def updateConnectionMask()
|
||||
{
|
||||
electricNode.connectionMask = ForgeDirection.VALID_DIRECTIONS.filter(getIO(_) > 0).map(d => 1 << d.ordinal()).foldLeft(0)(_ | _)
|
||||
electricNode.positiveTerminals.clear()
|
||||
electricNode.negativeTerminals.clear()
|
||||
electricNode.positiveTerminals.addAll(getInputDirections())
|
||||
electricNode.negativeTerminals.addAll(getOutputDirections())
|
||||
electricNode.setPositives(getInputDirections())
|
||||
electricNode.setNegatives(getOutputDirections())
|
||||
electricNode.reconstruct()
|
||||
markUpdate()
|
||||
notifyChange()
|
||||
|
|
|
@ -71,6 +71,15 @@ class TileMotor extends SpatialTile(Material.iron) with TIO with TElectric with
|
|||
updateConnections()
|
||||
}
|
||||
|
||||
def updateConnections()
|
||||
{
|
||||
electricNode.setPositives(getInputDirections())
|
||||
electricNode.setNegatives(getOutputDirections())
|
||||
electricNode.reconstruct()
|
||||
notifyChange()
|
||||
markUpdate()
|
||||
}
|
||||
|
||||
override def update()
|
||||
{
|
||||
super.update()
|
||||
|
@ -108,18 +117,6 @@ class TileMotor extends SpatialTile(Material.iron) with TIO with TElectric with
|
|||
}
|
||||
}
|
||||
|
||||
def updateConnections()
|
||||
{
|
||||
electricNode.connectionMask = ForgeDirection.VALID_DIRECTIONS.filter(getIO(_) > 0).map(d => 1 << d.ordinal()).foldLeft(0)(_ | _)
|
||||
electricNode.positiveTerminals.clear()
|
||||
electricNode.negativeTerminals.clear()
|
||||
electricNode.positiveTerminals.addAll(getInputDirections())
|
||||
electricNode.negativeTerminals.addAll(getOutputDirections())
|
||||
electricNode.reconstruct()
|
||||
notifyChange()
|
||||
markUpdate()
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
override def renderDynamic(pos: Vector3, frame: Float, pass: Int): Unit =
|
||||
{
|
||||
|
|
|
@ -27,8 +27,8 @@ class TileSolarPanel extends SpatialTile(Material.iron) with TElectric with TSpa
|
|||
|
||||
edgeTexture = Reference.prefix + "tankEdge"
|
||||
electricNode.dynamicTerminals = true
|
||||
electricNode.positiveTerminals.addAll(Seq(ForgeDirection.NORTH, ForgeDirection.EAST))
|
||||
electricNode.negativeTerminals.addAll(Seq(ForgeDirection.SOUTH, ForgeDirection.WEST))
|
||||
electricNode.setPositives(Set(ForgeDirection.NORTH, ForgeDirection.EAST))
|
||||
electricNode.setNegatives(Set(ForgeDirection.SOUTH, ForgeDirection.WEST))
|
||||
nodes.add(electricNode)
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
|
|
|
@ -28,8 +28,8 @@ class TileThermopile extends SpatialTile(Material.rock) with TElectric with TSpa
|
|||
nodes.add(electricNode)
|
||||
|
||||
electricNode.dynamicTerminals = true
|
||||
electricNode.positiveTerminals.addAll(Seq(ForgeDirection.NORTH, ForgeDirection.EAST))
|
||||
electricNode.negativeTerminals.addAll(Seq(ForgeDirection.SOUTH, ForgeDirection.WEST))
|
||||
electricNode.setPositives(Set(ForgeDirection.NORTH, ForgeDirection.EAST))
|
||||
electricNode.setNegatives(Set(ForgeDirection.SOUTH, ForgeDirection.WEST))
|
||||
|
||||
override def update()
|
||||
{
|
||||
|
|
|
@ -5,6 +5,8 @@ import java.util.List
|
|||
import cpw.mods.fml.common.Loader
|
||||
import cpw.mods.fml.common.eventhandler.{Event, SubscribeEvent}
|
||||
import cpw.mods.fml.common.registry.{EntityRegistry, GameRegistry}
|
||||
import edx.basic.fluid.tank.TileTank
|
||||
import edx.core.wrapper.FluidStackWrapper._
|
||||
import edx.core.{EDXCreativeTab, Electrodynamics, Reference, Settings}
|
||||
import edx.quantum.blocks._
|
||||
import edx.quantum.items._
|
||||
|
@ -30,13 +32,13 @@ import net.minecraft.world.World
|
|||
import net.minecraftforge.common.ForgeChunkManager.Type
|
||||
import net.minecraftforge.common.{ForgeChunkManager, MinecraftForge}
|
||||
import net.minecraftforge.event.entity.player.FillBucketEvent
|
||||
import net.minecraftforge.fluids.{Fluid, FluidContainerRegistry, FluidRegistry, FluidStack}
|
||||
import net.minecraftforge.fluids._
|
||||
import net.minecraftforge.oredict.{OreDictionary, ShapelessOreRecipe}
|
||||
import resonant.api.event.PlasmaEvent
|
||||
import resonant.api.recipe.QuantumAssemblerRecipes
|
||||
import resonant.api.tile.IElectromagnet
|
||||
import resonant.lib.factory.resources.block.OreGenerator
|
||||
import resonant.lib.grid.thermal.EventThermal
|
||||
import resonant.lib.grid.thermal.ThermalEvent
|
||||
import resonant.lib.mod.content.{ContentHolder, ExplicitContentName}
|
||||
import resonant.lib.transform.vector.VectorWorld
|
||||
import resonant.lib.utility.recipe.UniversalRecipe
|
||||
|
@ -44,9 +46,6 @@ import resonant.lib.world.schematic.SchematicRegistry
|
|||
|
||||
import scala.collection.JavaConversions._
|
||||
|
||||
/**
|
||||
* Created by robert on 8/10/2014.
|
||||
*/
|
||||
object QuantumContent extends ContentHolder
|
||||
{
|
||||
//Constructor
|
||||
|
@ -108,19 +107,18 @@ object QuantumContent extends ContentHolder
|
|||
|
||||
override def preInit()
|
||||
{
|
||||
|
||||
MinecraftForge.EVENT_BUS.register(this)
|
||||
MinecraftForge.EVENT_BUS.register(FulminationHandler.INSTANCE)
|
||||
|
||||
//Register Fluids
|
||||
FluidRegistry.registerFluid(QuantumContent.FLUID_URANIUM_HEXAFLOURIDE)
|
||||
FluidRegistry.registerFluid(QuantumContent.FLUID_STEAM)
|
||||
FluidRegistry.registerFluid(QuantumContent.fluidUraniumHexaflouride)
|
||||
FluidRegistry.registerFluid(QuantumContent.fluidSteam)
|
||||
FluidRegistry.registerFluid(QuantumContent.getFluidTritium)
|
||||
FluidRegistry.registerFluid(QuantumContent.FLUID_DEUTERIUM)
|
||||
FluidRegistry.registerFluid(QuantumContent.getFluidToxicWaste)
|
||||
FluidRegistry.registerFluid(QuantumContent.FLUID_PLASMA)
|
||||
|
||||
Settings.config.load
|
||||
Settings.config.load()
|
||||
|
||||
super.preInit()
|
||||
|
||||
|
@ -167,7 +165,7 @@ object QuantumContent extends ContentHolder
|
|||
{
|
||||
for (ticket <- tickets)
|
||||
{
|
||||
if (ticket.getType eq Type.ENTITY)
|
||||
if (ticket.getType == Type.ENTITY)
|
||||
{
|
||||
if (ticket.getEntity != null)
|
||||
{
|
||||
|
@ -186,6 +184,65 @@ object QuantumContent extends ContentHolder
|
|||
|
||||
def FLUID_PLASMA: Fluid = new Fluid("plasma").setGaseous(true)
|
||||
|
||||
def fluidUraniumHexaflouride: Fluid =
|
||||
{
|
||||
var fluid: Fluid = FluidRegistry.getFluid("uraniumhexafluoride")
|
||||
if (fluid == null)
|
||||
{
|
||||
fluid = new Fluid("uraniumhexafluoride").setGaseous(true)
|
||||
FluidRegistry.registerFluid(fluid)
|
||||
}
|
||||
return fluid
|
||||
}
|
||||
|
||||
def fluidSteam: Fluid =
|
||||
{
|
||||
var fluid = FluidRegistry.getFluid("steam")
|
||||
|
||||
if (fluid == null)
|
||||
{
|
||||
fluid = new Fluid("steam").setGaseous(true)
|
||||
FluidRegistry.registerFluid(fluid)
|
||||
}
|
||||
|
||||
return fluid
|
||||
}
|
||||
|
||||
def FLUID_DEUTERIUM: Fluid =
|
||||
{
|
||||
var fluid: Fluid = FluidRegistry.getFluid("deuterium")
|
||||
if (fluid == null)
|
||||
{
|
||||
fluid = new Fluid("deuterium").setGaseous(true)
|
||||
FluidRegistry.registerFluid(fluid)
|
||||
}
|
||||
return fluid
|
||||
}
|
||||
|
||||
/** Gets the Fluid instance of Tritium */
|
||||
def getFluidTritium: Fluid =
|
||||
{
|
||||
var fluid: Fluid = FluidRegistry.getFluid("tritium")
|
||||
if (fluid == null)
|
||||
{
|
||||
fluid = new Fluid("tritium").setGaseous(true)
|
||||
FluidRegistry.registerFluid(fluid)
|
||||
}
|
||||
return fluid
|
||||
}
|
||||
|
||||
/** Gets the Fluid instance of Toxic Waste */
|
||||
def getFluidToxicWaste: Fluid =
|
||||
{
|
||||
var fluid: Fluid = FluidRegistry.getFluid("toxicwaste")
|
||||
if (fluid == null)
|
||||
{
|
||||
fluid = new Fluid("toxicwaste").setGaseous(true)
|
||||
FluidRegistry.registerFluid(fluid)
|
||||
}
|
||||
return fluid
|
||||
}
|
||||
|
||||
override def postInit()
|
||||
{
|
||||
super.postInit()
|
||||
|
@ -274,13 +331,21 @@ object QuantumContent extends ContentHolder
|
|||
}
|
||||
|
||||
@SubscribeEvent
|
||||
def thermalEventHandler(evt: EventThermal.EventThermalUpdate)
|
||||
def thermalEventHandler(evt: ThermalEvent.EventThermalUpdate)
|
||||
{
|
||||
val pos: VectorWorld = evt.position
|
||||
val block: Block = pos.getBlock
|
||||
if (block == QuantumContent.blockElectromagnet)
|
||||
val pos = evt.position
|
||||
|
||||
val tile = pos.getTileEntity
|
||||
|
||||
/**
|
||||
* Heat up fluid in containers
|
||||
*/
|
||||
if (tile.isInstanceOf[TileTank])
|
||||
{
|
||||
evt.heatLoss = evt.deltaTemperature * 0.6f
|
||||
val fluidStack = tile.asInstanceOf[TileTank].fluidNode.getPrimaryTank.getFluid
|
||||
|
||||
if (fluidStack != null)
|
||||
fluidStack.setTemperature(evt.temperature)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -328,6 +393,11 @@ object QuantumContent extends ContentHolder
|
|||
return isItemStackOreDictionaryCompatible(itemStack, "dropUranium", "oreUranium")
|
||||
}
|
||||
|
||||
def isItemStackDeuteriumCell(itemStack: ItemStack): Boolean =
|
||||
{
|
||||
return isItemStackOreDictionaryCompatible(itemStack, "molecule_1d", "molecule_1h2", "cellDeuterium")
|
||||
}
|
||||
|
||||
/** Compare to Ore Dict
|
||||
*
|
||||
* @param itemStack
|
||||
|
@ -349,11 +419,6 @@ object QuantumContent extends ContentHolder
|
|||
return false
|
||||
}
|
||||
|
||||
def isItemStackDeuteriumCell(itemStack: ItemStack): Boolean =
|
||||
{
|
||||
return isItemStackOreDictionaryCompatible(itemStack, "molecule_1d", "molecule_1h2", "cellDeuterium")
|
||||
}
|
||||
|
||||
def isItemStackTritiumCell(itemStack: ItemStack): Boolean =
|
||||
{
|
||||
return isItemStackOreDictionaryCompatible(itemStack, "molecule_h3", "cellTritium")
|
||||
|
@ -368,73 +433,16 @@ object QuantumContent extends ContentHolder
|
|||
return 0
|
||||
}
|
||||
|
||||
def FLUIDSTACK_WATER: FluidStack = new FluidStack(FluidRegistry.WATER, 0)
|
||||
def fluidStackWater: FluidStack = new FluidStack(FluidRegistry.WATER, 0)
|
||||
|
||||
def FLUIDSTACK_URANIUM_HEXAFLOURIDE: FluidStack = new FluidStack(QuantumContent.FLUID_URANIUM_HEXAFLOURIDE, 0)
|
||||
def fluidStackUraniumHexaflouride: FluidStack = new FluidStack(QuantumContent.fluidUraniumHexaflouride, 0)
|
||||
|
||||
def FLUID_URANIUM_HEXAFLOURIDE: Fluid =
|
||||
{
|
||||
var fluid: Fluid = FluidRegistry.getFluid("uraniumhexafluoride");
|
||||
if (fluid == null)
|
||||
{
|
||||
fluid = new Fluid("uraniumhexafluoride").setGaseous(true)
|
||||
FluidRegistry.registerFluid(fluid)
|
||||
}
|
||||
return fluid
|
||||
}
|
||||
|
||||
def FLUIDSTACK_STEAM: FluidStack = new FluidStack(FLUID_STEAM, 0)
|
||||
|
||||
def FLUID_STEAM: Fluid =
|
||||
{
|
||||
var fluid: Fluid = FluidRegistry.getFluid("steam");
|
||||
if (fluid == null)
|
||||
{
|
||||
fluid = new Fluid("steam").setGaseous(true)
|
||||
FluidRegistry.registerFluid(fluid)
|
||||
}
|
||||
return fluid
|
||||
}
|
||||
def fluidStackSteam: FluidStack = new FluidStack(fluidSteam, 0)
|
||||
|
||||
def FLUIDSTACK_DEUTERIUM: FluidStack = new FluidStack(FLUID_DEUTERIUM, 0)
|
||||
|
||||
def FLUID_DEUTERIUM: Fluid =
|
||||
{
|
||||
var fluid: Fluid = FluidRegistry.getFluid("deuterium");
|
||||
if (fluid == null)
|
||||
{
|
||||
fluid = new Fluid("deuterium").setGaseous(true)
|
||||
FluidRegistry.registerFluid(fluid)
|
||||
}
|
||||
return fluid
|
||||
}
|
||||
|
||||
def getFluidStackTritium: FluidStack = new FluidStack(getFluidTritium, 0)
|
||||
|
||||
/** Gets the Fluid instance of Tritium */
|
||||
def getFluidTritium: Fluid =
|
||||
{
|
||||
var fluid: Fluid = FluidRegistry.getFluid("tritium");
|
||||
if (fluid == null)
|
||||
{
|
||||
fluid = new Fluid("tritium").setGaseous(true)
|
||||
FluidRegistry.registerFluid(fluid)
|
||||
}
|
||||
return fluid
|
||||
}
|
||||
|
||||
/** Gets a FluidStack of Toxic Waste */
|
||||
def getStackToxicWaste: FluidStack = new FluidStack(getFluidToxicWaste, 0)
|
||||
|
||||
/** Gets the Fluid instance of Toxic Waste */
|
||||
def getFluidToxicWaste: Fluid =
|
||||
{
|
||||
var fluid: Fluid = FluidRegistry.getFluid("toxicwaste");
|
||||
if (fluid == null)
|
||||
{
|
||||
fluid = new Fluid("toxicwaste").setGaseous(true)
|
||||
FluidRegistry.registerFluid(fluid)
|
||||
}
|
||||
return fluid
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ import resonant.lib.wrapper.CollectionWrapper._
|
|||
*/
|
||||
object ItemFuelRod
|
||||
{
|
||||
final val decay: Int = 2500
|
||||
final val decay = 2500
|
||||
/**
|
||||
* Temperature at which the fuel rod will begin to re-enrich itself.
|
||||
*/
|
||||
|
@ -31,7 +31,7 @@ object ItemFuelRod
|
|||
/**
|
||||
* Approximately 20,000,000J per tick. 400 MW.
|
||||
*/
|
||||
final val energyPerTick = energyDensity / 50000
|
||||
final val energyPerTick = (energyDensity / 100000) / decay
|
||||
}
|
||||
|
||||
class ItemFuelRod extends ItemRadioactive with IReactorComponent
|
||||
|
|
|
@ -50,7 +50,7 @@ class ContainerNuclearBoiler(player: EntityPlayer, tileEntity: TileNuclearBoiler
|
|||
return null
|
||||
}
|
||||
}
|
||||
else if (QuantumContent.FLUIDSTACK_WATER.isFluidEqual(FluidContainerRegistry.getFluidForFilledItem(itemStack)))
|
||||
else if (QuantumContent.fluidStackWater.isFluidEqual(FluidContainerRegistry.getFluidForFilledItem(itemStack)))
|
||||
{
|
||||
if (!this.mergeItemStack(itemStack, 1, 2, false))
|
||||
{
|
||||
|
|
|
@ -31,9 +31,9 @@ class TileNuclearBoiler extends TileElectricInventory(Material.iron) with IPacke
|
|||
{
|
||||
final val totalTime: Int = 20 * 15
|
||||
|
||||
final val waterTank: FluidTank = new FluidTank(QuantumContent.FLUIDSTACK_WATER.copy, FluidContainerRegistry.BUCKET_VOLUME * 5)
|
||||
final val waterTank: FluidTank = new FluidTank(QuantumContent.fluidStackWater.copy, FluidContainerRegistry.BUCKET_VOLUME * 5)
|
||||
|
||||
final val gasTank: FluidTank = new FluidTank(QuantumContent.FLUIDSTACK_URANIUM_HEXAFLOURIDE.copy, FluidContainerRegistry.BUCKET_VOLUME * 5)
|
||||
final val gasTank: FluidTank = new FluidTank(QuantumContent.fluidStackUraniumHexaflouride.copy, FluidContainerRegistry.BUCKET_VOLUME * 5)
|
||||
|
||||
var timer: Int = 0
|
||||
|
||||
|
@ -61,7 +61,7 @@ class TileNuclearBoiler extends TileElectricInventory(Material.iron) with IPacke
|
|||
if (FluidContainerRegistry.isFilledContainer(getStackInSlot(1)))
|
||||
{
|
||||
val liquid: FluidStack = FluidContainerRegistry.getFluidForFilledItem(getStackInSlot(1))
|
||||
if (liquid.isFluidEqual(QuantumContent.FLUIDSTACK_WATER))
|
||||
if (liquid.isFluidEqual(QuantumContent.fluidStackWater))
|
||||
{
|
||||
if (this.fill(ForgeDirection.UNKNOWN, liquid, false) > 0)
|
||||
{
|
||||
|
@ -130,7 +130,7 @@ class TileNuclearBoiler extends TileElectricInventory(Material.iron) with IPacke
|
|||
if (this.nengYong)
|
||||
{
|
||||
this.waterTank.drain(FluidContainerRegistry.BUCKET_VOLUME, true)
|
||||
val liquid: FluidStack = QuantumContent.FLUIDSTACK_URANIUM_HEXAFLOURIDE.copy
|
||||
val liquid: FluidStack = QuantumContent.fluidStackUraniumHexaflouride.copy
|
||||
liquid.amount = Settings.uraniumHexaflourideRatio * 2
|
||||
this.gasTank.fill(liquid, true)
|
||||
this.decrStackSize(3, 1)
|
||||
|
@ -163,7 +163,7 @@ class TileNuclearBoiler extends TileElectricInventory(Material.iron) with IPacke
|
|||
*/
|
||||
def fill(from: ForgeDirection, resource: FluidStack, doFill: Boolean): Int =
|
||||
{
|
||||
if (QuantumContent.FLUIDSTACK_WATER.isFluidEqual(resource))
|
||||
if (QuantumContent.fluidStackWater.isFluidEqual(resource))
|
||||
{
|
||||
return this.waterTank.fill(resource, doFill)
|
||||
}
|
||||
|
@ -172,8 +172,8 @@ class TileNuclearBoiler extends TileElectricInventory(Material.iron) with IPacke
|
|||
|
||||
def read(data: ByteBuf, player: EntityPlayer, `type`: PacketType)
|
||||
{
|
||||
this.waterTank.setFluid(new FluidStack(QuantumContent.FLUIDSTACK_WATER.fluidID, data.readInt))
|
||||
this.gasTank.setFluid(new FluidStack(QuantumContent.FLUIDSTACK_URANIUM_HEXAFLOURIDE.fluidID, data.readInt))
|
||||
this.waterTank.setFluid(new FluidStack(QuantumContent.fluidStackWater.fluidID, data.readInt))
|
||||
this.gasTank.setFluid(new FluidStack(QuantumContent.fluidStackUraniumHexaflouride.fluidID, data.readInt))
|
||||
this.timer = data.readInt
|
||||
}
|
||||
|
||||
|
@ -229,7 +229,7 @@ class TileNuclearBoiler extends TileElectricInventory(Material.iron) with IPacke
|
|||
|
||||
def drain(from: ForgeDirection, resource: FluidStack, doDrain: Boolean): FluidStack =
|
||||
{
|
||||
if (QuantumContent.FLUIDSTACK_URANIUM_HEXAFLOURIDE.isFluidEqual(resource))
|
||||
if (QuantumContent.fluidStackUraniumHexaflouride.isFluidEqual(resource))
|
||||
{
|
||||
return this.gasTank.drain(resource.amount, doDrain)
|
||||
}
|
||||
|
@ -243,12 +243,12 @@ class TileNuclearBoiler extends TileElectricInventory(Material.iron) with IPacke
|
|||
|
||||
def canFill(from: ForgeDirection, fluid: Fluid): Boolean =
|
||||
{
|
||||
return QuantumContent.FLUIDSTACK_WATER.fluidID == fluid.getID
|
||||
return QuantumContent.fluidStackWater.fluidID == fluid.getID
|
||||
}
|
||||
|
||||
def canDrain(from: ForgeDirection, fluid: Fluid): Boolean =
|
||||
{
|
||||
return QuantumContent.FLUIDSTACK_URANIUM_HEXAFLOURIDE.fluidID == fluid.getID
|
||||
return QuantumContent.fluidStackUraniumHexaflouride.fluidID == fluid.getID
|
||||
}
|
||||
|
||||
def getTankInfo(from: ForgeDirection): Array[FluidTankInfo] =
|
||||
|
|
|
@ -62,7 +62,7 @@ class TileCentrifuge extends TileElectricInventory(Material.iron) with IPacketRe
|
|||
val fluidHandler: IFluidHandler = (tileEntity.asInstanceOf[IFluidHandler])
|
||||
if (fluidHandler != null)
|
||||
{
|
||||
val requestFluid: FluidStack = QuantumContent.FLUIDSTACK_URANIUM_HEXAFLOURIDE
|
||||
val requestFluid: FluidStack = QuantumContent.fluidStackUraniumHexaflouride
|
||||
requestFluid.amount = this.gasTank.getCapacity - QuantumContent.getFluidAmount(this.gasTank.getFluid)
|
||||
val receiveFluid: FluidStack = fluidHandler.drain(direction.getOpposite, requestFluid, true)
|
||||
if (receiveFluid != null)
|
||||
|
@ -148,6 +148,22 @@ class TileCentrifuge extends TileElectricInventory(Material.iron) with IPacketRe
|
|||
return false
|
||||
}
|
||||
|
||||
override def isItemValidForSlot(i: Int, itemStack: ItemStack): Boolean =
|
||||
{
|
||||
i match
|
||||
{
|
||||
case 0 =>
|
||||
return Compatibility.isHandler(itemStack.getItem, null)
|
||||
case 1 =>
|
||||
return true
|
||||
case 2 =>
|
||||
return itemStack.getItem eq QuantumContent.itemUranium
|
||||
case 3 =>
|
||||
return itemStack.getItem eq QuantumContent.itemUranium
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
override def use(player: EntityPlayer, side: Int, hit: Vector3): Boolean =
|
||||
{
|
||||
openGui(player, QuantumContent)
|
||||
|
@ -157,7 +173,7 @@ class TileCentrifuge extends TileElectricInventory(Material.iron) with IPacketRe
|
|||
def read(data: ByteBuf, player: EntityPlayer, `type`: PacketType)
|
||||
{
|
||||
this.timer = data.readInt
|
||||
this.gasTank.setFluid(new FluidStack(QuantumContent.FLUIDSTACK_URANIUM_HEXAFLOURIDE.fluidID, data.readInt))
|
||||
this.gasTank.setFluid(new FluidStack(QuantumContent.fluidStackUraniumHexaflouride.fluidID, data.readInt))
|
||||
|
||||
}
|
||||
|
||||
|
@ -197,7 +213,7 @@ class TileCentrifuge extends TileElectricInventory(Material.iron) with IPacketRe
|
|||
*/
|
||||
def fill(from: ForgeDirection, resource: FluidStack, doFill: Boolean): Int =
|
||||
{
|
||||
if (QuantumContent.FLUIDSTACK_URANIUM_HEXAFLOURIDE.isFluidEqual(resource))
|
||||
if (QuantumContent.fluidStackUraniumHexaflouride.isFluidEqual(resource))
|
||||
{
|
||||
return this.gasTank.fill(resource, doFill)
|
||||
}
|
||||
|
@ -216,7 +232,7 @@ class TileCentrifuge extends TileElectricInventory(Material.iron) with IPacketRe
|
|||
|
||||
def canFill(from: ForgeDirection, fluid: Fluid): Boolean =
|
||||
{
|
||||
return QuantumContent.FLUIDSTACK_URANIUM_HEXAFLOURIDE.fluidID == fluid.getID
|
||||
return QuantumContent.fluidStackUraniumHexaflouride.fluidID == fluid.getID
|
||||
}
|
||||
|
||||
def canDrain(from: ForgeDirection, fluid: Fluid): Boolean =
|
||||
|
@ -242,22 +258,6 @@ class TileCentrifuge extends TileElectricInventory(Material.iron) with IPacketRe
|
|||
return slotID == 1 && this.isItemValidForSlot(slotID, itemStack)
|
||||
}
|
||||
|
||||
override def isItemValidForSlot(i: Int, itemStack: ItemStack): Boolean =
|
||||
{
|
||||
i match
|
||||
{
|
||||
case 0 =>
|
||||
return Compatibility.isHandler(itemStack.getItem, null)
|
||||
case 1 =>
|
||||
return true
|
||||
case 2 =>
|
||||
return itemStack.getItem eq QuantumContent.itemUranium
|
||||
case 3 =>
|
||||
return itemStack.getItem eq QuantumContent.itemUranium
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
override def canExtractItem(slotID: Int, itemstack: ItemStack, j: Int): Boolean =
|
||||
{
|
||||
return slotID == 2 || slotID == 3
|
||||
|
|
|
@ -120,6 +120,8 @@ class TileReactorCell extends TileInventory(Material.iron) with IMultiBlockStruc
|
|||
return lowest
|
||||
}
|
||||
|
||||
override def getMultiBlock: MultiBlockHandler[TileReactorCell] = multiBlock
|
||||
|
||||
override def update()
|
||||
{
|
||||
super.update()
|
||||
|
@ -202,9 +204,10 @@ class TileReactorCell extends TileInventory(Material.iron) with IMultiBlockStruc
|
|||
*/
|
||||
val controlRodCount = ForgeDirection.VALID_DIRECTIONS.map(toVectorWorld + _).count(_.getBlock == QuantumContent.blockControlRod)
|
||||
ThermalGrid.addHeat(toVectorWorld, internalEnergy / ((controlRodCount + 1) * 0.3))
|
||||
|
||||
val temperature = ThermalGrid.getTemperature(toVectorWorld)
|
||||
|
||||
internalEnergy = 0
|
||||
|
||||
/**
|
||||
* Play sound effects
|
||||
*/
|
||||
|
@ -227,9 +230,8 @@ class TileReactorCell extends TileInventory(Material.iron) with IMultiBlockStruc
|
|||
|
||||
if (temperature > TileReactorCell.meltingPoint)
|
||||
{
|
||||
meltDown()
|
||||
// meltDown()
|
||||
}
|
||||
internalEnergy = 0
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -248,17 +250,6 @@ class TileReactorCell extends TileInventory(Material.iron) with IMultiBlockStruc
|
|||
return worldObj
|
||||
}
|
||||
|
||||
private def meltDown()
|
||||
{
|
||||
if (!worldObj.isRemote)
|
||||
{
|
||||
this.worldObj.setBlock(this.xCoord, this.yCoord, this.zCoord, Blocks.lava)
|
||||
//val reactorExplosion: ReactorExplosion = new ReactorExplosion(worldObj, null, xCoord, yCoord, zCoord, 9f)
|
||||
//reactorExplosion.doExplosionA
|
||||
//reactorExplosion.doExplosionB(true)
|
||||
}
|
||||
}
|
||||
|
||||
def onMultiBlockChanged()
|
||||
{
|
||||
}
|
||||
|
@ -294,8 +285,6 @@ class TileReactorCell extends TileInventory(Material.iron) with IMultiBlockStruc
|
|||
getMultiBlock.load(nbt)
|
||||
}
|
||||
|
||||
override def getMultiBlock: MultiBlockHandler[TileReactorCell] = multiBlock
|
||||
|
||||
override def writeToNBT(nbt: NBTTagCompound)
|
||||
{
|
||||
super.writeToNBT(nbt)
|
||||
|
@ -452,4 +441,13 @@ class TileReactorCell extends TileInventory(Material.iron) with IMultiBlockStruc
|
|||
|
||||
return false
|
||||
}
|
||||
|
||||
private def meltDown()
|
||||
{
|
||||
if (!world.isRemote)
|
||||
{
|
||||
world.setBlock(this.xCoord, this.yCoord, this.zCoord, Blocks.lava)
|
||||
world.createExplosion(null, x + 0.5, y + 0.5, z + 0.5, 3, false)
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue