Even more mass refactor

This commit is contained in:
Calclavia 2015-01-26 20:28:38 +08:00
parent 6bbff66710
commit f8cab1b595
55 changed files with 292 additions and 292 deletions

View File

@ -7,8 +7,8 @@ import net.minecraft.item.ItemStack
import net.minecraft.nbt.NBTTagCompound
import net.minecraftforge.common.util.ForgeDirection
import resonantengine.api.tile.{IFilterable, IRotatable}
import resonantengine.lib.prefab.tile.mixed.TileInventory
import resonantengine.lib.transform.vector.Vector3
import resonantengine.prefab.block.mixed.TileInventory
object TileFilterable
{

View File

@ -21,8 +21,8 @@ import net.minecraftforge.common.util.ForgeDirection
import org.lwjgl.opengl.GL11
import resonantengine.api.network.IPacketReceiver
import resonantengine.core.ResonantEngine
import resonantengine.lib.network.discriminator.{PacketTile, PacketType}
import resonantengine.lib.prefab.tile.spatial.{ResonantBlock, ResonantTile}
import resonantengine.core.network.discriminator.{PacketTile, PacketType}
import resonantengine.lib.modcontent.block.{ResonantBlock, ResonantTile}
import resonantengine.lib.render.RenderItemOverlayUtility
import resonantengine.lib.transform.vector.{Vector2, Vector3}
import resonantengine.lib.utility.inventory.InventoryUtility
@ -61,16 +61,6 @@ class TileImprinter extends ResonantTile(Material.circuits) with ISidedInventory
nbt.setTag("Items", var2)
}
def getSizeInventory: Int =
{
return this.inventory.length
}
def getStackInSlot(slot: Int): ItemStack =
{
return this.inventory(slot)
}
def read(data: ByteBuf, player: EntityPlayer, `type`: PacketType)
{
try
@ -170,19 +160,12 @@ class TileImprinter extends ResonantTile(Material.circuits) with ISidedInventory
}
}
/**
* Sets the given item stack to the specified slot in the inventory (can be crafting or armor
* sections).
*/
def setInventorySlotContents(slot: Int, itemStack: ItemStack)
def openInventory
{
if (slot < this.getSizeInventory)
{
inventory(slot) = itemStack
}
this.onInventoryChanged
}
def openInventory
def closeInventory
{
this.onInventoryChanged
}
@ -245,11 +228,6 @@ class TileImprinter extends ResonantTile(Material.circuits) with ISidedInventory
}
}
def closeInventory
{
this.onInventoryChanged
}
def getInventoryStackLimit: Int =
{
return 64
@ -270,16 +248,16 @@ class TileImprinter extends ResonantTile(Material.circuits) with ISidedInventory
return this.isItemValidForSlot(slot, itemstack)
}
def isItemValidForSlot(i: Int, itemstack: ItemStack): Boolean =
{
return true
}
def canExtractItem(slot: Int, itemstack: ItemStack, side: Int): Boolean =
{
return this.isItemValidForSlot(slot, itemstack)
}
def isItemValidForSlot(i: Int, itemstack: ItemStack): Boolean =
{
return true
}
override def renderDynamic(position: Vector3, frame: Float, pass: Int)
{
GL11.glPushMatrix
@ -396,6 +374,28 @@ class TileImprinter extends ResonantTile(Material.circuits) with ISidedInventory
return false
}
def getStackInSlot(slot: Int): ItemStack =
{
return this.inventory(slot)
}
/**
* Sets the given item stack to the specified slot in the inventory (can be crafting or armor
* sections).
*/
def setInventorySlotContents(slot: Int, itemStack: ItemStack)
{
if (slot < this.getSizeInventory)
{
inventory(slot) = itemStack
}
}
def getSizeInventory: Int =
{
return this.inventory.length
}
override def onNeighborChanged(block: Block)
{
val b: Block = toVectorWorld.add(ForgeDirection.getOrientation(1)).getBlock

View File

@ -10,9 +10,9 @@ import net.minecraft.util.IIcon
import net.minecraft.world.{IBlockAccess, World}
import net.minecraftforge.common.util.ForgeDirection
import resonantengine.api.tile.IRotatable
import resonantengine.lib.prefab.tile.spatial.ResonantBlock
import resonantengine.lib.prefab.tile.traits.TRotatable
import resonantengine.lib.modcontent.block.ResonantBlock
import resonantengine.lib.transform.vector.Vector3
import resonantengine.prefab.block.traits.TRotatable
object TileTurntable
{

View File

@ -24,22 +24,22 @@ import net.minecraftforge.common.util.ForgeDirection
import net.minecraftforge.oredict.OreDictionary
import org.apache.commons.lang3.ArrayUtils
import org.lwjgl.opengl.GL11
import resonantengine.api.gui.ISlotPickResult
import resonantengine.api.edx.recipe.{MachineRecipes, RecipeResource, RecipeType}
import resonantengine.api.gui.ISlotPickResult
import resonantengine.api.network.IPacketReceiver
import resonantengine.api.tile.IRotatable
import resonantengine.core.ResonantEngine
import resonantengine.core.network.discriminator.{PacketTile, PacketType}
import resonantengine.lib.collection.Pair
import resonantengine.lib.network.discriminator.{PacketTile, PacketType}
import resonantengine.lib.prefab.gui.ContainerDummy
import resonantengine.lib.prefab.tile.item.ItemBlockSaved
import resonantengine.lib.prefab.tile.mixed.TileInventory
import resonantengine.lib.render.RenderItemOverlayUtility
import resonantengine.lib.transform.region.Cuboid
import resonantengine.lib.transform.vector.{Vector2, Vector3}
import resonantengine.lib.utility.LanguageUtility
import resonantengine.lib.utility.inventory.AutoCraftingManager.IAutoCrafter
import resonantengine.lib.utility.inventory.{AutoCraftingManager, InventoryUtility}
import resonantengine.prefab.block.itemblock.ItemBlockSaved
import resonantengine.prefab.block.mixed.TileInventory
import scala.collection.JavaConversions._
@ -252,44 +252,6 @@ class TileEngineeringTable extends TileInventory(Material.wood) with IPacketRece
return inventoryCrafting
}
/**
* DO NOT USE THIS INTERNALLY. FOR EXTERNAL USE ONLY!
*/
override def getStackInSlot(slot: Int): ItemStack =
{
if (slot < TileEngineeringTable.CRAFTING_MATRIX_END)
{
return this.craftingMatrix(slot)
}
else if (slot < TileEngineeringTable.CRAFTING_OUTPUT_END)
{
return outputInventory(slot - TileEngineeringTable.CRAFTING_MATRIX_END)
}
else if (slot < TileEngineeringTable.PLAYER_OUTPUT_END && invPlayer != null)
{
return this.invPlayer.getStackInSlot(slot - TileEngineeringTable.CRAFTING_OUTPUT_END)
}
else if (searchInventories)
{
var idDisplacement: Int = TileEngineeringTable.PLAYER_OUTPUT_END
for (dir <- ForgeDirection.VALID_DIRECTIONS)
{
val tile: TileEntity = toVectorWorld.add(dir).getTileEntity
if (tile.isInstanceOf[IInventory])
{
val inventory: IInventory = tile.asInstanceOf[IInventory]
val slotID: Int = slot - idDisplacement
if (slotID >= 0 && slotID < inventory.getSizeInventory)
{
return inventory.getStackInSlot(slotID)
}
idDisplacement += inventory.getSizeInventory
}
}
}
return null
}
override def use(player: EntityPlayer, hitSide: Int, hit: Vector3): Boolean =
{
if (player.getCurrentEquippedItem != null && player.getCurrentEquippedItem.getItem.isInstanceOf[ItemHammer])
@ -621,6 +583,44 @@ class TileEngineeringTable extends TileInventory(Material.wood) with IPacketRece
return slot == optimalSlot
}
/**
* DO NOT USE THIS INTERNALLY. FOR EXTERNAL USE ONLY!
*/
override def getStackInSlot(slot: Int): ItemStack =
{
if (slot < TileEngineeringTable.CRAFTING_MATRIX_END)
{
return this.craftingMatrix(slot)
}
else if (slot < TileEngineeringTable.CRAFTING_OUTPUT_END)
{
return outputInventory(slot - TileEngineeringTable.CRAFTING_MATRIX_END)
}
else if (slot < TileEngineeringTable.PLAYER_OUTPUT_END && invPlayer != null)
{
return this.invPlayer.getStackInSlot(slot - TileEngineeringTable.CRAFTING_OUTPUT_END)
}
else if (searchInventories)
{
var idDisplacement: Int = TileEngineeringTable.PLAYER_OUTPUT_END
for (dir <- ForgeDirection.VALID_DIRECTIONS)
{
val tile: TileEntity = toVectorWorld.add(dir).getTileEntity
if (tile.isInstanceOf[IInventory])
{
val inventory: IInventory = tile.asInstanceOf[IInventory]
val slotID: Int = slot - idDisplacement
if (slotID >= 0 && slotID < inventory.getSizeInventory)
{
return inventory.getStackInSlot(slotID)
}
idDisplacement += inventory.getSizeInventory
}
}
}
return null
}
override def canExtractItem(slot: Int, itemstack: ItemStack, side: Int): Boolean =
{
val outputStack: ItemStack = getStackInSlot(TileEngineeringTable.CRAFTING_MATRIX_END)

View File

@ -15,9 +15,9 @@ import net.minecraft.world.IBlockAccess
import net.minecraftforge.common.util.ForgeDirection
import net.minecraftforge.fluids.{Fluid, FluidContainerRegistry, FluidRegistry, FluidStack}
import resonantengine.lib.mod.config.Config
import resonantengine.lib.prefab.tile.traits.TRotatable
import resonantengine.lib.transform.vector.Vector3
import resonantengine.lib.utility.FluidUtility
import resonantengine.prefab.block.traits.TRotatable
object TileGrate
{

View File

@ -12,14 +12,14 @@ import net.minecraftforge.client.model.AdvancedModelLoader
import net.minecraftforge.oredict.OreDictionary
import org.lwjgl.opengl.GL11
import resonantengine.api.edx.recipe.{MachineRecipes, RecipeType}
import resonantengine.core.network.discriminator.PacketType
import resonantengine.lib.content.prefab.TInventory
import resonantengine.lib.network.discriminator.PacketType
import resonantengine.prefab.network.{TPacketReceiver, TPacketSender}
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.modcontent.block.ResonantTile
import resonantengine.lib.render.{RenderItemOverlayUtility, RenderUtility}
import resonantengine.lib.transform.vector.Vector3
import resonantengine.lib.utility.inventory.InventoryUtility
import resonantengine.lib.wrapper.ByteBufWrapper._
import resonantengine.prefab.network.{TPacketReceiver, TPacketSender}
/**
* The workbench is meant for manual ore and wood processing.

View File

@ -7,9 +7,9 @@ import net.minecraft.entity.player.EntityPlayer
import net.minecraft.item.ItemStack
import net.minecraft.world.World
import resonantengine.api.transform.vector.IVector3
import resonantengine.lib.prefab.tile.item.ItemBlockSaved
import resonantengine.lib.transform.vector.Vector3
import resonantengine.lib.utility.nbt.NBTUtility
import resonantengine.prefab.block.itemblock.ItemBlockSaved
/**
* The ItemBlock for the glass jar

View File

@ -19,12 +19,10 @@ import net.minecraftforge.client.IItemRenderer.ItemRenderType
import net.minecraftforge.client.model.AdvancedModelLoader
import org.lwjgl.opengl.GL11
import resonantengine.api.item.ISimpleItemRenderer
import resonantengine.core.network.discriminator.PacketType
import resonantengine.lib.factory.resources.ResourceFactory
import resonantengine.lib.factory.resources.item.TItemResource
import resonantengine.lib.network.discriminator.PacketType
import resonantengine.prefab.network.{TPacketReceiver, TPacketSender}
import resonantengine.lib.prefab.tile.item.ItemBlockSaved
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.modcontent.block.ResonantTile
import resonantengine.lib.render.RenderUtility
import resonantengine.lib.render.model.ModelCube
import resonantengine.lib.transform.region.Cuboid
@ -32,6 +30,8 @@ import resonantengine.lib.transform.vector.{Vector3, VectorWorld}
import resonantengine.lib.utility.inventory.InventoryUtility
import resonantengine.lib.utility.nbt.NBTUtility
import resonantengine.lib.wrapper.ByteBufWrapper._
import resonantengine.prefab.block.itemblock.ItemBlockSaved
import resonantengine.prefab.network.{TPacketReceiver, TPacketSender}
/**
* A glass jar for mixing different dusts/refined together.
@ -112,6 +112,20 @@ class TileGlassJar extends ResonantTile(Material.wood) with TPacketReceiver with
GL11.glPopMatrix()
}
@SideOnly(Side.CLIENT)
override def renderDynamic(pos: Vector3, frame: Float, pass: Int)
{
GL11.glPushMatrix()
GL11.glTranslated(pos.x + 0.5, pos.y + 0.5, pos.z + 0.5)
renderMixture()
GL11.glPopMatrix()
GL11.glPushMatrix()
GL11.glTranslated(pos.x + 0.5, pos.y + 0.8, pos.z + 0.5)
renderJar()
GL11.glPopMatrix()
}
def renderMixture(itemStack: ItemStack = null)
{
val alloy: Alloy =
@ -179,20 +193,6 @@ class TileGlassJar extends ResonantTile(Material.wood) with TPacketReceiver with
RenderUtility.disableBlending()
}
@SideOnly(Side.CLIENT)
override def renderDynamic(pos: Vector3, frame: Float, pass: Int)
{
GL11.glPushMatrix()
GL11.glTranslated(pos.x + 0.5, pos.y + 0.5, pos.z + 0.5)
renderMixture()
GL11.glPopMatrix()
GL11.glPushMatrix()
GL11.glTranslated(pos.x + 0.5, pos.y + 0.8, pos.z + 0.5)
renderJar()
GL11.glPopMatrix()
}
@SideOnly(Side.CLIENT)
override protected def getTextureName: String = textureName

View File

@ -7,13 +7,13 @@ import net.minecraft.entity.player.EntityPlayer
import net.minecraft.item.{EnumAction, ItemStack}
import net.minecraft.world.World
import resonantengine.api.edx.recipe.{MachineRecipes, RecipeType}
import resonantengine.lib.prefab.tile.item.ItemBlockSaved
import resonantengine.lib.render.EnumColor
import resonantengine.lib.transform.vector.Vector3
import resonantengine.lib.utility.inventory.{ExternalInventory, InventoryUtility}
import resonantengine.lib.utility.nbt.NBTUtility
import resonantengine.lib.wrapper.CollectionWrapper._
import resonantengine.lib.wrapper.StringWrapper._
import resonantengine.prefab.block.itemblock.ItemBlockSaved
/**
* The ItemBlock for the glass jar

View File

@ -15,16 +15,16 @@ import net.minecraftforge.client.IItemRenderer.ItemRenderType
import net.minecraftforge.client.model.AdvancedModelLoader
import org.lwjgl.opengl.GL11
import resonantengine.api.item.ISimpleItemRenderer
import resonantengine.core.network.discriminator.PacketType
import resonantengine.lib.content.prefab.TInventory
import resonantengine.lib.network.discriminator.PacketType
import resonantengine.prefab.network.{TPacketReceiver, TPacketSender}
import resonantengine.lib.prefab.tile.item.ItemBlockSaved
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.modcontent.block.ResonantTile
import resonantengine.lib.render.{RenderItemOverlayUtility, RenderUtility}
import resonantengine.lib.transform.region.Cuboid
import resonantengine.lib.transform.vector.Vector3
import resonantengine.lib.utility.inventory.InventoryUtility
import resonantengine.lib.wrapper.ByteBufWrapper._
import resonantengine.prefab.block.itemblock.ItemBlockSaved
import resonantengine.prefab.network.{TPacketReceiver, TPacketSender}
object TileSieve
{

View File

@ -10,11 +10,11 @@ import net.minecraftforge.common.util.ForgeDirection
import net.minecraftforge.fluids._
import resonantengine.api.edx.recipe.{MachineRecipes, RecipeResource, RecipeType}
import resonantengine.api.network.IPacketReceiver
import resonantengine.lib.network.discriminator.{PacketTile, PacketType}
import resonantengine.lib.prefab.tile.mixed.TileInventory
import resonantengine.core.network.discriminator.{PacketTile, PacketType}
import resonantengine.lib.transform.vector.Vector3
import resonantengine.lib.utility.FluidUtility
import resonantengine.lib.utility.inventory.InventoryUtility
import resonantengine.prefab.block.mixed.TileInventory
/**
* Turns molten fuilds into ingots.

View File

@ -18,18 +18,18 @@ import net.minecraft.util.IIcon
import net.minecraftforge.common.MinecraftForge
import net.minecraftforge.common.util.ForgeDirection
import net.minecraftforge.fluids._
import resonantengine.core.network.discriminator.PacketType
import resonantengine.lib.content.prefab.{TIO, TInventory}
import resonantengine.lib.grid.core.TBlockNodeProvider
import resonantengine.lib.grid.energy.EnergyStorage
import resonantengine.lib.grid.energy.electric.NodeElectricComponent
import resonantengine.lib.grid.thermal.{BoilEvent, ThermalPhysics}
import resonantengine.lib.network.discriminator.PacketType
import resonantengine.prefab.network.{TPacketReceiver, TPacketSender}
import resonantengine.lib.prefab.tile.spatial.{ResonantBlock, ResonantTile}
import resonantengine.lib.modcontent.block.{ResonantBlock, ResonantTile}
import resonantengine.lib.transform.vector.Vector3
import resonantengine.lib.utility.FluidUtility
import resonantengine.lib.wrapper.ByteBufWrapper._
import resonantengine.lib.wrapper.CollectionWrapper._
import resonantengine.prefab.network.{TPacketReceiver, TPacketSender}
/**
* Meant to replace the furnace class.

View File

@ -11,14 +11,14 @@ import net.minecraft.item.crafting.FurnaceRecipes
import net.minecraft.nbt.NBTTagCompound
import net.minecraft.util.IIcon
import net.minecraft.world.IBlockAccess
import resonantengine.core.network.discriminator.PacketType
import resonantengine.lib.content.prefab.TInventory
import resonantengine.lib.network.discriminator.PacketType
import resonantengine.prefab.network.{TPacketReceiver, TPacketSender}
import resonantengine.lib.prefab.tile.spatial.{ResonantBlock, ResonantTile}
import resonantengine.lib.modcontent.block.{ResonantBlock, ResonantTile}
import resonantengine.lib.transform.region.Cuboid
import resonantengine.lib.transform.vector.{Vector2, Vector3}
import resonantengine.lib.wrapper.ByteBufWrapper._
import resonantengine.lib.wrapper.RandomWrapper._
import resonantengine.prefab.network.{TPacketReceiver, TPacketSender}
/**
* For smelting items.
@ -85,22 +85,6 @@ class TileHotPlate extends ResonantTile(Material.iron) with TInventory with TPac
}
}
def canSmelt(stack: ItemStack): Boolean = stack != null && FurnaceRecipes.smelting.getSmeltingResult(stack) != null
def canRun: Boolean =
{
val tileEntity = worldObj.getTileEntity(xCoord, yCoord - 1, zCoord)
if (tileEntity.isInstanceOf[TileFirebox])
{
if ((tileEntity.asInstanceOf[TileFirebox]).isBurning)
{
return true
}
}
return false
}
override def randomDisplayTick()
{
val height = 0.2
@ -133,13 +117,13 @@ class TileHotPlate extends ResonantTile(Material.iron) with TInventory with TPac
return smeltTime(i)
}
override def getSizeInventory: Int = 4
override def isItemValidForSlot(i: Int, itemStack: ItemStack): Boolean =
{
return i < getSizeInventory && canSmelt(itemStack)
}
def canSmelt(stack: ItemStack): Boolean = stack != null && FurnaceRecipes.smelting.getSmeltingResult(stack) != null
override def write(buf: ByteBuf, id: Int)
{
super.write(buf, id)
@ -173,6 +157,8 @@ class TileHotPlate extends ResonantTile(Material.iron) with TInventory with TPac
}
override def getSizeInventory: Int = 4
@SideOnly(Side.CLIENT)
override def registerIcons(iconReg: IIconRegister)
{
@ -189,6 +175,20 @@ class TileHotPlate extends ResonantTile(Material.iron) with TInventory with TPac
return if (access.getBlockMetadata(xi, yi, zi) == 1) ResonantBlock.icon.get("electricHotPlate") else (if (canRun) ResonantBlock.icon.get("hotPlate_on") else ResonantBlock.icon.get(getTextureName))
}
def canRun: Boolean =
{
val tileEntity = worldObj.getTileEntity(xCoord, yCoord - 1, zCoord)
if (tileEntity.isInstanceOf[TileFirebox])
{
if ((tileEntity.asInstanceOf[TileFirebox]).isBurning)
{
return true
}
}
return false
}
@SideOnly(Side.CLIENT)
override def getIcon(side: Int, meta: Int): IIcon =
{

View File

@ -5,12 +5,12 @@ import net.minecraft.block.material.Material
import net.minecraft.nbt.NBTTagCompound
import net.minecraftforge.common.util.ForgeDirection
import net.minecraftforge.fluids._
import resonantengine.core.network.discriminator.PacketType
import resonantengine.lib.grid.core.TBlockNodeProvider
import resonantengine.lib.network.discriminator.PacketType
import resonantengine.prefab.network.{TPacketReceiver, TPacketSender}
import resonantengine.lib.modcontent.block.ResonantTile
import resonantengine.lib.prefab.fluid.NodeFluid
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.wrapper.ByteBufWrapper._
import resonantengine.prefab.network.{TPacketReceiver, TPacketSender}
/**
* A prefab class for tiles that use the fluid network.
@ -33,20 +33,6 @@ abstract class TileFluidProvider(material: Material) extends ResonantTile(materi
}
}
def fluidNode = _fluidNode
def fluidNode_=(newNode: NodeFluid)
{
_fluidNode = newNode
fluidNode.onConnectionChanged = () =>
{
clientRenderMask = fluidNode.connectedMask
sendPacket(0)
}
fluidNode.onFluidChanged = () => if (!world.isRemote) sendPacket(1)
nodes.add(fluidNode)
}
override def write(buf: ByteBuf, id: Int)
{
super.write(buf, id)
@ -66,6 +52,20 @@ abstract class TileFluidProvider(material: Material) extends ResonantTile(materi
}
}
def fluidNode = _fluidNode
def fluidNode_=(newNode: NodeFluid)
{
_fluidNode = newNode
fluidNode.onConnectionChanged = () =>
{
clientRenderMask = fluidNode.connectedMask
sendPacket(0)
}
fluidNode.onFluidChanged = () => if (!world.isRemote) sendPacket(1)
nodes.add(fluidNode)
}
override def read(buf: ByteBuf, id: Int, packet: PacketType)
{
super.read(buf, id, packet)

View File

@ -4,9 +4,9 @@ import codechicken.multipart.{TMultiPart, TileMultipart}
import io.netty.buffer.ByteBuf
import io.netty.channel.ChannelHandlerContext
import net.minecraft.entity.player.EntityPlayer
import resonantengine.lib.network.discriminator.PacketType
import resonantengine.prefab.network.TPacketReceiver
import resonantengine.core.network.discriminator.PacketType
import resonantengine.lib.transform.vector.Vector3
import resonantengine.prefab.network.TPacketReceiver
/**
* Packet handler for blocks and tile entities.
@ -57,11 +57,6 @@ class PacketMultiPart extends PacketType
handle(player)
}
override def handleServerSide(player: EntityPlayer)
{
handle(player)
}
def handle(player: EntityPlayer)
{
val tile = player.getEntityWorld.getTileEntity(this.x, this.y, this.z)
@ -80,4 +75,9 @@ class PacketMultiPart extends PacketType
throw new UnsupportedOperationException("Packet was sent to a multipart not implementing IPacketReceiver, this is a coding error [" + tile + "] in " + new Vector3(x, y, z))
}
}
override def handleServerSide(player: EntityPlayer)
{
handle(player)
}
}

View File

@ -5,7 +5,7 @@ import codechicken.multipart.{IRedstonePart, TMultiPart}
import edx.core.ResonantPartFactory
import net.minecraft.item.ItemStack
import net.minecraft.util.MovingObjectPosition
import resonantengine.lib.prefab.tile.traits.TTicker
import resonantengine.prefab.block.traits.TTicker
import scala.collection.convert.wrapAll._
import scala.collection.mutable

View File

@ -9,9 +9,9 @@ import net.minecraft.client.renderer.texture.IIconRegister
import net.minecraft.creativetab.CreativeTabs
import net.minecraft.item.{Item, ItemStack}
import net.minecraft.util.IIcon
import resonantengine.lib.prefab.tile.item.ItemBlockMetadata
import resonantengine.lib.prefab.tile.spatial.ResonantBlock
import resonantengine.lib.modcontent.block.ResonantBlock
import resonantengine.lib.wrapper.CollectionWrapper._
import resonantengine.prefab.block.itemblock.ItemBlockMetadata
/**
* A block used to build machines or decoration.

View File

@ -3,7 +3,7 @@ package edx.core.resource.content
import edx.core.Reference
import net.minecraft.block.material.Material
import net.minecraft.nbt.NBTTagCompound
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.modcontent.block.ResonantTile
import resonantengine.lib.transform.region.Cuboid
/**

View File

@ -25,7 +25,7 @@ import net.minecraft.util.ResourceLocation
import net.minecraftforge.client.event.TextureStitchEvent
import net.minecraftforge.common.MinecraftForge
import net.minecraftforge.oredict.{OreDictionary, ShapelessOreRecipe}
import resonantengine.api.modcontent.ExplicitContentName
import resonantengine.lib.modcontent.ExplicitContentName
import resonantengine.lib.utility.recipe.UniversalRecipe
import resonantengine.prefab.modcontent.ContentHolder

View File

@ -16,18 +16,18 @@ import net.minecraftforge.client.model.AdvancedModelLoader
import net.minecraftforge.common.util.ForgeDirection
import org.lwjgl.opengl.GL11._
import resonantengine.api.item.ISimpleItemRenderer
import resonantengine.core.network.discriminator.PacketType
import resonantengine.lib.content.prefab.TIO
import resonantengine.lib.grid.core.TBlockNodeProvider
import resonantengine.lib.grid.energy.EnergyStorage
import resonantengine.lib.grid.energy.electric.NodeElectricComponent
import resonantengine.lib.network.discriminator.PacketType
import resonantengine.prefab.network.{TPacketReceiver, TPacketSender}
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.prefab.tile.traits.TEnergyProvider
import resonantengine.lib.modcontent.block.ResonantTile
import resonantengine.lib.render.RenderUtility
import resonantengine.lib.transform.vector.Vector3
import resonantengine.lib.utility.science.UnitDisplay
import resonantengine.lib.wrapper.ByteBufWrapper._
import resonantengine.prefab.block.traits.TEnergyProvider
import resonantengine.prefab.network.{TPacketReceiver, TPacketSender}
/** A modular battery box that allows shared connections with boxes next to it.
*
@ -69,15 +69,6 @@ class TileBattery extends ResonantTile(Material.iron) with TIO with TBlockNodePr
updateConnectionMask()
}
def updateConnectionMask()
{
electricNode.setPositives(getInputDirections())
electricNode.setNegatives(getOutputDirections())
electricNode.reconstruct()
markUpdate()
notifyChange()
}
override def update()
{
super.update()
@ -141,6 +132,15 @@ class TileBattery extends ResonantTile(Material.iron) with TIO with TBlockNodePr
updateConnectionMask()
}
def updateConnectionMask()
{
electricNode.setPositives(getInputDirections())
electricNode.setNegatives(getOutputDirections())
electricNode.reconstruct()
markUpdate()
notifyChange()
}
override def onPlaced(entityLiving: EntityLivingBase, itemStack: ItemStack)
{
if (!world.isRemote && itemStack.getItem.isInstanceOf[ItemBlockBattery])

View File

@ -13,10 +13,10 @@ import org.lwjgl.opengl.GL11
import resonantengine.lib.content.prefab.TIO
import resonantengine.lib.grid.core.TBlockNodeProvider
import resonantengine.lib.grid.energy.electric.NodeElectricComponent
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.prefab.tile.traits.TRotatable
import resonantengine.lib.modcontent.block.ResonantTile
import resonantengine.lib.render.RenderUtility
import resonantengine.lib.transform.vector.Vector3
import resonantengine.prefab.block.traits.TRotatable
/**
* A kinetic energy to electrical energy converter.

View File

@ -9,7 +9,7 @@ import net.minecraftforge.common.util.ForgeDirection
import resonantengine.lib.content.prefab.TIO
import resonantengine.lib.grid.core.TBlockNodeProvider
import resonantengine.lib.grid.energy.electric.NodeElectricComponent
import resonantengine.lib.prefab.tile.spatial.{ResonantBlock, ResonantTile}
import resonantengine.lib.modcontent.block.{ResonantBlock, ResonantTile}
import resonantengine.lib.render.block.RenderConnectedTexture
import resonantengine.lib.transform.region.Cuboid

View File

@ -10,7 +10,7 @@ import net.minecraftforge.common.util.ForgeDirection
import resonantengine.lib.content.prefab.TIO
import resonantengine.lib.grid.core.TBlockNodeProvider
import resonantengine.lib.grid.energy.electric.NodeElectricComponent
import resonantengine.lib.prefab.tile.spatial.{ResonantBlock, ResonantTile}
import resonantengine.lib.modcontent.block.{ResonantBlock, ResonantTile}
import scala.collection.convert.wrapAll._

View File

@ -23,8 +23,8 @@ import net.minecraftforge.fluids.{FluidTankInfo, IFluidHandler}
import resonantengine.api.graph.INodeProvider
import resonantengine.api.network.IPacketReceiver
import resonantengine.api.tile.IRemovable
import resonantengine.core.network.discriminator.PacketType
import resonantengine.lib.mod.compat.energy.Compatibility
import resonantengine.lib.network.discriminator.PacketType
import resonantengine.lib.transform.vector.Vector3
import resonantengine.lib.utility.WrenchUtility
@ -54,6 +54,21 @@ class PartMultimeter extends PartFace with IRedstonePart with IPacketReceiver wi
getGrid.remove(this)
}
def getGrid: GridMultimeter =
{
if (grid == null)
{
grid = new GridMultimeter
grid.add(this)
}
return grid
}
def setGrid(network: GridMultimeter)
{
grid = network
}
def updateDesc()
{
writeDesc(getWriteStream)
@ -237,37 +252,22 @@ class PartMultimeter extends PartFace with IRedstonePart with IPacketReceiver wi
updateServer
}
def updateServer
{
}
def toggleMode
{
detectMode = DetectModes((detectMode.id + 1) % DetectModes.values.size).asInstanceOf[DetectModes.DetectMode]
updateServer
}
def updateServer
{
}
def toggleDetectionValue
{
detectType = ((detectType + 1) % getGrid.graphs.size).asInstanceOf[Byte]
updateServer
}
def getGrid: GridMultimeter =
{
if (grid == null)
{
grid = new GridMultimeter
grid.add(this)
}
return grid
}
def setGrid(network: GridMultimeter)
{
grid = network
}
override def load(nbt: NBTTagCompound)
{
super.load(nbt)

View File

@ -17,18 +17,18 @@ import net.minecraft.tileentity.TileEntity
import net.minecraft.util.ChatComponentText
import net.minecraft.world.World
import net.minecraftforge.common.util.ForgeDirection
import resonantengine.core.network.discriminator.{PacketTile, PacketType}
import resonantengine.lib.content.prefab.TIO
import resonantengine.lib.grid.core.TBlockNodeProvider
import resonantengine.lib.grid.energy.EnergyStorage
import resonantengine.lib.grid.energy.electric.NodeElectricComponent
import resonantengine.lib.network.discriminator.{PacketTile, PacketType}
import resonantengine.prefab.network.{TPacketReceiver, TPacketSender}
import resonantengine.lib.prefab.tile.multiblock.reference.{IMultiBlockStructure, MultiBlockHandler}
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.prefab.tile.traits.TEnergyProvider
import resonantengine.lib.modcontent.block.ResonantTile
import resonantengine.lib.render.EnumColor
import resonantengine.lib.transform.vector.{Vector3, VectorWorld}
import resonantengine.lib.utility.{LanguageUtility, LinkUtility}
import resonantengine.prefab.block.multiblock.reference.{IMultiBlockStructure, MultiBlockHandler}
import resonantengine.prefab.block.traits.TEnergyProvider
import resonantengine.prefab.network.{TPacketReceiver, TPacketSender}
import scala.collection.JavaConversions._

View File

@ -18,9 +18,9 @@ import net.minecraft.util.{AxisAlignedBB, IIcon}
import net.minecraft.world.IBlockAccess
import net.minecraftforge.common.util.ForgeDirection
import resonantengine.core.ResonantEngine
import resonantengine.lib.network.discriminator.{PacketTile, PacketType}
import resonantengine.core.network.discriminator.{PacketTile, PacketType}
import resonantengine.lib.modcontent.block.ResonantBlock
import resonantengine.prefab.network.TPacketReceiver
import resonantengine.lib.prefab.tile.spatial.ResonantBlock
class TileDetector extends TileFilterable with TPacketReceiver
{

View File

@ -16,11 +16,11 @@ import net.minecraft.util.IIcon
import net.minecraft.world.IBlockAccess
import net.minecraftforge.common.util.ForgeDirection
import resonantengine.api.network.IPacketReceiver
import resonantengine.lib.network.discriminator.{PacketTile, PacketType}
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.prefab.tile.traits.TRotatable
import resonantengine.core.network.discriminator.{PacketTile, PacketType}
import resonantengine.lib.modcontent.block.ResonantTile
import resonantengine.lib.transform.vector.{Vector3, VectorWorld}
import resonantengine.lib.utility.inventory.InternalInventoryHandler
import resonantengine.prefab.block.traits.TRotatable
/**
* @author tgame14

View File

@ -13,15 +13,15 @@ import net.minecraft.util.{ChatComponentText, IIcon}
import net.minecraft.world.IBlockAccess
import net.minecraftforge.common.util.ForgeDirection
import org.lwjgl.opengl.GL11
import resonantengine.core.network.discriminator.PacketTile
import resonantengine.lib.content.prefab.TInventory
import resonantengine.lib.network.discriminator.PacketTile
import resonantengine.prefab.network.TPacketSender
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.prefab.tile.traits.TRotatable
import resonantengine.lib.modcontent.block.ResonantTile
import resonantengine.lib.render.RenderItemOverlayUtility
import resonantengine.lib.transform.vector.Vector3
import resonantengine.lib.utility.LanguageUtility
import resonantengine.lib.utility.inventory.{InternalInventoryHandler, InventoryUtility}
import resonantengine.prefab.block.traits.TRotatable
import resonantengine.prefab.network.TPacketSender
/**
* @author tgame14

View File

@ -5,13 +5,13 @@ import io.netty.buffer.ByteBuf
import net.minecraft.block.material.Material
import net.minecraft.entity.player.EntityPlayer
import net.minecraftforge.common.util.ForgeDirection
import resonantengine.core.network.discriminator.PacketType
import resonantengine.lib.grid.core.TBlockNodeProvider
import resonantengine.lib.network.discriminator.PacketType
import resonantengine.prefab.network.{TPacketReceiver, TPacketSender}
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.prefab.tile.traits.TRotatable
import resonantengine.lib.modcontent.block.ResonantTile
import resonantengine.lib.transform.vector.Vector3
import resonantengine.lib.wrapper.ByteBufWrapper._
import resonantengine.prefab.block.traits.TRotatable
import resonantengine.prefab.network.{TPacketReceiver, TPacketSender}
import scala.collection.convert.wrapAll._

View File

@ -2,8 +2,8 @@ package edx.mechanical.mech.gear
import codechicken.multipart.TileMultipart
import net.minecraftforge.common.util.ForgeDirection
import resonantengine.lib.prefab.tile.multiblock.reference.MultiBlockHandler
import resonantengine.lib.transform.vector.Vector3
import resonantengine.prefab.block.multiblock.reference.MultiBlockHandler
class GearMultiBlockHandler(wrapper: PartGear) extends MultiBlockHandler[PartGear](wrapper: PartGear)
{

View File

@ -16,8 +16,8 @@ import net.minecraft.util.MovingObjectPosition
import net.minecraft.world.World
import net.minecraftforge.common.util.ForgeDirection
import resonantengine.api.graph.node.INode
import resonantengine.lib.prefab.tile.multiblock.reference.IMultiBlockStructure
import resonantengine.lib.utility.WrenchUtility
import resonantengine.prefab.block.multiblock.reference.IMultiBlockStructure
/**
* We assume all the force acting on the gear is 90 degrees.
@ -96,6 +96,8 @@ class PartGear extends PartMechanical with IMultiBlockStructure[PartGear]
return (primaryPos.xi == x && placementSide.offsetX == 0) || (primaryPos.yi == y && placementSide.offsetY == 0) || (primaryPos.zi == z && placementSide.offsetZ == 0)
}
override def getMultiBlock: GearMultiBlockHandler = multiBlock
@SideOnly(Side.CLIENT)
override def renderDynamic(pos: Vector3, frame: Float, pass: Int)
{
@ -115,8 +117,6 @@ class PartGear extends PartMechanical with IMultiBlockStructure[PartGear]
getMultiBlock.save(nbt)
}
override def getMultiBlock: GearMultiBlockHandler = multiBlock
override def getMultiBlockVectors: java.util.List[resonantengine.lib.transform.vector.Vector3] = new resonantengine.lib.transform.vector.Vector3().getAround(this.world, placementSide, 1)
def getWorld: World =

View File

@ -12,10 +12,10 @@ import net.minecraft.nbt.NBTTagCompound
import net.minecraft.util.AxisAlignedBB
import net.minecraft.world.World
import net.minecraftforge.common.util.ForgeDirection
import resonantengine.lib.network.discriminator.PacketType
import resonantengine.lib.prefab.tile.multiblock.reference.IMultiBlockStructure
import resonantengine.core.network.discriminator.PacketType
import resonantengine.lib.transform.vector.Vector3
import resonantengine.lib.wrapper.ByteBufWrapper._
import resonantengine.prefab.block.multiblock.reference.IMultiBlockStructure
import scala.collection.JavaConversions._
@ -113,6 +113,11 @@ class TileTurbine extends TileMechanical(Material.wood) with IMultiBlockStructur
getMultiBlock.load(nbt)
}
def getMultiBlock: TurbineMBlockHandler =
{
return multiBlock
}
/** Writes a tile entity to NBT. */
override def writeToNBT(nbt: NBTTagCompound)
{
@ -122,11 +127,6 @@ class TileTurbine extends TileMechanical(Material.wood) with IMultiBlockStructur
getMultiBlock.save(nbt)
}
def getMultiBlock: TurbineMBlockHandler =
{
return multiBlock
}
override def read(buf: ByteBuf, id: Int, packetType: PacketType)
{
super.read(buf, id, packetType)

View File

@ -14,9 +14,9 @@ import net.minecraft.util.Vec3
import net.minecraft.world.IBlockAccess
import net.minecraftforge.common.util.ForgeDirection
import resonantengine.api.graph.INodeProvider
import resonantengine.lib.prefab.tile.item.ItemBlockMetadata
import resonantengine.lib.transform.vector.Vector3
import resonantengine.lib.wrapper.CollectionWrapper._
import resonantengine.prefab.block.itemblock.ItemBlockMetadata
/**
* The vertical water turbine collects flowing water flowing on X axis.

View File

@ -15,13 +15,13 @@ import net.minecraftforge.common.util.ForgeDirection
import net.minecraftforge.fluids.{Fluid, FluidStack, FluidTank, FluidTankInfo}
import org.lwjgl.opengl.GL11
import resonantengine.api.tile.IBoilHandler
import resonantengine.lib.prefab.tile.item.ItemBlockMetadata
import resonantengine.lib.render.RenderUtility
import resonantengine.lib.transform.vector.Vector3
import resonantengine.lib.utility.MathUtility
import resonantengine.lib.utility.inventory.InventoryUtility
import resonantengine.lib.wrapper.CollectionWrapper._
import resonantengine.lib.wrapper.NBTWrapper._
import resonantengine.prefab.block.itemblock.ItemBlockMetadata
/**
* The vertical wind turbine collects airflow.

View File

@ -1,8 +1,8 @@
package edx.mechanical.mech.turbine
import net.minecraft.tileentity.TileEntity
import resonantengine.lib.prefab.tile.multiblock.reference.MultiBlockHandler
import resonantengine.lib.transform.vector.Vector3
import resonantengine.prefab.block.multiblock.reference.MultiBlockHandler
class TurbineMBlockHandler(wrapper: TileTurbine) extends MultiBlockHandler[TileTurbine](wrapper)
{

View File

@ -36,10 +36,10 @@ import net.minecraftforge.fluids._
import net.minecraftforge.oredict.{OreDictionary, ShapelessOreRecipe}
import resonantengine.api.edx.recipe.QuantumAssemblerRecipes
import resonantengine.api.event.PlasmaEvent
import resonantengine.api.modcontent.ExplicitContentName
import resonantengine.api.tile.IElectromagnet
import resonantengine.lib.factory.resources.block.OreGenerator
import resonantengine.lib.grid.thermal.ThermalEvent
import resonantengine.lib.modcontent.ExplicitContentName
import resonantengine.lib.schematic.SchematicRegistry
import resonantengine.lib.transform.vector.VectorWorld
import resonantengine.lib.utility.recipe.UniversalRecipe

View File

@ -12,12 +12,12 @@ import net.minecraft.world.IBlockAccess
import net.minecraftforge.common.util.ForgeDirection
import org.lwjgl.opengl.GL11._
import resonantengine.api.tile.IElectromagnet
import resonantengine.lib.prefab.tile.item.ItemBlockMetadata
import resonantengine.lib.prefab.tile.spatial.ResonantBlock
import resonantengine.lib.modcontent.block.ResonantBlock
import resonantengine.lib.render.{RenderBlockUtility, RenderUtility}
import resonantengine.lib.transform.vector.Vector3
import resonantengine.lib.utility.WorldUtility
import resonantengine.lib.wrapper.CollectionWrapper._
import resonantengine.prefab.block.itemblock.ItemBlockMetadata
/**
* Electromagnet block

View File

@ -5,7 +5,7 @@ import net.minecraft.block.material.Material
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.world.World
import net.minecraftforge.common.util.ForgeDirection
import resonantengine.lib.prefab.tile.spatial.ResonantBlock
import resonantengine.lib.modcontent.block.ResonantBlock
import resonantengine.lib.transform.vector.Vector3
/**

View File

@ -15,10 +15,10 @@ import org.lwjgl.opengl.GL11
import org.lwjgl.opengl.GL11._
import resonantengine.lib.grid.core.TBlockNodeProvider
import resonantengine.lib.grid.energy.electric.NodeElectricComponent
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.prefab.tile.traits.TRotatable
import resonantengine.lib.modcontent.block.ResonantTile
import resonantengine.lib.render.RenderUtility
import resonantengine.lib.transform.vector.Vector3
import resonantengine.prefab.block.traits.TRotatable
import scala.collection.convert.wrapAll._

View File

@ -13,10 +13,10 @@ import net.minecraftforge.common.util.ForgeDirection
import org.lwjgl.opengl.GL11._
import resonantengine.lib.grid.core.TBlockNodeProvider
import resonantengine.lib.grid.energy.electric.NodeElectricComponent
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.prefab.tile.traits.TRotatable
import resonantengine.lib.modcontent.block.ResonantTile
import resonantengine.lib.render.RenderUtility
import resonantengine.lib.transform.vector.Vector3
import resonantengine.prefab.block.traits.TRotatable
import scala.collection.convert.wrapAll._

View File

@ -5,7 +5,7 @@ import net.minecraft.entity.EntityLivingBase
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.item.ItemStack
import net.minecraftforge.common.util.ForgeDirection
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.modcontent.block.ResonantTile
import resonantengine.lib.transform.vector.Vector3
/**

View File

@ -9,7 +9,7 @@ import net.minecraft.util.IIcon
import net.minecraftforge.common.util.ForgeDirection
import net.minecraftforge.fluids._
import resonantengine.api.tile.IBoilHandler
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.modcontent.block.ResonantTile
/**
* Funnel for gas.

View File

@ -13,14 +13,14 @@ import net.minecraft.nbt.NBTTagCompound
import net.minecraft.util.IIcon
import net.minecraftforge.common.util.ForgeDirection
import resonantengine.api.tile.{IElectromagnet, IRotatable}
import resonantengine.core.network.discriminator.{PacketTile, PacketType}
import resonantengine.lib.content.prefab.TInventory
import resonantengine.lib.grid.energy.EnergyStorage
import resonantengine.lib.network.discriminator.{PacketTile, PacketType}
import resonantengine.prefab.network.{TPacketReceiver, TPacketSender}
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.prefab.tile.traits.TEnergyProvider
import resonantengine.lib.modcontent.block.ResonantTile
import resonantengine.lib.transform.vector.Vector3
import resonantengine.lib.utility.BlockUtility
import resonantengine.prefab.block.traits.TEnergyProvider
import resonantengine.prefab.network.{TPacketReceiver, TPacketSender}
import scala.collection.JavaConversions._

View File

@ -12,14 +12,14 @@ import net.minecraftforge.common.util.ForgeDirection
import net.minecraftforge.fluids._
import resonantengine.api.network.IPacketReceiver
import resonantengine.core.ResonantEngine
import resonantengine.core.network.discriminator.{PacketTile, PacketType}
import resonantengine.lib.content.prefab.{TIO, TInventory}
import resonantengine.lib.grid.core.TBlockNodeProvider
import resonantengine.lib.grid.energy.EnergyStorage
import resonantengine.lib.grid.energy.electric.NodeElectricComponent
import resonantengine.lib.network.discriminator.{PacketTile, PacketType}
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.prefab.tile.traits.{TEnergyProvider, TRotatable}
import resonantengine.lib.modcontent.block.ResonantTile
import resonantengine.lib.transform.vector.Vector3
import resonantengine.prefab.block.traits.{TEnergyProvider, TRotatable}
/**
* Nuclear boiler TileEntity

View File

@ -12,15 +12,15 @@ import net.minecraft.tileentity.TileEntity
import net.minecraftforge.common.util.ForgeDirection
import net.minecraftforge.fluids._
import resonantengine.api.network.IPacketReceiver
import resonantengine.core.network.discriminator.{PacketTile, PacketType}
import resonantengine.lib.content.prefab.{TIO, TInventory}
import resonantengine.lib.grid.core.TBlockNodeProvider
import resonantengine.lib.grid.energy.EnergyStorage
import resonantengine.lib.grid.energy.electric.NodeElectricComponent
import resonantengine.lib.mod.compat.energy.Compatibility
import resonantengine.lib.network.discriminator.{PacketTile, PacketType}
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.prefab.tile.traits.{TEnergyProvider, TRotatable}
import resonantengine.lib.modcontent.block.ResonantTile
import resonantengine.lib.transform.vector.Vector3
import resonantengine.prefab.block.traits.{TEnergyProvider, TRotatable}
/**
* Centrifuge TileEntity

View File

@ -11,8 +11,8 @@ import net.minecraftforge.fluids._
import resonantengine.lib.content.prefab.TIO
import resonantengine.lib.grid.energy.EnergyStorage
import resonantengine.lib.mod.compat.energy.Compatibility
import resonantengine.lib.prefab.tile.traits.{TEnergyProvider, TRotatable}
import resonantengine.lib.transform.vector.Vector3
import resonantengine.prefab.block.traits.{TEnergyProvider, TRotatable}
/**
* Chemical extractor TileEntity

View File

@ -6,7 +6,7 @@ import net.minecraftforge.fluids.{FluidContainerRegistry, FluidStack, FluidTank}
import resonantengine.api.edx.recipe.{MachineRecipes, RecipeResource}
import resonantengine.lib.content.prefab.TInventory
import resonantengine.lib.grid.core.TBlockNodeProvider
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.modcontent.block.ResonantTile
/**
* General class for all machines that do traditional recipe processing

View File

@ -2,8 +2,8 @@ package edx.quantum.machine.fulmination
import net.minecraft.block.material.Material
import resonantengine.lib.grid.energy.EnergyStorage
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.prefab.tile.traits.TEnergyProvider
import resonantengine.lib.modcontent.block.ResonantTile
import resonantengine.prefab.block.traits.TEnergyProvider
/**
* Fulmination TileEntity

View File

@ -14,7 +14,7 @@ import net.minecraftforge.common.util.ForgeDirection
import resonantengine.api.event.PlasmaEvent
import resonantengine.lib.grid.thermal.GridThermal
import resonantengine.lib.mod.config.Config
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.modcontent.block.ResonantTile
import resonantengine.lib.transform.vector.Vector3
object TilePlasma

View File

@ -13,16 +13,16 @@ import net.minecraftforge.common.util.ForgeDirection
import net.minecraftforge.fluids._
import resonantengine.api.network.IPacketReceiver
import resonantengine.core.ResonantEngine
import resonantengine.core.network.discriminator.{PacketTile, PacketType}
import resonantengine.lib.grid.core.TBlockNodeProvider
import resonantengine.lib.grid.energy.EnergyStorage
import resonantengine.lib.grid.energy.electric.NodeElectricComponent
import resonantengine.lib.mod.config.Config
import resonantengine.lib.network.discriminator.{PacketTile, PacketType}
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.prefab.tile.traits.TEnergyProvider
import resonantengine.lib.modcontent.block.ResonantTile
import resonantengine.lib.transform.vector.Vector3
import resonantengine.lib.utility.science.UnitDisplay
import resonantengine.lib.utility.{FluidUtility, LanguageUtility}
import resonantengine.prefab.block.traits.TEnergyProvider
object TilePlasmaHeater
{

View File

@ -10,14 +10,14 @@ import net.minecraft.item.{Item, ItemStack}
import net.minecraft.nbt.NBTTagCompound
import resonantengine.api.edx.recipe.QuantumAssemblerRecipes
import resonantengine.api.network.IPacketReceiver
import resonantengine.core.network.discriminator.{PacketTile, PacketType}
import resonantengine.lib.content.prefab.TInventory
import resonantengine.lib.grid.core.TBlockNodeProvider
import resonantengine.lib.grid.energy.EnergyStorage
import resonantengine.lib.grid.energy.electric.NodeElectricComponent
import resonantengine.lib.network.discriminator.{PacketTile, PacketType}
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.prefab.tile.traits.TEnergyProvider
import resonantengine.lib.modcontent.block.ResonantTile
import resonantengine.lib.transform.vector.Vector3
import resonantengine.prefab.block.traits.TEnergyProvider
/**
* Atomic assembler of items *

View File

@ -8,11 +8,11 @@ import net.minecraft.item.ItemStack
import net.minecraft.nbt.NBTTagCompound
import net.minecraft.util.ChatComponentText
import net.minecraft.world.World
import resonantengine.lib.prefab.tile.item.ItemBlockSaved
import resonantengine.lib.transform.vector.Vector3
import resonantengine.lib.utility.LanguageUtility
import resonantengine.lib.utility.nbt.NBTUtility
import resonantengine.lib.wrapper.CollectionWrapper._
import resonantengine.prefab.block.itemblock.ItemBlockSaved
class ItemBlockThermometer(block: Block) extends ItemBlockSaved(block: Block)
{
@ -52,19 +52,6 @@ class ItemBlockThermometer(block: Block) extends ItemBlockSaved(block: Block)
return itemStack
}
def setSavedCoords(itemStack: ItemStack, position: Vector3)
{
val nbt: NBTTagCompound = NBTUtility.getNBTTagCompound(itemStack)
if (position != null)
{
nbt.setTag("trackCoordinate", position.writeNBT(new NBTTagCompound))
}
else
{
nbt.removeTag("trackCoordinate")
}
}
override def onItemUse(itemStack: ItemStack, player: EntityPlayer, world: World, x: Int, y: Int, z: Int, par7: Int, par8: Float, par9: Float, par10: Float): Boolean =
{
if (player.isSneaking)
@ -78,4 +65,17 @@ class ItemBlockThermometer(block: Block) extends ItemBlockSaved(block: Block)
}
return super.onItemUse(itemStack, player, world, x, y, z, par7, par8, par9, par10)
}
def setSavedCoords(itemStack: ItemStack, position: Vector3)
{
val nbt: NBTTagCompound = NBTUtility.getNBTTagCompound(itemStack)
if (position != null)
{
nbt.setTag("trackCoordinate", position.writeNBT(new NBTTagCompound))
}
else
{
nbt.removeTag("trackCoordinate")
}
}
}

View File

@ -16,10 +16,10 @@ import net.minecraft.nbt.NBTTagCompound
import net.minecraft.util.IIcon
import net.minecraft.world.IBlockAccess
import resonantengine.lib.grid.thermal.GridThermal
import resonantengine.lib.prefab.tile.item.ItemBlockSaved
import resonantengine.lib.prefab.tile.spatial.ResonantTile
import resonantengine.lib.modcontent.block.ResonantTile
import resonantengine.lib.transform.vector.{Vector3, VectorWorld}
import resonantengine.lib.utility.inventory.InventoryUtility
import resonantengine.prefab.block.itemblock.ItemBlockSaved
/**
* Thermometer TileEntity
@ -81,11 +81,6 @@ class TileThermometer extends ResonantTile(Material.piston) with SimpleComponent
markUpdate
}
def getThreshold: Int =
{
return threshold
}
override def configure(player: EntityPlayer, side: Int, hit: Vector3): Boolean =
{
if (player.isSneaking)
@ -141,11 +136,6 @@ class TileThermometer extends ResonantTile(Material.piston) with SimpleComponent
}
}
def isOverThreshold: Boolean =
{
return detectedTemperature >= getThreshold
}
def setTrack(track: Vector3)
{
trackCoordinate = track
@ -195,6 +185,11 @@ class TileThermometer extends ResonantTile(Material.piston) with SimpleComponent
return Array[Any](this.getThreshold)
}
def getThreshold: Int =
{
return threshold
}
@Callback
@Optional.Method(modid = "OpenComputers")
def isAboveWarningTemperature(context: Context, args: Arguments): Array[Any] =
@ -202,6 +197,11 @@ class TileThermometer extends ResonantTile(Material.piston) with SimpleComponent
return Array[Any](this.isOverThreshold)
}
def isOverThreshold: Boolean =
{
return detectedTemperature >= getThreshold
}
@Callback
@Optional.Method(modid = "OpenComputers")
def setWarningTemperature(context: Context, args: Arguments): Array[Any] =

View File

@ -1,7 +1,7 @@
package edx.quantum.reactor
import net.minecraft.block.material.Material
import resonantengine.lib.prefab.tile.spatial.ResonantBlock
import resonantengine.lib.modcontent.block.ResonantBlock
import resonantengine.lib.transform.region.Cuboid
/**

View File

@ -21,14 +21,14 @@ import net.minecraftforge.common.util.ForgeDirection
import org.lwjgl.opengl.GL11
import resonantengine.api.edx.machine.{IReactor, IReactorComponent}
import resonantengine.lib.grid.thermal.{GridThermal, ThermalPhysics}
import resonantengine.prefab.network.{TPacketReceiver, TPacketSender}
import resonantengine.lib.prefab.poison.PoisonRadiation
import resonantengine.lib.prefab.tile.mixed.TileInventory
import resonantengine.lib.prefab.tile.multiblock.reference.{IMultiBlockStructure, MultiBlockHandler}
import resonantengine.lib.render.RenderUtility
import resonantengine.lib.render.model.ModelCube
import resonantengine.lib.transform.vector.Vector3
import resonantengine.lib.utility.inventory.InventoryUtility
import resonantengine.prefab.block.mixed.TileInventory
import resonantengine.prefab.block.multiblock.reference.{IMultiBlockStructure, MultiBlockHandler}
import resonantengine.prefab.network.{TPacketReceiver, TPacketSender}
import scala.collection.convert.wrapAll._
@ -115,8 +115,6 @@ class TileReactorCell extends TileInventory(Material.iron) with IMultiBlockStruc
return lowest
}
override def getMultiBlock: MultiBlockHandler[TileReactorCell] = multiBlock
override def onNeighborChanged(block: Block)
{
updatePositionStatus()
@ -245,6 +243,8 @@ class TileReactorCell extends TileInventory(Material.iron) with IMultiBlockStruc
}
}
override def getMultiBlock: MultiBlockHandler[TileReactorCell] = multiBlock
override def getWorld: World =
{
return worldObj