151 lines
8.5 KiB
Scala
151 lines
8.5 KiB
Scala
package edx.electrical
|
|
|
|
import cpw.mods.fml.common.Loader
|
|
import cpw.mods.fml.common.eventhandler.SubscribeEvent
|
|
import cpw.mods.fml.common.registry.GameRegistry
|
|
import cpw.mods.fml.relauncher.{Side, SideOnly}
|
|
import edx.core.{EDXCreativeTab, Reference, ResonantPartFactory}
|
|
import edx.electrical.battery.{ItemBlockBattery, TileBattery}
|
|
import edx.electrical.generator.{TileMotor, TileSolarPanel, TileThermopile}
|
|
import edx.electrical.multimeter.{ItemMultimeter, PartMultimeter}
|
|
import edx.electrical.tesla.TileTesla
|
|
import edx.electrical.transformer.{ItemElectricTransformer, PartElectricTransformer}
|
|
import edx.electrical.wire.ItemWire
|
|
import edx.electrical.wire.base.WireMaterial
|
|
import edx.electrical.wire.flat.{PartFlatWire, RenderFlatWire}
|
|
import edx.electrical.wire.framed.{PartFramedWire, RenderFramedWire}
|
|
import edx.quantum.gate.{ItemQuantumGlyph, PartQuantumGlyph}
|
|
import edx.quantum.laser.focus.{ItemFocusingMatrix, TileFocusCrystal, TileMirror}
|
|
import edx.quantum.laser.{TileLaserEmitter, TileLaserReceiver}
|
|
import ic2.api.item.IC2Items
|
|
import net.minecraft.block.Block
|
|
import net.minecraft.init.{Blocks, Items}
|
|
import net.minecraft.item.{Item, ItemStack}
|
|
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.utility.recipe.UniversalRecipe
|
|
import resonantengine.prefab.modcontent.ContentHolder
|
|
|
|
object ElectricalContent extends ContentHolder
|
|
{
|
|
val particleTextures = new ResourceLocation("textures/particle/particles.png")
|
|
|
|
var itemWire = new ItemWire
|
|
var itemMultimeter = new ItemMultimeter
|
|
var itemTransformer = new ItemElectricTransformer
|
|
@ExplicitContentName("insulation") var itemInsulation = new Item
|
|
var itemQuantumGlyph = new ItemQuantumGlyph
|
|
|
|
var itemFocusingMatrix: ItemFocusingMatrix = new ItemFocusingMatrix
|
|
|
|
var blockTesla: Block = new TileTesla
|
|
var blockBattery: Block = new TileBattery
|
|
var blockSolarPanel: Block = new TileSolarPanel
|
|
var blockMotor: Block = new TileMotor
|
|
var blockThermopile: Block = new TileThermopile
|
|
|
|
var blockLaserEmitter: Block = new TileLaserEmitter
|
|
var blockLaserReceiver: Block = new TileLaserReceiver
|
|
var blockMirror: Block = new TileMirror
|
|
var blockFocusCrystal: Block = new TileFocusCrystal
|
|
|
|
var tierOneBattery: ItemStack = null
|
|
var tierTwoBattery: ItemStack = null
|
|
var tierThreeBattery: ItemStack = null
|
|
|
|
manager.setTab(EDXCreativeTab).setPrefix(Reference.prefix)
|
|
|
|
override def preInit()
|
|
{
|
|
super.preInit()
|
|
|
|
tierOneBattery = ItemBlockBattery.setTier(new ItemStack(ElectricalContent.blockBattery, 1, 0), 0)
|
|
tierTwoBattery = ItemBlockBattery.setTier(new ItemStack(ElectricalContent.blockBattery, 1, 0), 1)
|
|
tierThreeBattery = ItemBlockBattery.setTier(new ItemStack(ElectricalContent.blockBattery, 1, 0), 2)
|
|
|
|
/** Register all parts */
|
|
ResonantPartFactory.register(classOf[PartFramedWire])
|
|
ResonantPartFactory.register(classOf[PartFlatWire])
|
|
ResonantPartFactory.register(classOf[PartMultimeter])
|
|
ResonantPartFactory.register(classOf[PartElectricTransformer])
|
|
ResonantPartFactory.register(classOf[PartQuantumGlyph])
|
|
|
|
MinecraftForge.EVENT_BUS.register(this)
|
|
}
|
|
|
|
override def init()
|
|
{
|
|
super.init()
|
|
|
|
OreDictionary.registerOre("wire", ElectricalContent.itemWire)
|
|
OreDictionary.registerOre("motor", ElectricalContent.blockMotor)
|
|
OreDictionary.registerOre("battery", ItemBlockBattery.setTier(new ItemStack(ElectricalContent.blockBattery, 1, 0), 0.asInstanceOf[Byte]))
|
|
OreDictionary.registerOre("batteryBox", ItemBlockBattery.setTier(new ItemStack(ElectricalContent.blockBattery, 1, 0), 0.asInstanceOf[Byte]))
|
|
}
|
|
|
|
override def postInit()
|
|
{
|
|
recipes += shaped(blockTesla, "WEW", " C ", "DID", 'W', "wire", 'E', Items.ender_eye, 'C', UniversalRecipe.BATTERY.get, 'D', Items.diamond, 'I', UniversalRecipe.PRIMARY_PLATE.get)
|
|
recipes += shaped(itemMultimeter, "WWW", "ICI", 'W', "wire", 'C', UniversalRecipe.BATTERY.get, 'I', UniversalRecipe.PRIMARY_METAL.get)
|
|
recipes += shaped(tierOneBattery, "III", "IRI", "III", 'R', Blocks.redstone_block, 'I', UniversalRecipe.PRIMARY_METAL.get)
|
|
recipes += shaped(tierTwoBattery, "RRR", "RIR", "RRR", 'R', tierOneBattery, 'I', UniversalRecipe.PRIMARY_PLATE.get)
|
|
recipes += shaped(tierThreeBattery, "RRR", "RIR", "RRR", 'R', tierTwoBattery, 'I', Blocks.diamond_block)
|
|
recipes += shaped(getWire(WireMaterial.COPPER, 3), "MMM", 'M', "ingotCopper")
|
|
recipes += shaped(getWire(WireMaterial.TIN, 3), "MMM", 'M', "ingotTin")
|
|
recipes += shaped(getWire(WireMaterial.IRON, 3), "MMM", 'M', Items.iron_ingot)
|
|
recipes += shaped(getWire(WireMaterial.ALUMINUM, 3), "MMM", 'M', "ingotAluminum")
|
|
recipes += shaped(getWire(WireMaterial.SILVER, 3), "MMM", 'M', "ingotSilver")
|
|
recipes += shaped(getWire(WireMaterial.SUPERCONDUCTOR, 3), "MMM", 'M', "ingotSuperconductor")
|
|
recipes += shaped(getWire(WireMaterial.SUPERCONDUCTOR, 3), "MMM", "MEM", "MMM", 'M', Items.gold_ingot, 'E', Items.ender_eye)
|
|
//recipes += shaped(ElectricalContent.itemCharger, "WWW", "ICI", 'W', "wire", 'I', UniversalRecipe.PRIMARY_METAL.get, 'C', UniversalRecipe.CIRCUIT_T1.get)
|
|
recipes += shaped(itemTransformer, "WWW", "WWW", "III", 'W', "wire", 'I', UniversalRecipe.PRIMARY_METAL.get)
|
|
//recipes += shaped(new ItemStack(ElectricalContent.itemQuantumGlyph, 1, 0), " CT", "LBL", "TCT", 'B', Blocks.diamond_block, 'L', ElectricalContent.itemLevitator, 'C', ElectricalContent.itemCharger, 'T', ElectricalContent.blockTesla)
|
|
//recipes += shaped(new ItemStack(ElectricalContent.itemQuantumGlyph, 1, 1), "TCT", "LBL", " CT", 'B', Blocks.diamond_block, 'L', ElectricalContent.itemLevitator, 'C', ElectricalContent.itemCharger, 'T', ElectricalContent.blockTesla)
|
|
//recipes += shaped(new ItemStack(ElectricalContent.itemQuantumGlyph, 1, 2), "TC ", "LBL", "TCT", 'B', Blocks.diamond_block, 'L', ElectricalContent.itemLevitator, 'C', ElectricalContent.itemCharger, 'T', ElectricalContent.blockTesla)
|
|
//recipes += shaped(new ItemStack(ElectricalContent.itemQuantumGlyph, 1, 3), "TCT", "LBL", "TC ", 'B', Blocks.diamond_block, 'L', ElectricalContent.itemLevitator, 'C', ElectricalContent.itemCharger, 'T', ElectricalContent.blockTesla)
|
|
recipes += shaped(blockSolarPanel, "CCC", "WWW", "III", 'W', "wire", 'C', Items.coal, 'I', UniversalRecipe.PRIMARY_METAL.get)
|
|
recipes += shaped(blockMotor, "SRS", "SMS", "SWS", 'W', "wire", 'R', Items.redstone, 'M', Blocks.iron_block, 'S', UniversalRecipe.PRIMARY_METAL.get)
|
|
recipes += shaped(blockThermopile, "ORO", "OWO", "OOO", 'W', "wire", 'O', Blocks.obsidian, 'R', Items.redstone)
|
|
|
|
recipes += shaped(blockLaserEmitter, "IGI", "IDI", "III", 'G', Blocks.glass, 'I', Items.iron_ingot, 'D', Items.diamond)
|
|
recipes += shaped(blockLaserReceiver, "IGI", "IRI", "III", 'G', Blocks.glass, 'I', Items.iron_ingot, 'R', Blocks.redstone_block)
|
|
recipes += shaped(blockMirror, "GGG", "III", "GGG", 'G', Blocks.glass, 'I', Items.iron_ingot)
|
|
recipes += shaped(blockFocusCrystal, "GGG", "GDG", "GGG", 'G', Blocks.glass, 'D', Items.diamond)
|
|
recipes += shaped(itemFocusingMatrix, "GGG", "GNG", "GGG", 'G', Items.redstone, 'N', Items.quartz)
|
|
|
|
if (Loader.isModLoaded("IC2"))
|
|
{
|
|
recipes += shapeless(getWire(WireMaterial.COPPER, 1), IC2Items.getItem("copperCableItem"))
|
|
recipes += shapeless(getWire(WireMaterial.TIN, 1), IC2Items.getItem("tinCableItem"))
|
|
recipes += shapeless(getWire(WireMaterial.IRON, 1), IC2Items.getItem("ironCableItem"))
|
|
recipes += shapeless(IC2Items.getItem("copperCableItem"), getWire(WireMaterial.COPPER, 1))
|
|
recipes += shapeless(IC2Items.getItem("tinCableItem"), getWire(WireMaterial.TIN, 1))
|
|
recipes += shapeless(IC2Items.getItem("ironCableItem"), getWire(WireMaterial.IRON, 1))
|
|
}
|
|
if (Loader.isModLoaded("Mekanism"))
|
|
{
|
|
GameRegistry.addRecipe(new ShapelessOreRecipe(getWire(WireMaterial.COPPER, 1), "universalCable"))
|
|
}
|
|
}
|
|
|
|
def getWire(t: WireMaterial, count: Int): ItemStack = new ItemStack(itemWire, count, t.ordinal())
|
|
|
|
/**
|
|
* Handle wire texture
|
|
*/
|
|
@SubscribeEvent
|
|
@SideOnly(Side.CLIENT)
|
|
def preTextureHook(event: TextureStitchEvent.Pre)
|
|
{
|
|
if (event.map.getTextureType == 0)
|
|
{
|
|
RenderFlatWire.wireIcon = event.map.registerIcon(Reference.prefix + "models/flatWire")
|
|
RenderFramedWire.wireIcon = event.map.registerIcon(Reference.prefix + "models/wire")
|
|
RenderFramedWire.insulationIcon = event.map.registerIcon(Reference.prefix + "models/insulation")
|
|
}
|
|
}
|
|
}
|