Removed most errors out of atomic module, moved electrical turbine to mech module
This commit is contained in:
parent
0474addef6
commit
00855a5d15
37 changed files with 995 additions and 1605 deletions
|
@ -1,597 +0,0 @@
|
||||||
package resonantinduction.atomic;
|
|
||||||
|
|
||||||
import cpw.mods.fml.common.eventhandler.Event;
|
|
||||||
import ic2.api.item.IC2Items;
|
|
||||||
import net.minecraft.creativetab.CreativeTabs;
|
|
||||||
import net.minecraft.init.Blocks;
|
|
||||||
import net.minecraft.init.Items;
|
|
||||||
import net.minecraft.item.ItemArmor;
|
|
||||||
import net.minecraft.util.MovingObjectPosition;
|
|
||||||
import net.minecraftforge.common.util.EnumHelper;
|
|
||||||
import resonant.content.loader.ModManager;
|
|
||||||
import resonant.engine.content.debug.TileCreativeBuilder;
|
|
||||||
import resonant.lib.network.discriminator.PacketAnnotation;
|
|
||||||
import resonant.lib.network.discriminator.PacketAnnotationManager;
|
|
||||||
import resonantinduction.atomic.blocks.BlockToxicWaste;
|
|
||||||
import resonantinduction.atomic.blocks.BlockUraniumOre;
|
|
||||||
import resonantinduction.atomic.blocks.TileElectromagnet;
|
|
||||||
import resonantinduction.atomic.items.*;
|
|
||||||
import resonantinduction.atomic.machine.extractor.turbine.TileElectricTurbine;
|
|
||||||
import resonantinduction.atomic.machine.extractor.turbine.TileFunnel;
|
|
||||||
import resonantinduction.atomic.machine.plasma.BlockPlasmaHeater;
|
|
||||||
import resonantinduction.atomic.machine.plasma.TilePlasma;
|
|
||||||
import resonantinduction.atomic.machine.quantum.TileQuantumAssembler;
|
|
||||||
import resonantinduction.atomic.machine.reactor.TileReactorCell;
|
|
||||||
import resonantinduction.atomic.schematic.SchematicBreedingReactor;
|
|
||||||
import universalelectricity.core.transform.vector.VectorWorld;
|
|
||||||
import ic2.api.recipe.IRecipeInput;
|
|
||||||
import ic2.api.recipe.RecipeOutput;
|
|
||||||
import ic2.api.recipe.Recipes;
|
|
||||||
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Map.Entry;
|
|
||||||
|
|
||||||
import net.minecraft.block.Block;
|
|
||||||
import net.minecraft.item.Item;
|
|
||||||
import net.minecraft.item.ItemBucket;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraft.tileentity.TileEntity;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
import net.minecraftforge.client.event.TextureStitchEvent;
|
|
||||||
import net.minecraftforge.common.ForgeChunkManager;
|
|
||||||
import net.minecraftforge.common.ForgeChunkManager.LoadingCallback;
|
|
||||||
import net.minecraftforge.common.ForgeChunkManager.Ticket;
|
|
||||||
import net.minecraftforge.common.ForgeChunkManager.Type;
|
|
||||||
import net.minecraftforge.common.MinecraftForge;
|
|
||||||
import net.minecraftforge.event.entity.player.FillBucketEvent;
|
|
||||||
import net.minecraftforge.fluids.Fluid;
|
|
||||||
import net.minecraftforge.fluids.FluidContainerRegistry;
|
|
||||||
import net.minecraftforge.fluids.FluidRegistry;
|
|
||||||
import net.minecraftforge.fluids.FluidStack;
|
|
||||||
import net.minecraftforge.oredict.OreDictionary;
|
|
||||||
import net.minecraftforge.oredict.ShapedOreRecipe;
|
|
||||||
import net.minecraftforge.oredict.ShapelessOreRecipe;
|
|
||||||
import resonant.api.IElectromagnet;
|
|
||||||
import resonant.api.event.PlasmaEvent.SpawnPlasmaEvent;
|
|
||||||
import resonant.api.recipe.QuantumAssemblerRecipes;
|
|
||||||
import resonant.core.content.debug.BlockCreativeBuilder;
|
|
||||||
import resonant.lib.prefab.block.BlockRadioactive;
|
|
||||||
import resonant.lib.prefab.ore.OreGenBase;
|
|
||||||
import resonant.lib.prefab.ore.OreGenReplaceStone;
|
|
||||||
import resonant.lib.prefab.ore.OreGenerator;
|
|
||||||
import resonant.lib.recipe.UniversalRecipe;
|
|
||||||
import resonant.lib.render.RenderUtility;
|
|
||||||
import resonantinduction.atomic.blocks.TileSiren;
|
|
||||||
import resonantinduction.atomic.machine.accelerator.EntityParticle;
|
|
||||||
import resonantinduction.atomic.machine.accelerator.TileAccelerator;
|
|
||||||
import resonantinduction.atomic.machine.centrifuge.TileCentrifuge;
|
|
||||||
import resonantinduction.atomic.machine.plasma.TilePlasmaHeater;
|
|
||||||
import resonantinduction.atomic.machine.reactor.TileControlRod;
|
|
||||||
import resonantinduction.atomic.machine.thermometer.TileThermometer;
|
|
||||||
import resonantinduction.atomic.schematic.SchematicAccelerator;
|
|
||||||
import resonantinduction.atomic.schematic.SchematicFissionReactor;
|
|
||||||
import resonantinduction.atomic.schematic.SchematicFusionReactor;
|
|
||||||
import resonantinduction.core.Reference;
|
|
||||||
import resonantinduction.core.ResonantInduction;
|
|
||||||
import resonantinduction.core.ResonantTab;
|
|
||||||
import resonantinduction.core.Settings;
|
|
||||||
import cpw.mods.fml.common.Loader;
|
|
||||||
import cpw.mods.fml.common.Mod;
|
|
||||||
import cpw.mods.fml.common.Mod.EventHandler;
|
|
||||||
import cpw.mods.fml.common.Mod.Instance;
|
|
||||||
import cpw.mods.fml.common.ModMetadata;
|
|
||||||
import cpw.mods.fml.common.SidedProxy;
|
|
||||||
import cpw.mods.fml.common.event.FMLInitializationEvent;
|
|
||||||
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
|
|
||||||
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
|
|
||||||
import cpw.mods.fml.common.network.NetworkRegistry;
|
|
||||||
import cpw.mods.fml.common.registry.EntityRegistry;
|
|
||||||
import cpw.mods.fml.common.registry.GameRegistry;
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
|
||||||
|
|
||||||
@Mod(modid = Atomic.ID, name = Atomic.NAME, version = Reference.VERSION, dependencies = "required-after:ResonantEngine;after:IC2;after:ResonantInduction|Electrical;required-after:" + ResonantInduction.ID)
|
|
||||||
public class Atomic
|
|
||||||
{
|
|
||||||
public static final String ID = "ResonantInduction|Atomic";
|
|
||||||
public static final String TEXTURE_DIRECTORY = "textures/";
|
|
||||||
public static final String GUI_TEXTURE_DIRECTORY = TEXTURE_DIRECTORY + "gui/";
|
|
||||||
public static final int ENTITY_ID_PREFIX = 49;
|
|
||||||
public static final int SECOND_IN_TICKS = 20;
|
|
||||||
public static final String BAN_ANTIMATTER_POWER = FlagRegistry.registerFlag("ban_antimatter_power");
|
|
||||||
public static final String NAME = Reference.name() + " Atomic";
|
|
||||||
public static final ModManager contentRegistry = new ModManager().setPrefix(Reference.prefix()).setTab(ResonantTab.tab());
|
|
||||||
private static final String[] SUPPORTED_LANGUAGES = new String[]
|
|
||||||
{ "en_US", "pl_PL", "de_DE", "ru_RU" };
|
|
||||||
|
|
||||||
@Instance(ID)
|
|
||||||
public static Atomic INSTANCE;
|
|
||||||
|
|
||||||
@SidedProxy(clientSide = "ClientProxy", serverSide = "CommonProxy")
|
|
||||||
public static CommonProxy proxy;
|
|
||||||
|
|
||||||
@Mod.Metadata(ID)
|
|
||||||
public static ModMetadata metadata;
|
|
||||||
|
|
||||||
/** Block and Items */
|
|
||||||
public static Block blockRadioactive;
|
|
||||||
public static Block blockCentrifuge;
|
|
||||||
public static Block blockElectricTurbine;
|
|
||||||
public static Block blockNuclearBoiler;
|
|
||||||
public static Block blockControlRod;
|
|
||||||
public static Block blockThermometer;
|
|
||||||
public static Block blockFusionCore;
|
|
||||||
public static Block blockPlasma;
|
|
||||||
public static Block blockElectromagnet;
|
|
||||||
public static Block blockChemicalExtractor;
|
|
||||||
public static Block blockSiren;
|
|
||||||
public static Block blockSteamFunnel;
|
|
||||||
public static Block blockAccelerator;
|
|
||||||
public static Block blockFulmination;
|
|
||||||
public static Block blockQuantumAssembler;
|
|
||||||
public static Block blockReactorCell;
|
|
||||||
|
|
||||||
public static Block blockUraniumOre;
|
|
||||||
|
|
||||||
//items
|
|
||||||
public static Item itemCell, itemFissileFuel, itemBreedingRod, itemDarkMatter, itemAntimatter, itemDeuteriumCell, itemTritiumCell, itemWaterCell;
|
|
||||||
public static Item itemBucketToxic;
|
|
||||||
public static Item itemYellowCake;
|
|
||||||
public static Item itemUranium;
|
|
||||||
public static Item itemHazmatTop;
|
|
||||||
public static Item itemHazmatBody;
|
|
||||||
public static Item itemHazmatLeggings;
|
|
||||||
public static Item itemHazmatBoots;
|
|
||||||
|
|
||||||
/** Fluids */
|
|
||||||
public static Block blockToxicWaste;
|
|
||||||
|
|
||||||
/** Water, Uranium Hexafluoride, Steam, Deuterium, Toxic waste */
|
|
||||||
public static FluidStack FLUIDSTACK_WATER, FLUIDSTACK_URANIUM_HEXAFLOURIDE, FLUIDSTACK_STEAM, FLUIDSTACK_DEUTERIUM, FLUIDSTACK_TRITIUM, FLUIDSTACK_TOXIC_WASTE;
|
|
||||||
public static Fluid FLUID_URANIUM_HEXAFLOURIDE, FLUID_PLASMA, FLUID_STEAM, FLUID_DEUTERIUM, FLUID_TRITIUM, FLUID_TOXIC_WASTE;
|
|
||||||
public static OreGenBase uraniumOreGeneration;
|
|
||||||
|
|
||||||
/** Is this ItemStack a cell?
|
|
||||||
*
|
|
||||||
* @param itemStack
|
|
||||||
* @return */
|
|
||||||
public static boolean isItemStackEmptyCell(ItemStack itemStack)
|
|
||||||
{
|
|
||||||
return isItemStackOreDictionaryCompatible(itemStack, "cellEmpty");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean isItemStackWaterCell(ItemStack itemStack)
|
|
||||||
{
|
|
||||||
return isItemStackOreDictionaryCompatible(itemStack, "cellWater");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean isItemStackUraniumOre(ItemStack itemStack)
|
|
||||||
{
|
|
||||||
return isItemStackOreDictionaryCompatible(itemStack, "dropUranium", "oreUranium");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean isItemStackDeuteriumCell(ItemStack itemStack)
|
|
||||||
{
|
|
||||||
return isItemStackOreDictionaryCompatible(itemStack, "molecule_1d", "molecule_1h2", "cellDeuterium");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean isItemStackTritiumCell(ItemStack itemStack)
|
|
||||||
{
|
|
||||||
return isItemStackOreDictionaryCompatible(itemStack, "molecule_h3", "cellTritium");
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Compare to Ore Dict
|
|
||||||
*
|
|
||||||
* @param itemStack
|
|
||||||
* @return */
|
|
||||||
public static boolean isItemStackOreDictionaryCompatible(ItemStack itemStack, String... names)
|
|
||||||
{
|
|
||||||
if (itemStack != null && names != null && names.length > 0)
|
|
||||||
{
|
|
||||||
String name = OreDictionary.getOreName(OreDictionary.getOreID(itemStack));
|
|
||||||
|
|
||||||
for (String compareName : names)
|
|
||||||
{
|
|
||||||
if (name.equals(compareName))
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int getFluidAmount(FluidStack fluid)
|
|
||||||
{
|
|
||||||
if (fluid != null)
|
|
||||||
{
|
|
||||||
return fluid.amount;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void preInit(FMLPreInitializationEvent event)
|
|
||||||
{
|
|
||||||
INSTANCE = this;
|
|
||||||
MinecraftForge.EVENT_BUS.register(this);
|
|
||||||
NetworkRegistry.INSTANCE.registerGuiHandler(this, proxy);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
TileCreativeBuilder.register(new SchematicAccelerator());
|
|
||||||
TileCreativeBuilder.register(new SchematicBreedingReactor());
|
|
||||||
TileCreativeBuilder.register(new SchematicFissionReactor());
|
|
||||||
TileCreativeBuilder.register(new SchematicFusionReactor());
|
|
||||||
|
|
||||||
Settings.config.load();
|
|
||||||
|
|
||||||
/** Registers Gases & Fluids */
|
|
||||||
FLUID_URANIUM_HEXAFLOURIDE = new Fluid("uraniumhexafluoride").setGaseous(true);
|
|
||||||
FLUID_STEAM = new Fluid("steam").setGaseous(true);
|
|
||||||
FLUID_DEUTERIUM = new Fluid("deuterium").setGaseous(true);
|
|
||||||
FLUID_TRITIUM = new Fluid("tritium").setGaseous(true);
|
|
||||||
FLUID_TOXIC_WASTE = new Fluid("toxicwaste");
|
|
||||||
FLUID_PLASMA = new Fluid("plasma").setGaseous(true);
|
|
||||||
|
|
||||||
FluidRegistry.registerFluid(FLUID_URANIUM_HEXAFLOURIDE);
|
|
||||||
FluidRegistry.registerFluid(FLUID_STEAM);
|
|
||||||
FluidRegistry.registerFluid(FLUID_TRITIUM);
|
|
||||||
FluidRegistry.registerFluid(FLUID_DEUTERIUM);
|
|
||||||
FluidRegistry.registerFluid(FLUID_TOXIC_WASTE);
|
|
||||||
FluidRegistry.registerFluid(FLUID_PLASMA);
|
|
||||||
|
|
||||||
/** Fluid Stack Reference Initialization */
|
|
||||||
FLUIDSTACK_WATER = new FluidStack(FluidRegistry.WATER, 0);
|
|
||||||
FLUIDSTACK_URANIUM_HEXAFLOURIDE = new FluidStack(FLUID_URANIUM_HEXAFLOURIDE, 0);
|
|
||||||
FLUIDSTACK_STEAM = new FluidStack(FluidRegistry.getFluidID("steam"), 0);
|
|
||||||
FLUIDSTACK_DEUTERIUM = new FluidStack(FluidRegistry.getFluidID("deuterium"), 0);
|
|
||||||
FLUIDSTACK_TRITIUM = new FluidStack(FluidRegistry.getFluidID("tritium"), 0);
|
|
||||||
FLUIDSTACK_TOXIC_WASTE = new FluidStack(FluidRegistry.getFluidID("toxicwaste"), 0);
|
|
||||||
|
|
||||||
/** Block Initiation */
|
|
||||||
blockRadioactive = new BlockRadioactive().setUnlocalizedName(Reference.prefix() + "radioactive").setTextureName(Reference.prefix() + "radioactive").setCreativeTab(CreativeTabs.tabBlock);
|
|
||||||
blockUraniumOre = new BlockUraniumOre();
|
|
||||||
blockToxicWaste = new BlockToxicWaste().setCreativeTab(null);
|
|
||||||
|
|
||||||
blockElectricTurbine = contentRegistry.newBlock(TileElectricTurbine.class);
|
|
||||||
blockCentrifuge = contentRegistry.newBlock(TileCentrifuge.class);
|
|
||||||
blockReactorCell = contentRegistry.newBlock(TileReactorCell.class);
|
|
||||||
blockNuclearBoiler = contentRegistry.newBlock(TileNuclearBoiler.class);
|
|
||||||
blockChemicalExtractor = contentRegistry.newBlock(TileChemicalExtractor.class);
|
|
||||||
blockFusionCore = contentRegistry.newBlock(TilePlasmaHeater.class);
|
|
||||||
blockControlRod = contentRegistry.newBlock(TileControlRod.class);
|
|
||||||
blockThermometer = contentRegistry.newBlock(TileThermometer.class);
|
|
||||||
blockPlasma = contentRegistry.newBlock(TilePlasma.class);
|
|
||||||
blockElectromagnet = contentRegistry.newBlock(TileElectromagnet.class);
|
|
||||||
blockSiren = contentRegistry.newBlock(TileSiren.class);
|
|
||||||
blockSteamFunnel = contentRegistry.newBlock(TileFunnel.class);
|
|
||||||
blockAccelerator = contentRegistry.newBlock(TileAccelerator.class);
|
|
||||||
blockFulmination = contentRegistry.newBlock(TileFulmination.class);
|
|
||||||
blockQuantumAssembler = contentRegistry.newBlock(TileQuantumAssembler.class);
|
|
||||||
|
|
||||||
|
|
||||||
/** Items */
|
|
||||||
itemHazmatTop = new ItemHazmat("HazmatMask", 0);
|
|
||||||
itemHazmatBody = new ItemHazmat("HazmatBody", 1);
|
|
||||||
itemHazmatLeggings = new ItemHazmat("HazmatLeggings", 2);
|
|
||||||
itemHazmatBoots = new ItemHazmat("HazmatBoots", 3);
|
|
||||||
itemCell = new Item().setUnlocalizedName("cellEmpty");
|
|
||||||
itemFissileFuel = new ItemFissileFuel().setUnlocalizedName("rodFissileFuel");
|
|
||||||
itemDeuteriumCell = new ItemCell().setUnlocalizedName("cellDeuterium");
|
|
||||||
itemTritiumCell = new ItemCell().setUnlocalizedName("cellTritium");
|
|
||||||
itemWaterCell = new ItemCell().setUnlocalizedName("cellWater");
|
|
||||||
itemDarkMatter = new ItemDarkMatter().setUnlocalizedName("darkMatter");
|
|
||||||
itemAntimatter = new ItemAntimatter().setUnlocalizedName("antimatter");
|
|
||||||
itemBreedingRod = new ItemBreederFuel().setUnlocalizedName("rodBreederFuel");
|
|
||||||
itemYellowCake = new ItemRadioactive().setUnlocalizedName("yellowcake");
|
|
||||||
itemUranium = contentRegistry.newItem(ItemUranium.class);
|
|
||||||
|
|
||||||
/** Fluid Item Initialization */
|
|
||||||
FLUID_PLASMA.setBlockID(blockPlasma);
|
|
||||||
|
|
||||||
int bucketID = Settings.getNextItemID();
|
|
||||||
itemBucketToxic = (new ItemBucket(Settings.config.getItem("Toxic Waste Bucket", bucketID).getInt(bucketID), blockToxicWaste.blockID)).setCreativeTab(ResonantTab.DEFAULT).setUnlocalizedName(Reference.PREFIX + "bucketToxicWaste")
|
|
||||||
.setContainerItem(Item.bucketEmpty).setTextureName(Reference.PREFIX + "bucketToxicWaste");
|
|
||||||
|
|
||||||
FluidContainerRegistry.registerFluidContainer(FluidRegistry.getFluid("toxicwaste"), new ItemStack(itemBucketToxic), new ItemStack(Item.bucketEmpty));
|
|
||||||
FluidContainerRegistry.registerFluidContainer(FluidRegistry.WATER, new ItemStack(itemWaterCell), new ItemStack(itemCell));
|
|
||||||
FluidContainerRegistry.registerFluidContainer(new FluidStack(FluidRegistry.getFluid("deuterium"), 200), new ItemStack(itemDeuteriumCell), new ItemStack(itemCell));
|
|
||||||
FluidContainerRegistry.registerFluidContainer(new FluidStack(FluidRegistry.getFluid("tritium"), 200), new ItemStack(itemTritiumCell), new ItemStack(itemCell));
|
|
||||||
|
|
||||||
if (OreDictionary.getOres("oreUranium").size() > 1 && Settings.config.get(Configuration.CATEGORY_GENERAL, "Auto Disable Uranium If Exist", false).getBoolean(false))
|
|
||||||
{
|
|
||||||
ResonantInduction.LOGGER.fine("Disabled Uranium Generation. Detected another uranium being generated: " + OreDictionary.getOres("oreUranium").size());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
uraniumOreGeneration = new OreGenReplaceStone("Uranium Ore", "oreUranium", new ItemStack(blockUraniumOre), 0, 25, 9, 3, "pickaxe", 2);
|
|
||||||
uraniumOreGeneration.enable(Settings.config);
|
|
||||||
OreGenerator.addOre(uraniumOreGeneration);
|
|
||||||
ResonantInduction.LOGGER.fine("Added Atomic Science uranium to ore generator.");
|
|
||||||
}
|
|
||||||
|
|
||||||
Settings.config.save();
|
|
||||||
|
|
||||||
MinecraftForge.EVENT_BUS.register(itemAntimatter);
|
|
||||||
MinecraftForge.EVENT_BUS.register(FulminationHandler.INSTANCE);
|
|
||||||
|
|
||||||
/** Cell registry. */
|
|
||||||
if (Settings.allowOreDictionaryCompatibility)
|
|
||||||
{
|
|
||||||
OreDictionary.registerOre("ingotUranium", itemUranium);
|
|
||||||
OreDictionary.registerOre("dustUranium", itemYellowCake);
|
|
||||||
}
|
|
||||||
|
|
||||||
OreDictionary.registerOre("breederUranium", new ItemStack(itemUranium, 1, 1));
|
|
||||||
OreDictionary.registerOre("blockRadioactive", blockRadioactive);
|
|
||||||
|
|
||||||
OreDictionary.registerOre("cellEmpty", itemCell);
|
|
||||||
OreDictionary.registerOre("cellUranium", itemFissileFuel);
|
|
||||||
OreDictionary.registerOre("cellTritium", itemTritiumCell);
|
|
||||||
OreDictionary.registerOre("cellDeuterium", itemDeuteriumCell);
|
|
||||||
OreDictionary.registerOre("cellWater", itemWaterCell);
|
|
||||||
OreDictionary.registerOre("strangeMatter", itemDarkMatter);
|
|
||||||
OreDictionary.registerOre("antimatterMilligram", new ItemStack(itemAntimatter, 1, 0));
|
|
||||||
OreDictionary.registerOre("antimatterGram", new ItemStack(itemAntimatter, 1, 1));
|
|
||||||
|
|
||||||
ForgeChunkManager.setForcedChunkLoadingCallback(this, new LoadingCallback() {
|
|
||||||
@Override
|
|
||||||
public void ticketsLoaded(List<Ticket> tickets, World world) {
|
|
||||||
for (Ticket ticket : tickets) {
|
|
||||||
if (ticket.getType() == Type.ENTITY) {
|
|
||||||
if (ticket.getEntity() != null) {
|
|
||||||
if (ticket.getEntity() instanceof EntityParticle) {
|
|
||||||
((EntityParticle) ticket.getEntity()).updateTicket = ticket;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Settings.config.save();
|
|
||||||
ResonantTab.ITEMSTACK = new ItemStack(blockReactorCell);
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void init(FMLInitializationEvent evt)
|
|
||||||
{
|
|
||||||
Settings.setModMetadata(metadata, ID, NAME, ResonantInduction.ID);
|
|
||||||
proxy.init();
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void postInit(FMLPostInitializationEvent event)
|
|
||||||
{
|
|
||||||
/** IC2 Recipes */
|
|
||||||
if (Loader.isModLoaded("IC2") && Settings.allowAlternateRecipes())
|
|
||||||
{
|
|
||||||
OreDictionary.registerOre("cellEmpty", IC2Items.getItem("cell"));
|
|
||||||
|
|
||||||
// Check to make sure we have actually registered the Ore, otherwise tell the user about
|
|
||||||
// it.
|
|
||||||
String cellEmptyName = OreDictionary.getOreName(OreDictionary.getOreID("cellEmpty"));
|
|
||||||
if (cellEmptyName == "Unknown")
|
|
||||||
{
|
|
||||||
ResonantInduction.logger().info("Unable to register cellEmpty in OreDictionary!");
|
|
||||||
}
|
|
||||||
|
|
||||||
// IC2 exchangeable recipes
|
|
||||||
GameRegistry.addRecipe(new ShapelessOreRecipe(itemYellowCake, IC2Items.getItem("reactorUraniumSimple")));
|
|
||||||
GameRegistry.addRecipe(new ShapelessOreRecipe(IC2Items.getItem("cell"), itemCell));
|
|
||||||
GameRegistry.addRecipe(new ShapelessOreRecipe(itemCell, "cellEmpty"));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Antimatter
|
|
||||||
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(itemAntimatter, 1, 1), new Object[]
|
|
||||||
{ itemAntimatter, itemAntimatter, itemAntimatter, itemAntimatter, itemAntimatter, itemAntimatter, itemAntimatter, itemAntimatter }));
|
|
||||||
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(itemAntimatter, 8, 0), new Object[]
|
|
||||||
{ new ItemStack(itemAntimatter, 1, 1) }));
|
|
||||||
|
|
||||||
// Steam Funnel
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockSteamFunnel, 2), new Object[]
|
|
||||||
{ " B ", "B B", "B B", 'B', UniversalRecipe.SECONDARY_METAL.get() }));
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockSteamFunnel, 2), new Object[]
|
|
||||||
{ " B ", "B B", "B B", 'B', "ingotIron" }));
|
|
||||||
|
|
||||||
// Atomic Assembler
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(blockQuantumAssembler, new Object[]
|
|
||||||
{ "CCC", "SXS", "SSS", 'X', blockCentrifuge, 'C', UniversalRecipe.CIRCUIT_T3.get(), 'S', UniversalRecipe.PRIMARY_PLATE.get() }));
|
|
||||||
|
|
||||||
// Fulmination Generator
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(blockFulmination, new Object[]
|
|
||||||
{ "OSO", "SCS", "OSO", 'O', Blocks.obsidian, 'C', UniversalRecipe.CIRCUIT_T2.get(), 'S', UniversalRecipe.PRIMARY_PLATE.get() }));
|
|
||||||
|
|
||||||
// Particle Accelerator
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(blockAccelerator, new Object[]
|
|
||||||
{ "SCS", "CMC", "SCS", 'M', UniversalRecipe.MOTOR.get(), 'C', UniversalRecipe.CIRCUIT_T3.get(), 'S', UniversalRecipe.PRIMARY_PLATE.get() }));
|
|
||||||
|
|
||||||
// Centrifuge
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(blockCentrifuge, new Object[]
|
|
||||||
{ "BSB", "MCM", "BSB", 'C', UniversalRecipe.CIRCUIT_T2.get(), 'S', UniversalRecipe.PRIMARY_PLATE.get(), 'B', UniversalRecipe.SECONDARY_METAL.get(), 'M',
|
|
||||||
UniversalRecipe.MOTOR.get() }));
|
|
||||||
|
|
||||||
// Nuclear Boiler
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(blockNuclearBoiler, new Object[]
|
|
||||||
{ "S S", "FBF", "SMS", 'F', Blocks.furnace, 'S', UniversalRecipe.PRIMARY_PLATE.get(), 'B', Items.bucket, 'M', UniversalRecipe.MOTOR.get() }));
|
|
||||||
|
|
||||||
// Chemical Extractor
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(blockChemicalExtractor, new Object[]
|
|
||||||
{ "BSB", "MCM", "BSB", 'C', UniversalRecipe.CIRCUIT_T3.get(), 'S', UniversalRecipe.PRIMARY_PLATE.get(), 'B', UniversalRecipe.SECONDARY_METAL.get(), 'M',
|
|
||||||
UniversalRecipe.MOTOR.get() }));
|
|
||||||
|
|
||||||
// Siren
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockSiren, 2), new Object[]
|
|
||||||
{ "NPN", 'N', Blocks.noteblock, 'P', UniversalRecipe.SECONDARY_PLATE.get() }));
|
|
||||||
|
|
||||||
// Fission Reactor
|
|
||||||
GameRegistry
|
|
||||||
.addRecipe(new ShapedOreRecipe(blockReactorCell, new Object[]
|
|
||||||
{ "SCS", "MEM", "SCS", 'E', "cellEmpty", 'C', UniversalRecipe.CIRCUIT_T2.get(), 'S', UniversalRecipe.PRIMARY_PLATE.get(), 'M',
|
|
||||||
UniversalRecipe.MOTOR.get() }));
|
|
||||||
|
|
||||||
// Fusion Reactor
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(blockFusionCore, new Object[]
|
|
||||||
{ "CPC", "PFP", "CPC", 'P', UniversalRecipe.PRIMARY_PLATE.get(), 'F', blockReactorCell, 'C', UniversalRecipe.CIRCUIT_T3.get() }));
|
|
||||||
|
|
||||||
// Turbine
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(blockElectricTurbine, new Object[]
|
|
||||||
{ " B ", "BMB", " B ", 'B', UniversalRecipe.SECONDARY_PLATE.get(), 'M', UniversalRecipe.MOTOR.get() }));
|
|
||||||
|
|
||||||
// Empty Cell
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(itemCell, 16), new Object[]
|
|
||||||
{ " T ", "TGT", " T ", 'T', "ingotTin", 'G', Blocks.glass }));
|
|
||||||
|
|
||||||
// Water Cell
|
|
||||||
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(itemWaterCell), new Object[]
|
|
||||||
{ "cellEmpty", Items.water_bucket }));
|
|
||||||
|
|
||||||
// Thermometer
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(blockThermometer, new Object[]
|
|
||||||
{ "SSS", "GCG", "GSG", 'S', UniversalRecipe.PRIMARY_METAL.get(), 'G', Blocks.glass, 'C', UniversalRecipe.CIRCUIT_T1.get() }));
|
|
||||||
|
|
||||||
// Control Rod
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(blockControlRod, new Object[]
|
|
||||||
{ "I", "I", "I", 'I', Items.iron_ingot }));
|
|
||||||
|
|
||||||
// Fuel Rod
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(itemFissileFuel, new Object[]
|
|
||||||
{ "CUC", "CUC", "CUC", 'U', "ingotUranium", 'C', "cellEmpty" }));
|
|
||||||
|
|
||||||
// Breeder Rod
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(itemBreedingRod, new Object[]
|
|
||||||
{ "CUC", "CUC", "CUC", 'U', "breederUranium", 'C', "cellEmpty" }));
|
|
||||||
|
|
||||||
// Electromagnet
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockElectromagnet, 2, 0), new Object[]
|
|
||||||
{ "BBB", "BMB", "BBB", 'B', UniversalRecipe.SECONDARY_METAL.get(), 'M', UniversalRecipe.MOTOR.get(S) }));
|
|
||||||
|
|
||||||
// Electromagnet Glass
|
|
||||||
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(blockElectromagnet, 1, 1), new Object[]
|
|
||||||
{ blockElectromagnet, Blocks.glass }));
|
|
||||||
|
|
||||||
// Hazmat Suit
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(itemHazmatTop, new Object[]
|
|
||||||
{ "SSS", "BAB", "SCS", 'A', Items.leather_helmet, 'C', UniversalRecipe.CIRCUIT_T1.get(), 'S', Blocks.wool }));
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(itemHazmatBody, new Object[]
|
|
||||||
{ "SSS", "BAB", "SCS", 'A', Items.leather_chestplate, 'C', UniversalRecipe.CIRCUIT_T1.get(), 'S', Blocks.wool }));
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(itemHazmatLeggings, new Object[]
|
|
||||||
{ "SSS", "BAB", "SCS", 'A', Items.leather_leggings, 'C', UniversalRecipe.CIRCUIT_T1.get(), 'S', Blocks.wool }));
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(itemHazmatBoots, new Object[]
|
|
||||||
{ "SSS", "BAB", "SCS", 'A', Items.leather_boots, 'C', UniversalRecipe.CIRCUIT_T1.get(), 'S', Blocks.wool }));
|
|
||||||
|
|
||||||
EntityRegistry.registerGlobalEntityID(EntityParticle.class, "ASParticle", EntityRegistry.findGlobalUniqueEntityId());
|
|
||||||
EntityRegistry.registerModEntity(EntityParticle.class, "ASParticle", ENTITY_ID_PREFIX, this, 80, 3, true);
|
|
||||||
|
|
||||||
Atomic.proxy.init();
|
|
||||||
|
|
||||||
Settings.config.load();
|
|
||||||
|
|
||||||
|
|
||||||
for (String oreName : OreDictionary.getOreNames())
|
|
||||||
{
|
|
||||||
if (oreName.startsWith("ingot"))
|
|
||||||
{
|
|
||||||
for (ItemStack itemStack : OreDictionary.getOres(oreName))
|
|
||||||
{
|
|
||||||
if (itemStack != null)
|
|
||||||
{
|
|
||||||
QuantumAssemblerRecipes.addRecipe(itemStack);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Settings.config.save();
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void thermalEventHandler(EventThermalUpdate evt)
|
|
||||||
{
|
|
||||||
VectorWorld pos = evt.position;
|
|
||||||
Block block = Block.blocksList[pos.getBlock()];
|
|
||||||
|
|
||||||
if (block == blockElectromagnet)
|
|
||||||
{
|
|
||||||
evt.heatLoss = evt.deltaTemperature * 0.6f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void plasmaEvent(SpawnPlasmaEvent evt)
|
|
||||||
{
|
|
||||||
Block block = evt.world.getBlock(evt.x, evt.y, evt.z);
|
|
||||||
|
|
||||||
if (block != null && block.getBlockHardness(evt.world, evt.x, evt.y, evt.z) >= 0)
|
|
||||||
{
|
|
||||||
TileEntity tile = evt.world.getTileEntity(evt.x, evt.y, evt.z);
|
|
||||||
|
|
||||||
if (tile instanceof TilePlasma)
|
|
||||||
{
|
|
||||||
((TilePlasma) tile).setTemperature(evt.temperature);
|
|
||||||
return;
|
|
||||||
}else if (tile instanceof IElectromagnet)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
evt.world.setBlockToAir(evt.x, evt.y, evt.z);
|
|
||||||
evt.world.setBlock(evt.x, evt.y, evt.z, blockPlasma);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
@SideOnly(Side.CLIENT)
|
|
||||||
public void preTextureHook(TextureStitchEvent.Pre event)
|
|
||||||
{
|
|
||||||
if (event.map.getTextureType() == 0)
|
|
||||||
{
|
|
||||||
RenderUtility.registerIcon(Reference.prefix() + "uraniumHexafluoride", event.map);
|
|
||||||
RenderUtility.registerIcon(Reference.prefix() + "steam", event.map);
|
|
||||||
RenderUtility.registerIcon(Reference.prefix() + "deuterium", event.map);
|
|
||||||
RenderUtility.registerIcon(Reference.prefix() + "tritium", event.map);
|
|
||||||
RenderUtility.registerIcon(Reference.prefix() + "atomic_edge", event.map);
|
|
||||||
RenderUtility.registerIcon(Reference.prefix() + "funnel_edge", event.map);
|
|
||||||
RenderUtility.registerIcon(Reference.prefix() + "glass", event.map);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
@SideOnly(Side.CLIENT)
|
|
||||||
public void postTextureHook(TextureStitchEvent.Post event)
|
|
||||||
{
|
|
||||||
FLUID_URANIUM_HEXAFLOURIDE.setIcons(RenderUtility.loadedIconMap.get(Reference.prefix() + "uraniumHexafluoride"));
|
|
||||||
FLUID_STEAM.setIcons(RenderUtility.loadedIconMap.get(Reference.prefix() + "steam"));
|
|
||||||
FLUID_DEUTERIUM.setIcons(RenderUtility.loadedIconMap.get(Reference.prefix() + "deuterium"));
|
|
||||||
FLUID_TRITIUM.setIcons(RenderUtility.loadedIconMap.get(Reference.prefix() + "tritium"));
|
|
||||||
FLUID_TOXIC_WASTE.setIcons(blockToxicWaste.getIcon(0, 0));
|
|
||||||
FLUID_PLASMA.setIcons(blockPlasma.getIcon(0, 0));
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void fillBucketEvent(FillBucketEvent evt)
|
|
||||||
{
|
|
||||||
if (!evt.world.isRemote && evt.target != null && evt.target.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK)
|
|
||||||
{
|
|
||||||
VectorWorld pos = new VectorWorld(evt.world, evt.target);
|
|
||||||
|
|
||||||
if (pos.getBlock() == blockToxicWaste)
|
|
||||||
{
|
|
||||||
pos.setBlockToAir();
|
|
||||||
evt.result = new ItemStack(itemBucketToxic);
|
|
||||||
evt.setResult(Event.Result.ALLOW);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Recipes */
|
|
||||||
public static enum RecipeType
|
|
||||||
{
|
|
||||||
CHEMICAL_EXTRACTOR;
|
|
||||||
}
|
|
||||||
}
|
|
429
src/main/scala/resonantinduction/atomic/Atomic.scala
Normal file
429
src/main/scala/resonantinduction/atomic/Atomic.scala
Normal file
|
@ -0,0 +1,429 @@
|
||||||
|
package resonantinduction.atomic
|
||||||
|
|
||||||
|
import cpw.mods.fml.common.eventhandler.Event
|
||||||
|
import cpw.mods.fml.common.eventhandler.SubscribeEvent
|
||||||
|
import ic2.api.item.IC2Items
|
||||||
|
import net.minecraft.block.material.Material
|
||||||
|
import net.minecraft.creativetab.CreativeTabs
|
||||||
|
import net.minecraft.init.Blocks
|
||||||
|
import net.minecraft.init.Items
|
||||||
|
import net.minecraft.item.ItemArmor
|
||||||
|
import net.minecraft.util.MovingObjectPosition
|
||||||
|
import net.minecraftforge.common.config.Configuration
|
||||||
|
import net.minecraftforge.common.util.EnumHelper
|
||||||
|
import resonant.api.event.PlasmaEvent
|
||||||
|
import resonant.content.loader.ModManager
|
||||||
|
import resonant.engine.content.debug.TileCreativeBuilder
|
||||||
|
import resonant.engine.grid.thermal.EventThermal
|
||||||
|
import resonant.lib.network.discriminator.PacketAnnotation
|
||||||
|
import resonant.lib.network.discriminator.PacketAnnotationManager
|
||||||
|
import resonant.lib.ore.OreGenReplaceStone
|
||||||
|
import resonant.lib.ore.OreGenerator
|
||||||
|
import resonantinduction.atomic.blocks._
|
||||||
|
import resonantinduction.atomic.items._
|
||||||
|
import resonantinduction.atomic.machine.TileFunnel
|
||||||
|
import resonantinduction.atomic.machine.boiler.TileNuclearBoiler
|
||||||
|
import resonantinduction.atomic.machine.extractor.TileChemicalExtractor
|
||||||
|
import resonantinduction.atomic.machine.fulmination.FulminationHandler
|
||||||
|
import resonantinduction.atomic.machine.fulmination.TileFulmination
|
||||||
|
import resonantinduction.atomic.machine.plasma.BlockPlasmaHeater
|
||||||
|
import resonantinduction.atomic.machine.plasma.TilePlasma
|
||||||
|
import resonantinduction.atomic.machine.quantum.TileQuantumAssembler
|
||||||
|
import resonantinduction.atomic.machine.reactor.TileReactorCell
|
||||||
|
import resonantinduction.atomic.schematic.SchematicBreedingReactor
|
||||||
|
import resonantinduction.mechanical.energy.turbine.TileElectricTurbine
|
||||||
|
import universalelectricity.core.transform.vector.VectorWorld
|
||||||
|
import ic2.api.recipe.IRecipeInput
|
||||||
|
import ic2.api.recipe.RecipeOutput
|
||||||
|
import ic2.api.recipe.Recipes
|
||||||
|
import java.util.Iterator
|
||||||
|
import java.util.List
|
||||||
|
import java.util.Map
|
||||||
|
import java.util.Map.Entry
|
||||||
|
import net.minecraft.block.Block
|
||||||
|
import net.minecraft.item.Item
|
||||||
|
import net.minecraft.item.ItemBucket
|
||||||
|
import net.minecraft.item.ItemStack
|
||||||
|
import net.minecraft.tileentity.TileEntity
|
||||||
|
import net.minecraft.world.World
|
||||||
|
import net.minecraftforge.client.event.TextureStitchEvent
|
||||||
|
import net.minecraftforge.common.ForgeChunkManager
|
||||||
|
import net.minecraftforge.common.ForgeChunkManager.LoadingCallback
|
||||||
|
import net.minecraftforge.common.ForgeChunkManager.Ticket
|
||||||
|
import net.minecraftforge.common.ForgeChunkManager.Type
|
||||||
|
import net.minecraftforge.common.MinecraftForge
|
||||||
|
import net.minecraftforge.event.entity.player.FillBucketEvent
|
||||||
|
import net.minecraftforge.fluids.Fluid
|
||||||
|
import net.minecraftforge.fluids.FluidContainerRegistry
|
||||||
|
import net.minecraftforge.fluids.FluidRegistry
|
||||||
|
import net.minecraftforge.fluids.FluidStack
|
||||||
|
import net.minecraftforge.oredict.OreDictionary
|
||||||
|
import net.minecraftforge.oredict.ShapedOreRecipe
|
||||||
|
import net.minecraftforge.oredict.ShapelessOreRecipe
|
||||||
|
import resonant.api.IElectromagnet
|
||||||
|
import resonant.api.event.PlasmaEvent.SpawnPlasmaEvent
|
||||||
|
import resonant.api.recipe.QuantumAssemblerRecipes
|
||||||
|
import resonant.lib.recipe.UniversalRecipe
|
||||||
|
import resonant.lib.render.RenderUtility
|
||||||
|
import resonantinduction.atomic.machine.accelerator.EntityParticle
|
||||||
|
import resonantinduction.atomic.machine.accelerator.TileAccelerator
|
||||||
|
import resonantinduction.atomic.machine.centrifuge.TileCentrifuge
|
||||||
|
import resonantinduction.atomic.machine.plasma.TilePlasmaHeater
|
||||||
|
import resonantinduction.atomic.machine.reactor.TileControlRod
|
||||||
|
import resonantinduction.atomic.machine.thermometer.TileThermometer
|
||||||
|
import resonantinduction.atomic.schematic.SchematicAccelerator
|
||||||
|
import resonantinduction.atomic.schematic.SchematicFissionReactor
|
||||||
|
import resonantinduction.atomic.schematic.SchematicFusionReactor
|
||||||
|
import resonantinduction.core.Reference
|
||||||
|
import resonantinduction.core.ResonantInduction
|
||||||
|
import resonantinduction.core.ResonantTab
|
||||||
|
import resonantinduction.core.Settings
|
||||||
|
import cpw.mods.fml.common.Loader
|
||||||
|
import cpw.mods.fml.common.Mod
|
||||||
|
import cpw.mods.fml.common.Mod.EventHandler
|
||||||
|
import cpw.mods.fml.common.Mod.Instance
|
||||||
|
import cpw.mods.fml.common.ModMetadata
|
||||||
|
import cpw.mods.fml.common.SidedProxy
|
||||||
|
import cpw.mods.fml.common.event.FMLInitializationEvent
|
||||||
|
import cpw.mods.fml.common.event.FMLPostInitializationEvent
|
||||||
|
import cpw.mods.fml.common.event.FMLPreInitializationEvent
|
||||||
|
import cpw.mods.fml.common.network.NetworkRegistry
|
||||||
|
import cpw.mods.fml.common.registry.EntityRegistry
|
||||||
|
import cpw.mods.fml.common.registry.GameRegistry
|
||||||
|
import cpw.mods.fml.relauncher.Side
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly
|
||||||
|
|
||||||
|
object Atomic {
|
||||||
|
/** Is this ItemStack a cell?
|
||||||
|
*
|
||||||
|
* @param itemStack
|
||||||
|
* @return*/
|
||||||
|
def isItemStackEmptyCell(itemStack: ItemStack): Boolean = {
|
||||||
|
return isItemStackOreDictionaryCompatible(itemStack, "cellEmpty")
|
||||||
|
}
|
||||||
|
|
||||||
|
def isItemStackWaterCell(itemStack: ItemStack): Boolean = {
|
||||||
|
return isItemStackOreDictionaryCompatible(itemStack, "cellWater")
|
||||||
|
}
|
||||||
|
|
||||||
|
def isItemStackUraniumOre(itemStack: ItemStack): Boolean = {
|
||||||
|
return isItemStackOreDictionaryCompatible(itemStack, "dropUranium", "oreUranium")
|
||||||
|
}
|
||||||
|
|
||||||
|
def isItemStackDeuteriumCell(itemStack: ItemStack): Boolean = {
|
||||||
|
return isItemStackOreDictionaryCompatible(itemStack, "molecule_1d", "molecule_1h2", "cellDeuterium")
|
||||||
|
}
|
||||||
|
|
||||||
|
def isItemStackTritiumCell(itemStack: ItemStack): Boolean = {
|
||||||
|
return isItemStackOreDictionaryCompatible(itemStack, "molecule_h3", "cellTritium")
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Compare to Ore Dict
|
||||||
|
*
|
||||||
|
* @param itemStack
|
||||||
|
* @return*/
|
||||||
|
def isItemStackOreDictionaryCompatible(itemStack: ItemStack, names: String*): Boolean = {
|
||||||
|
if (itemStack != null && names != null && names.length > 0) {
|
||||||
|
val name: String = OreDictionary.getOreName(OreDictionary.getOreID(itemStack))
|
||||||
|
for (compareName <- names) {
|
||||||
|
if (name == compareName) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
def getFluidAmount(fluid: FluidStack): Int = {
|
||||||
|
if (fluid != null) {
|
||||||
|
return fluid.amount
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
final val ID: String = "ResonantInduction|Atomic"
|
||||||
|
final val TEXTURE_DIRECTORY: String = "textures/"
|
||||||
|
final val GUI_TEXTURE_DIRECTORY: String = TEXTURE_DIRECTORY + "gui/"
|
||||||
|
final val ENTITY_ID_PREFIX: Int = 49
|
||||||
|
final val SECOND_IN_TICKS: Int = 20
|
||||||
|
final val NAME: String = Reference.name + " Atomic"
|
||||||
|
final val contentRegistry: ModManager = new ModManager().setPrefix(Reference.prefix).setTab(ResonantTab.tab)
|
||||||
|
private final val SUPPORTED_LANGUAGES: Array[String] = Array[String]("en_US", "pl_PL", "de_DE", "ru_RU")
|
||||||
|
@Instance(ID) var INSTANCE: Atomic = null
|
||||||
|
@SidedProxy(clientSide = "ClientProxy", serverSide = "CommonProxy") var proxy: CommonProxy = null
|
||||||
|
@Mod.Metadata(ID) var metadata: ModMetadata = null
|
||||||
|
/** Block and Items */
|
||||||
|
var blockRadioactive: Block = null
|
||||||
|
var blockCentrifuge: Block = null
|
||||||
|
var blockNuclearBoiler: Block = null
|
||||||
|
var blockControlRod: Block = null
|
||||||
|
var blockThermometer: Block = null
|
||||||
|
var blockFusionCore: Block = null
|
||||||
|
var blockPlasma: Block = null
|
||||||
|
var blockElectromagnet: Block = null
|
||||||
|
var blockChemicalExtractor: Block = null
|
||||||
|
var blockSiren: Block = null
|
||||||
|
var blockSteamFunnel: Block = null
|
||||||
|
var blockAccelerator: Block = null
|
||||||
|
var blockFulmination: Block = null
|
||||||
|
var blockQuantumAssembler: Block = null
|
||||||
|
var blockReactorCell: Block = null
|
||||||
|
var blockUraniumOre: Block = null
|
||||||
|
var itemCell: Item = null
|
||||||
|
var itemFissileFuel: Item = null
|
||||||
|
var itemBreedingRod: Item = null
|
||||||
|
var itemDarkMatter: Item = null
|
||||||
|
var itemAntimatter: Item = null
|
||||||
|
var itemDeuteriumCell: Item = null
|
||||||
|
var itemTritiumCell: Item = null
|
||||||
|
var itemWaterCell: Item = null
|
||||||
|
var itemBucketToxic: Item = null
|
||||||
|
var itemYellowCake: Item = null
|
||||||
|
var itemUranium: Item = null
|
||||||
|
var itemHazmatTop: Item = null
|
||||||
|
var itemHazmatBody: Item = null
|
||||||
|
var itemHazmatLeggings: Item = null
|
||||||
|
var itemHazmatBoots: Item = null
|
||||||
|
/** Fluids */
|
||||||
|
var blockToxicWaste: Block = null
|
||||||
|
/** Water, Uranium Hexafluoride, Steam, Deuterium, Toxic waste */
|
||||||
|
var FLUIDSTACK_WATER: FluidStack = null
|
||||||
|
var FLUIDSTACK_URANIUM_HEXAFLOURIDE: FluidStack = null
|
||||||
|
var FLUIDSTACK_STEAM: FluidStack = null
|
||||||
|
var FLUIDSTACK_DEUTERIUM: FluidStack = null
|
||||||
|
var FLUIDSTACK_TRITIUM: FluidStack = null
|
||||||
|
var FLUIDSTACK_TOXIC_WASTE: FluidStack = null
|
||||||
|
var FLUID_URANIUM_HEXAFLOURIDE: Fluid = null
|
||||||
|
var FLUID_PLASMA: Fluid = null
|
||||||
|
var FLUID_STEAM: Fluid = null
|
||||||
|
var FLUID_DEUTERIUM: Fluid = null
|
||||||
|
var FLUID_TRITIUM: Fluid = null
|
||||||
|
var FLUID_TOXIC_WASTE: Fluid = null
|
||||||
|
var uraniumOreGeneration: OreGenerator = null
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Mod(modid = Atomic.ID, name = Atomic.NAME, version = Reference.version, dependencies = "required-after:ResonantEngine;after:IC2;after:ResonantInduction|Electrical;required-after:" + Reference.coreID)
|
||||||
|
class Atomic {
|
||||||
|
@EventHandler def preInit(event: FMLPreInitializationEvent) {
|
||||||
|
Atomic.INSTANCE = this
|
||||||
|
MinecraftForge.EVENT_BUS.register(this)
|
||||||
|
NetworkRegistry.INSTANCE.registerGuiHandler(this, Atomic.proxy)
|
||||||
|
TileCreativeBuilder.register(new SchematicAccelerator)
|
||||||
|
TileCreativeBuilder.register(new SchematicBreedingReactor)
|
||||||
|
TileCreativeBuilder.register(new SchematicFissionReactor)
|
||||||
|
TileCreativeBuilder.register(new SchematicFusionReactor)
|
||||||
|
Settings.config.load
|
||||||
|
Atomic.FLUID_URANIUM_HEXAFLOURIDE = new Fluid("uraniumhexafluoride").setGaseous(true)
|
||||||
|
Atomic.FLUID_STEAM = new Fluid("steam").setGaseous(true)
|
||||||
|
Atomic.FLUID_DEUTERIUM = new Fluid("deuterium").setGaseous(true)
|
||||||
|
Atomic.FLUID_TRITIUM = new Fluid("tritium").setGaseous(true)
|
||||||
|
Atomic.FLUID_TOXIC_WASTE = new Fluid("toxicwaste")
|
||||||
|
Atomic.FLUID_PLASMA = new Fluid("plasma").setGaseous(true)
|
||||||
|
FluidRegistry.registerFluid(Atomic.FLUID_URANIUM_HEXAFLOURIDE)
|
||||||
|
FluidRegistry.registerFluid(Atomic.FLUID_STEAM)
|
||||||
|
FluidRegistry.registerFluid(Atomic.FLUID_TRITIUM)
|
||||||
|
FluidRegistry.registerFluid(Atomic.FLUID_DEUTERIUM)
|
||||||
|
FluidRegistry.registerFluid(Atomic.FLUID_TOXIC_WASTE)
|
||||||
|
FluidRegistry.registerFluid(Atomic.FLUID_PLASMA)
|
||||||
|
Atomic.FLUIDSTACK_WATER = new FluidStack(FluidRegistry.WATER, 0)
|
||||||
|
Atomic.FLUIDSTACK_URANIUM_HEXAFLOURIDE = new FluidStack(Atomic.FLUID_URANIUM_HEXAFLOURIDE, 0)
|
||||||
|
Atomic.FLUIDSTACK_STEAM = new FluidStack(FluidRegistry.getFluidID("steam"), 0)
|
||||||
|
Atomic.FLUIDSTACK_DEUTERIUM = new FluidStack(FluidRegistry.getFluidID("deuterium"), 0)
|
||||||
|
Atomic.FLUIDSTACK_TRITIUM = new FluidStack(FluidRegistry.getFluidID("tritium"), 0)
|
||||||
|
Atomic.FLUIDSTACK_TOXIC_WASTE = new FluidStack(FluidRegistry.getFluidID("toxicwaste"), 0)
|
||||||
|
Atomic.blockRadioactive = new BlockRadioactive(Material.rock).setBlockName(Reference.prefix + "radioactive").setBlockTextureName(Reference.prefix + "radioactive").setCreativeTab(CreativeTabs.tabBlock)
|
||||||
|
Atomic.blockUraniumOre = new BlockUraniumOre
|
||||||
|
Atomic.blockToxicWaste = new BlockToxicWaste().setCreativeTab(null)
|
||||||
|
Atomic.blockCentrifuge = Atomic.contentRegistry.newBlock(classOf[TileCentrifuge])
|
||||||
|
Atomic.blockReactorCell = Atomic.contentRegistry.newBlock(classOf[TileReactorCell])
|
||||||
|
Atomic.blockNuclearBoiler = Atomic.contentRegistry.newBlock(classOf[TileNuclearBoiler])
|
||||||
|
Atomic.blockChemicalExtractor =Atomic. contentRegistry.newBlock(classOf[TileChemicalExtractor])
|
||||||
|
Atomic.blockFusionCore = Atomic.contentRegistry.newBlock(classOf[TilePlasmaHeater])
|
||||||
|
Atomic.blockControlRod = Atomic.contentRegistry.newBlock(classOf[TileControlRod])
|
||||||
|
Atomic.blockThermometer = Atomic.contentRegistry.newBlock(classOf[TileThermometer])
|
||||||
|
Atomic.blockPlasma = Atomic.contentRegistry.newBlock(classOf[TilePlasma])
|
||||||
|
Atomic.blockElectromagnet = Atomic.contentRegistry.newBlock(classOf[TileElectromagnet])
|
||||||
|
Atomic.blockSiren = Atomic.contentRegistry.newBlock(classOf[TileSiren])
|
||||||
|
Atomic.blockSteamFunnel = Atomic.contentRegistry.newBlock(classOf[TileFunnel])
|
||||||
|
Atomic.blockAccelerator = Atomic.contentRegistry.newBlock(classOf[TileAccelerator])
|
||||||
|
Atomic.blockFulmination = Atomic.contentRegistry.newBlock(classOf[TileFulmination])
|
||||||
|
Atomic.blockQuantumAssembler = Atomic.contentRegistry.newBlock(classOf[TileQuantumAssembler])
|
||||||
|
Atomic.itemHazmatTop = new ItemHazmat("HazmatMask", 0)
|
||||||
|
Atomic.itemHazmatBody = new ItemHazmat("HazmatBody", 1)
|
||||||
|
Atomic.itemHazmatLeggings = new ItemHazmat("HazmatLeggings", 2)
|
||||||
|
Atomic.itemHazmatBoots = new ItemHazmat("HazmatBoots", 3)
|
||||||
|
Atomic.itemCell = new Item().setUnlocalizedName("cellEmpty")
|
||||||
|
Atomic.itemFissileFuel = new ItemFissileFuel().setUnlocalizedName("rodFissileFuel")
|
||||||
|
Atomic.itemDeuteriumCell = new ItemCell().setUnlocalizedName("cellDeuterium")
|
||||||
|
Atomic.itemTritiumCell = new ItemCell().setUnlocalizedName("cellTritium")
|
||||||
|
Atomic.itemWaterCell = new ItemCell().setUnlocalizedName("cellWater")
|
||||||
|
Atomic.itemDarkMatter = new ItemDarkMatter().setUnlocalizedName("darkMatter")
|
||||||
|
Atomic.itemAntimatter = new ItemAntimatter().setUnlocalizedName("antimatter")
|
||||||
|
Atomic.itemBreedingRod = new ItemBreederFuel().setUnlocalizedName("rodBreederFuel")
|
||||||
|
Atomic.itemYellowCake = new ItemRadioactive().setUnlocalizedName("yellowcake")
|
||||||
|
Atomic.itemUranium = Atomic.contentRegistry.newItem(classOf[ItemUranium])
|
||||||
|
Atomic.FLUID_PLASMA.setBlock(Atomic.blockPlasma)
|
||||||
|
Atomic.itemBucketToxic = new ItemBucket(Atomic.blockPlasma).setCreativeTab(ResonantTab.tab).setUnlocalizedName(Reference.prefix + "bucketToxicWaste").setContainerItem(Items.bucket).setTextureName(Reference.prefix + "bucketToxicWaste")
|
||||||
|
FluidContainerRegistry.registerFluidContainer(FluidRegistry.getFluid("toxicwaste"), new ItemStack(Atomic.itemBucketToxic), new ItemStack(Items.bucket))
|
||||||
|
FluidContainerRegistry.registerFluidContainer(FluidRegistry.WATER, new ItemStack(Atomic.itemWaterCell), new ItemStack(Atomic.itemCell))
|
||||||
|
FluidContainerRegistry.registerFluidContainer(new FluidStack(FluidRegistry.getFluid("deuterium"), 200), new ItemStack(Atomic.itemDeuteriumCell), new ItemStack(Atomic.itemCell))
|
||||||
|
FluidContainerRegistry.registerFluidContainer(new FluidStack(FluidRegistry.getFluid("tritium"), 200), new ItemStack(Atomic.itemTritiumCell), new ItemStack(Atomic.itemCell))
|
||||||
|
if (OreDictionary.getOres("oreUranium").size > 1 && Settings.config.get(Configuration.CATEGORY_GENERAL, "Auto Disable Uranium If Exist", false).getBoolean(false)) {
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Atomic.uraniumOreGeneration = new OreGenReplaceStone("Uranium Ore", new ItemStack(Atomic.blockUraniumOre), 25, 9, 3)
|
||||||
|
Atomic.uraniumOreGeneration.enable(Settings.config)
|
||||||
|
OreGenerator.addOre(Atomic.uraniumOreGeneration)
|
||||||
|
}
|
||||||
|
Settings.config.save
|
||||||
|
MinecraftForge.EVENT_BUS.register(Atomic.itemAntimatter)
|
||||||
|
MinecraftForge.EVENT_BUS.register(FulminationHandler.INSTANCE)
|
||||||
|
if (Settings.allowOreDictionaryCompatibility) {
|
||||||
|
OreDictionary.registerOre("ingotUranium", Atomic.itemUranium)
|
||||||
|
OreDictionary.registerOre("dustUranium", Atomic.itemYellowCake)
|
||||||
|
}
|
||||||
|
OreDictionary.registerOre("breederUranium", new ItemStack(Atomic.itemUranium, 1, 1))
|
||||||
|
OreDictionary.registerOre("blockRadioactive", Atomic.blockRadioactive)
|
||||||
|
OreDictionary.registerOre("cellEmpty", Atomic.itemCell)
|
||||||
|
OreDictionary.registerOre("cellUranium", Atomic.itemFissileFuel)
|
||||||
|
OreDictionary.registerOre("cellTritium", Atomic.itemTritiumCell)
|
||||||
|
OreDictionary.registerOre("cellDeuterium", Atomic.itemDeuteriumCell)
|
||||||
|
OreDictionary.registerOre("cellWater", Atomic.itemWaterCell)
|
||||||
|
OreDictionary.registerOre("strangeMatter", Atomic.itemDarkMatter)
|
||||||
|
OreDictionary.registerOre("antimatterMilligram", new ItemStack(Atomic.itemAntimatter, 1, 0))
|
||||||
|
OreDictionary.registerOre("antimatterGram", new ItemStack(Atomic.itemAntimatter, 1, 1))
|
||||||
|
ForgeChunkManager.setForcedChunkLoadingCallback(this, new ForgeChunkManager.LoadingCallback {
|
||||||
|
def ticketsLoaded(tickets: List[ForgeChunkManager.Ticket], world: World) {
|
||||||
|
import scala.collection.JavaConversions._
|
||||||
|
for (ticket <- tickets) {
|
||||||
|
if (ticket.getType eq Type.ENTITY) {
|
||||||
|
if (ticket.getEntity != null) {
|
||||||
|
if (ticket.getEntity.isInstanceOf[EntityParticle]) {
|
||||||
|
(ticket.getEntity.asInstanceOf[EntityParticle]).updateTicket = ticket
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
Settings.config.save
|
||||||
|
ResonantTab.itemStack(new ItemStack(Atomic.blockReactorCell))
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler def init(evt: FMLInitializationEvent) {
|
||||||
|
Atomic.proxy.init
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler def postInit(event: FMLPostInitializationEvent) {
|
||||||
|
if (Loader.isModLoaded("IC2") && Settings.allowAlternateRecipes) {
|
||||||
|
OreDictionary.registerOre("cellEmpty", IC2Items.getItem("cell"))
|
||||||
|
val cellEmptyName: String = OreDictionary.getOreName(OreDictionary.getOreID("cellEmpty"))
|
||||||
|
if (cellEmptyName eq "Unknown") {
|
||||||
|
}
|
||||||
|
GameRegistry.addRecipe(new ShapelessOreRecipe(Atomic.itemYellowCake, IC2Items.getItem("reactorUraniumSimple")))
|
||||||
|
GameRegistry.addRecipe(new ShapelessOreRecipe(IC2Items.getItem("cell"), Atomic.itemCell))
|
||||||
|
GameRegistry.addRecipe(new ShapelessOreRecipe(Atomic.itemCell, "cellEmpty"))
|
||||||
|
}
|
||||||
|
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(Atomic.itemAntimatter, 1, 1), Array[AnyRef](Atomic.itemAntimatter, Atomic.itemAntimatter, Atomic.itemAntimatter, Atomic.itemAntimatter, Atomic.itemAntimatter, Atomic.itemAntimatter, Atomic.itemAntimatter, Atomic.itemAntimatter)))
|
||||||
|
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(Atomic.itemAntimatter, 8, 0), Array[AnyRef](new ItemStack(Atomic.itemAntimatter, 1, 1))))
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Atomic.blockSteamFunnel, 2), Array[AnyRef](" B ", "B B", "B B", 'B', UniversalRecipe.SECONDARY_METAL.get)))
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Atomic.blockSteamFunnel, 2), Array[AnyRef](" B ", "B B", "B B", 'B', "ingotIron")))
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(Atomic.blockQuantumAssembler, Array[AnyRef]("CCC", "SXS", "SSS", 'X', Atomic.blockCentrifuge, 'C', UniversalRecipe.CIRCUIT_T3.get, 'S', UniversalRecipe.PRIMARY_PLATE.get)))
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(Atomic.blockFulmination, Array[AnyRef]("OSO", "SCS", "OSO", 'O', Blocks.obsidian, 'C', UniversalRecipe.CIRCUIT_T2.get, 'S', UniversalRecipe.PRIMARY_PLATE.get)))
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(Atomic.blockAccelerator, Array[AnyRef]("SCS", "CMC", "SCS", 'M', UniversalRecipe.MOTOR.get, 'C', UniversalRecipe.CIRCUIT_T3.get, 'S', UniversalRecipe.PRIMARY_PLATE.get)))
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(Atomic.blockCentrifuge, Array[AnyRef]("BSB", "MCM", "BSB", 'C', UniversalRecipe.CIRCUIT_T2.get, 'S', UniversalRecipe.PRIMARY_PLATE.get, 'B', UniversalRecipe.SECONDARY_METAL.get, 'M', UniversalRecipe.MOTOR.get)))
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(Atomic.blockNuclearBoiler, Array[AnyRef]("S S", "FBF", "SMS", 'F', Blocks.furnace, 'S', UniversalRecipe.PRIMARY_PLATE.get, 'B', Items.bucket, 'M', UniversalRecipe.MOTOR.get)))
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(Atomic.blockChemicalExtractor, Array[AnyRef]("BSB", "MCM", "BSB", 'C', UniversalRecipe.CIRCUIT_T3.get, 'S', UniversalRecipe.PRIMARY_PLATE.get, 'B', UniversalRecipe.SECONDARY_METAL.get, 'M', UniversalRecipe.MOTOR.get)))
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Atomic.blockSiren, 2), Array[AnyRef]("NPN", 'N', Blocks.noteblock, 'P', UniversalRecipe.SECONDARY_PLATE.get)))
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(Atomic.blockReactorCell, Array[AnyRef]("SCS", "MEM", "SCS", 'E', "cellEmpty", 'C', UniversalRecipe.CIRCUIT_T2.get, 'S', UniversalRecipe.PRIMARY_PLATE.get, 'M', UniversalRecipe.MOTOR.get)))
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(Atomic.blockFusionCore, Array[AnyRef]("CPC", "PFP", "CPC", 'P', UniversalRecipe.PRIMARY_PLATE.get, 'F', Atomic.blockReactorCell, 'C', UniversalRecipe.CIRCUIT_T3.get)))
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Atomic.itemCell, 16), Array[AnyRef](" T ", "TGT", " T ", 'T', "ingotTin", 'G', Blocks.glass)))
|
||||||
|
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(Atomic.itemWaterCell), Array[AnyRef]("cellEmpty", Items.water_bucket)))
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(Atomic.blockThermometer, Array[AnyRef]("SSS", "GCG", "GSG", 'S', UniversalRecipe.PRIMARY_METAL.get, 'G', Blocks.glass, 'C', UniversalRecipe.CIRCUIT_T1.get)))
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(Atomic.blockControlRod, Array[AnyRef]("I", "I", "I", 'I', Items.iron_ingot)))
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(Atomic.itemFissileFuel, Array[AnyRef]("CUC", "CUC", "CUC", 'U', "ingotUranium", 'C', "cellEmpty")))
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(Atomic.itemBreedingRod, Array[AnyRef]("CUC", "CUC", "CUC", 'U', "breederUranium", 'C', "cellEmpty")))
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Atomic.blockElectromagnet, 2, 0), Array[AnyRef]("BBB", "BMB", "BBB", 'B', UniversalRecipe.SECONDARY_METAL.get, 'M', UniversalRecipe.MOTOR.get)))
|
||||||
|
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(Atomic.blockElectromagnet, 1, 1), Array[AnyRef](Atomic.blockElectromagnet, Blocks.glass)))
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(Atomic.itemHazmatTop, Array[AnyRef]("SSS", "BAB", "SCS", 'A', Items.leather_helmet, 'C', UniversalRecipe.CIRCUIT_T1.get, 'S', Blocks.wool)))
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(Atomic.itemHazmatBody, Array[AnyRef]("SSS", "BAB", "SCS", 'A', Items.leather_chestplate, 'C', UniversalRecipe.CIRCUIT_T1.get, 'S', Blocks.wool)))
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(Atomic.itemHazmatLeggings, Array[AnyRef]("SSS", "BAB", "SCS", 'A', Items.leather_leggings, 'C', UniversalRecipe.CIRCUIT_T1.get, 'S', Blocks.wool)))
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(Atomic.itemHazmatBoots, Array[AnyRef]("SSS", "BAB", "SCS", 'A', Items.leather_boots, 'C', UniversalRecipe.CIRCUIT_T1.get, 'S', Blocks.wool)))
|
||||||
|
EntityRegistry.registerGlobalEntityID(classOf[EntityParticle], "ASParticle", EntityRegistry.findGlobalUniqueEntityId)
|
||||||
|
EntityRegistry.registerModEntity(classOf[EntityParticle], "ASParticle", Atomic.ENTITY_ID_PREFIX, this, 80, 3, true)
|
||||||
|
Atomic.proxy.init
|
||||||
|
Settings.config.load
|
||||||
|
for (oreName <- OreDictionary.getOreNames) {
|
||||||
|
if (oreName.startsWith("ingot")) {
|
||||||
|
import scala.collection.JavaConversions._
|
||||||
|
for (itemStack <- OreDictionary.getOres(oreName)) {
|
||||||
|
if (itemStack != null) {
|
||||||
|
QuantumAssemblerRecipes.addRecipe(itemStack)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Settings.config.save
|
||||||
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent def thermalEventHandler(evt: EventThermal.EventThermalUpdate) {
|
||||||
|
val pos: VectorWorld = evt.position
|
||||||
|
val block: Block = pos.getBlock
|
||||||
|
if (block == Atomic.blockElectromagnet) {
|
||||||
|
evt.heatLoss = evt.deltaTemperature * 0.6f
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler def plasmaEvent(evt: PlasmaEvent.SpawnPlasmaEvent) {
|
||||||
|
val block: Block = evt.world.getBlock(evt.x, evt.y, evt.z)
|
||||||
|
if (block != null && block.getBlockHardness(evt.world, evt.x, evt.y, evt.z) >= 0) {
|
||||||
|
val tile: TileEntity = evt.world.getTileEntity(evt.x, evt.y, evt.z)
|
||||||
|
if (tile.isInstanceOf[TilePlasma]) {
|
||||||
|
(tile.asInstanceOf[TilePlasma]).setTemperature(evt.temperature)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
else if (tile.isInstanceOf[IElectromagnet]) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
evt.world.setBlockToAir(evt.x, evt.y, evt.z)
|
||||||
|
evt.world.setBlock(evt.x, evt.y, evt.z, Atomic.blockPlasma)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
@SideOnly(Side.CLIENT) def preTextureHook(event: TextureStitchEvent.Pre) {
|
||||||
|
if (event.map.getTextureType == 0) {
|
||||||
|
RenderUtility.registerIcon(Reference.prefix + "uraniumHexafluoride", event.map)
|
||||||
|
RenderUtility.registerIcon(Reference.prefix + "steam", event.map)
|
||||||
|
RenderUtility.registerIcon(Reference.prefix + "deuterium", event.map)
|
||||||
|
RenderUtility.registerIcon(Reference.prefix + "tritium", event.map)
|
||||||
|
RenderUtility.registerIcon(Reference.prefix + "atomic_edge", event.map)
|
||||||
|
RenderUtility.registerIcon(Reference.prefix + "funnel_edge", event.map)
|
||||||
|
RenderUtility.registerIcon(Reference.prefix + "glass", event.map)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
@SideOnly(Side.CLIENT) def postTextureHook(event: TextureStitchEvent.Post) {
|
||||||
|
Atomic.FLUID_URANIUM_HEXAFLOURIDE.setIcons(RenderUtility.loadedIconMap.get(Reference.prefix + "uraniumHexafluoride"))
|
||||||
|
Atomic.FLUID_STEAM.setIcons(RenderUtility.loadedIconMap.get(Reference.prefix + "steam"))
|
||||||
|
Atomic.FLUID_DEUTERIUM.setIcons(RenderUtility.loadedIconMap.get(Reference.prefix + "deuterium"))
|
||||||
|
Atomic.FLUID_TRITIUM.setIcons(RenderUtility.loadedIconMap.get(Reference.prefix + "tritium"))
|
||||||
|
Atomic.FLUID_TOXIC_WASTE.setIcons(Atomic.blockToxicWaste.getIcon(0, 0))
|
||||||
|
Atomic.FLUID_PLASMA.setIcons(Atomic.blockPlasma.getIcon(0, 0))
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler def fillBucketEvent(evt: FillBucketEvent) {
|
||||||
|
if (!evt.world.isRemote && evt.target != null && evt.target.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) {
|
||||||
|
val pos: VectorWorld = new VectorWorld(evt.world, evt.target)
|
||||||
|
if (pos.getBlock eq Atomic.blockToxicWaste) {
|
||||||
|
pos.setBlockToAir
|
||||||
|
evt.result = new ItemStack(Atomic.itemBucketToxic)
|
||||||
|
evt.setResult(Event.Result.ALLOW)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,116 +0,0 @@
|
||||||
package resonantinduction.atomic;
|
|
||||||
|
|
||||||
import resonantinduction.atomic.machine.accelerator.EntityParticle;
|
|
||||||
import resonantinduction.atomic.machine.accelerator.RenderParticle;
|
|
||||||
import atomic.machine.boiler.GuiNuclearBoiler;
|
|
||||||
import resonantinduction.atomic.machine.boiler.RenderNuclearBoiler;
|
|
||||||
import atomic.machine.boiler.TileNuclearBoiler;
|
|
||||||
import resonantinduction.atomic.machine.centrifuge.GuiCentrifuge;
|
|
||||||
import atomic.machine.centrifuge.RenderCentrifuge;
|
|
||||||
import resonantinduction.atomic.machine.extractor.RenderChemicalExtractor;
|
|
||||||
import atomic.machine.extractor.TileChemicalExtractor;
|
|
||||||
import resonantinduction.atomic.machine.extractor.turbine.TileElectricTurbine;
|
|
||||||
import atomic.machine.plasma.RenderPlasmaHeater;
|
|
||||||
import resonantinduction.atomic.machine.quantum.TileQuantumAssembler;
|
|
||||||
import atomic.machine.reactor.GuiReactorCell;
|
|
||||||
import resonantinduction.atomic.machine.reactor.RenderReactorCell;
|
|
||||||
import resonantinduction.atomic.machine.thermometer.RenderThermometer;
|
|
||||||
import resonantinduction.atomic.machine.thermometer.TileThermometer;
|
|
||||||
import net.minecraft.block.Block;
|
|
||||||
import net.minecraft.client.Minecraft;
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
|
||||||
import net.minecraft.tileentity.TileEntity;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
import net.minecraftforge.common.MinecraftForge;
|
|
||||||
import resonant.lib.render.block.BlockRenderingHandler;
|
|
||||||
import atomic.machine.accelerator.GuiAccelerator;
|
|
||||||
import atomic.machine.accelerator.TileAccelerator;
|
|
||||||
import atomic.machine.boiler.GuiChemicalExtractor;
|
|
||||||
import atomic.machine.centrifuge.TileCentrifuge;
|
|
||||||
import atomic.machine.extractor.turbine.RenderElectricTurbine;
|
|
||||||
import atomic.machine.plasma.TilePlasmaHeater;
|
|
||||||
import atomic.machine.quantum.GuiQuantumAssembler;
|
|
||||||
import atomic.machine.reactor.TileReactorCell;
|
|
||||||
import cpw.mods.fml.client.registry.ClientRegistry;
|
|
||||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
|
||||||
import resonantinduction.atomic.machine.accelerator.EntityParticle;
|
|
||||||
import resonantinduction.atomic.machine.accelerator.RenderParticle;
|
|
||||||
import resonantinduction.atomic.machine.boiler.RenderNuclearBoiler;
|
|
||||||
import resonantinduction.atomic.machine.centrifuge.GuiCentrifuge;
|
|
||||||
import resonantinduction.atomic.machine.extractor.RenderChemicalExtractor;
|
|
||||||
import resonantinduction.atomic.machine.extractor.turbine.TileElectricTurbine;
|
|
||||||
import resonantinduction.atomic.machine.quantum.TileQuantumAssembler;
|
|
||||||
import resonantinduction.atomic.machine.reactor.RenderReactorCell;
|
|
||||||
import resonantinduction.atomic.machine.thermometer.RenderThermometer;
|
|
||||||
import resonantinduction.atomic.machine.thermometer.TileThermometer;
|
|
||||||
|
|
||||||
public class ClientProxy extends CommonProxy
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public void preInit()
|
|
||||||
{
|
|
||||||
RenderingRegistry.registerBlockHandler(new BlockRenderingHandler());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getArmorIndex(String armor)
|
|
||||||
{
|
|
||||||
return RenderingRegistry.addNewArmourRendererPrefix(armor);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void init()
|
|
||||||
{
|
|
||||||
super.init();
|
|
||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileCentrifuge.class, new RenderCentrifuge());
|
|
||||||
ClientRegistry.bindTileEntitySpecialRenderer(TilePlasmaHeater.class, new RenderPlasmaHeater());
|
|
||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileNuclearBoiler.class, new RenderNuclearBoiler());
|
|
||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileElectricTurbine.class, new RenderElectricTurbine());
|
|
||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileThermometer.class, new RenderThermometer());
|
|
||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileChemicalExtractor.class, new RenderChemicalExtractor());
|
|
||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileReactorCell.class, new RenderReactorCell());
|
|
||||||
|
|
||||||
RenderingRegistry.registerEntityRenderingHandler(EntityParticle.class, new RenderParticle());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
|
|
||||||
{
|
|
||||||
TileEntity tileEntity = world.getTileEntity(x, y, z);
|
|
||||||
Block block = Block.blocksList[world.getBlockId(x, y, z)];
|
|
||||||
|
|
||||||
if (tileEntity instanceof TileCentrifuge)
|
|
||||||
{
|
|
||||||
return new GuiCentrifuge(player.inventory, ((TileCentrifuge) tileEntity));
|
|
||||||
}
|
|
||||||
else if (tileEntity instanceof TileChemicalExtractor)
|
|
||||||
{
|
|
||||||
return new GuiChemicalExtractor(player.inventory, ((TileChemicalExtractor) tileEntity));
|
|
||||||
}
|
|
||||||
else if (tileEntity instanceof TileAccelerator)
|
|
||||||
{
|
|
||||||
return new GuiAccelerator(player.inventory, ((TileAccelerator) tileEntity));
|
|
||||||
}
|
|
||||||
else if (tileEntity instanceof TileQuantumAssembler)
|
|
||||||
{
|
|
||||||
return new GuiQuantumAssembler(player.inventory, ((TileQuantumAssembler) tileEntity));
|
|
||||||
}
|
|
||||||
else if (tileEntity instanceof TileNuclearBoiler)
|
|
||||||
{
|
|
||||||
return new GuiNuclearBoiler(player.inventory, ((TileNuclearBoiler) tileEntity));
|
|
||||||
}
|
|
||||||
else if (tileEntity instanceof TileReactorCell)
|
|
||||||
{
|
|
||||||
return new GuiReactorCell(player.inventory, (TileReactorCell) tileEntity);
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isFancyGraphics()
|
|
||||||
{
|
|
||||||
return Minecraft.getMinecraft().gameSettings.fancyGraphics;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
83
src/main/scala/resonantinduction/atomic/ClientProxy.scala
Normal file
83
src/main/scala/resonantinduction/atomic/ClientProxy.scala
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
package resonantinduction.atomic
|
||||||
|
|
||||||
|
import resonantinduction.atomic.machine.accelerator.EntityParticle
|
||||||
|
import resonantinduction.atomic.machine.accelerator.GuiAccelerator
|
||||||
|
import resonantinduction.atomic.machine.accelerator.RenderParticle
|
||||||
|
import resonantinduction.atomic.machine.accelerator.TileAccelerator
|
||||||
|
import resonantinduction.atomic.machine.boiler.GuiNuclearBoiler
|
||||||
|
import resonantinduction.atomic.machine.boiler.RenderNuclearBoiler
|
||||||
|
import resonantinduction.atomic.machine.boiler.TileNuclearBoiler
|
||||||
|
import resonantinduction.atomic.machine.centrifuge.GuiCentrifuge
|
||||||
|
import resonantinduction.atomic.machine.centrifuge.RenderCentrifuge
|
||||||
|
import resonantinduction.atomic.machine.centrifuge.TileCentrifuge
|
||||||
|
import resonantinduction.atomic.machine.extractor.GuiChemicalExtractor
|
||||||
|
import resonantinduction.atomic.machine.extractor.RenderChemicalExtractor
|
||||||
|
import resonantinduction.atomic.machine.extractor.TileChemicalExtractor
|
||||||
|
import resonantinduction.atomic.machine.plasma.RenderPlasmaHeater
|
||||||
|
import resonantinduction.atomic.machine.plasma.TilePlasmaHeater
|
||||||
|
import resonantinduction.atomic.machine.quantum.GuiQuantumAssembler
|
||||||
|
import resonantinduction.atomic.machine.quantum.TileQuantumAssembler
|
||||||
|
import resonantinduction.atomic.machine.reactor.GuiReactorCell
|
||||||
|
import resonantinduction.atomic.machine.reactor.RenderReactorCell
|
||||||
|
import resonantinduction.atomic.machine.reactor.TileReactorCell
|
||||||
|
import resonantinduction.atomic.machine.thermometer.RenderThermometer
|
||||||
|
import resonantinduction.atomic.machine.thermometer.TileThermometer
|
||||||
|
import net.minecraft.block.Block
|
||||||
|
import net.minecraft.client.Minecraft
|
||||||
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
|
import net.minecraft.tileentity.TileEntity
|
||||||
|
import net.minecraft.world.World
|
||||||
|
import cpw.mods.fml.client.registry.ClientRegistry
|
||||||
|
import cpw.mods.fml.client.registry.RenderingRegistry
|
||||||
|
import resonantinduction.electrical.em.laser.BlockRenderingHandler
|
||||||
|
import resonantinduction.mechanical.energy.turbine.{TileElectricTurbine, RenderElectricTurbine}
|
||||||
|
|
||||||
|
class ClientProxy extends CommonProxy {
|
||||||
|
override def preInit {
|
||||||
|
RenderingRegistry.registerBlockHandler(new BlockRenderingHandler.type)
|
||||||
|
}
|
||||||
|
|
||||||
|
override def getArmorIndex(armor: String): Int = {
|
||||||
|
return RenderingRegistry.addNewArmourRendererPrefix(armor)
|
||||||
|
}
|
||||||
|
|
||||||
|
override def init {
|
||||||
|
super.init
|
||||||
|
ClientRegistry.bindTileEntitySpecialRenderer(classOf[TileCentrifuge], new RenderCentrifuge)
|
||||||
|
ClientRegistry.bindTileEntitySpecialRenderer(classOf[TilePlasmaHeater], new RenderPlasmaHeater)
|
||||||
|
ClientRegistry.bindTileEntitySpecialRenderer(classOf[TileNuclearBoiler], new RenderNuclearBoiler)
|
||||||
|
ClientRegistry.bindTileEntitySpecialRenderer(classOf[TileElectricTurbine], new RenderElectricTurbine)
|
||||||
|
ClientRegistry.bindTileEntitySpecialRenderer(classOf[TileThermometer], new RenderThermometer)
|
||||||
|
ClientRegistry.bindTileEntitySpecialRenderer(classOf[TileChemicalExtractor], new RenderChemicalExtractor)
|
||||||
|
ClientRegistry.bindTileEntitySpecialRenderer(classOf[TileReactorCell], new RenderReactorCell)
|
||||||
|
RenderingRegistry.registerEntityRenderingHandler(classOf[EntityParticle], new RenderParticle)
|
||||||
|
}
|
||||||
|
|
||||||
|
override def getClientGuiElement(ID: Int, player: EntityPlayer, world: World, x: Int, y: Int, z: Int): AnyRef = {
|
||||||
|
val tileEntity: TileEntity = world.getTileEntity(x, y, z)
|
||||||
|
val block: Block = world.getBlock(x, y, z)
|
||||||
|
if (tileEntity.isInstanceOf[TileCentrifuge]) {
|
||||||
|
return new GuiCentrifuge(player.inventory, (tileEntity.asInstanceOf[TileCentrifuge]))
|
||||||
|
}
|
||||||
|
else if (tileEntity.isInstanceOf[TileChemicalExtractor]) {
|
||||||
|
return new GuiChemicalExtractor(player.inventory, (tileEntity.asInstanceOf[TileChemicalExtractor]))
|
||||||
|
}
|
||||||
|
else if (tileEntity.isInstanceOf[TileAccelerator]) {
|
||||||
|
return new GuiAccelerator(player.inventory, (tileEntity.asInstanceOf[TileAccelerator]))
|
||||||
|
}
|
||||||
|
else if (tileEntity.isInstanceOf[TileQuantumAssembler]) {
|
||||||
|
return new GuiQuantumAssembler(player.inventory, (tileEntity.asInstanceOf[TileQuantumAssembler]))
|
||||||
|
}
|
||||||
|
else if (tileEntity.isInstanceOf[TileNuclearBoiler]) {
|
||||||
|
return new GuiNuclearBoiler(player, (tileEntity.asInstanceOf[TileNuclearBoiler]))
|
||||||
|
}
|
||||||
|
else if (tileEntity.isInstanceOf[TileReactorCell]) {
|
||||||
|
return new GuiReactorCell(player.inventory, tileEntity.asInstanceOf[TileReactorCell])
|
||||||
|
}
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
override def isFancyGraphics: Boolean = {
|
||||||
|
return Minecraft.getMinecraft.gameSettings.fancyGraphics
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,63 +0,0 @@
|
||||||
package resonantinduction.atomic;
|
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
|
||||||
import net.minecraft.tileentity.TileEntity;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
import resonantinduction.atomic.machine.accelerator.TileAccelerator;
|
|
||||||
import resonantinduction.atomic.machine.centrifuge.TileCentrifuge;
|
|
||||||
import resonantinduction.atomic.machine.extractor.ContainerChemicalExtractor;
|
|
||||||
import resonantinduction.atomic.machine.plasma.ContainerNuclearBoiler;
|
|
||||||
import resonantinduction.atomic.machine.quantum.TileQuantumAssembler;
|
|
||||||
import resonantinduction.atomic.machine.reactor.ContainerReactorCell;
|
|
||||||
|
|
||||||
public class CommonProxy extends ProxyBase
|
|
||||||
{
|
|
||||||
public int getArmorIndex(String armor)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
|
|
||||||
{
|
|
||||||
TileEntity tileEntity = world.getTileEntity(x, y, z);
|
|
||||||
|
|
||||||
if (tileEntity instanceof TileCentrifuge)
|
|
||||||
{
|
|
||||||
return new ContainerCentrifuge(player.inventory, ((TileCentrifuge) tileEntity));
|
|
||||||
}
|
|
||||||
else if (tileEntity instanceof TileChemicalExtractor)
|
|
||||||
{
|
|
||||||
return new ContainerChemicalExtractor(player.inventory, ((TileChemicalExtractor) tileEntity));
|
|
||||||
}
|
|
||||||
else if (tileEntity instanceof TileAccelerator)
|
|
||||||
{
|
|
||||||
return new ContainerAccelerator(player.inventory, ((TileAccelerator) tileEntity));
|
|
||||||
}
|
|
||||||
else if (tileEntity instanceof TileQuantumAssembler)
|
|
||||||
{
|
|
||||||
return new ContainerQuantumAssembler(player.inventory, ((TileQuantumAssembler) tileEntity));
|
|
||||||
}
|
|
||||||
else if (tileEntity instanceof TileNuclearBoiler)
|
|
||||||
{
|
|
||||||
return new ContainerNuclearBoiler(player.inventory, ((TileNuclearBoiler) tileEntity));
|
|
||||||
}
|
|
||||||
else if (tileEntity instanceof TileReactorCell)
|
|
||||||
{
|
|
||||||
return new ContainerReactorCell(player, ((TileReactorCell) tileEntity));
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isFancyGraphics()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
64
src/main/scala/resonantinduction/atomic/CommonProxy.scala
Normal file
64
src/main/scala/resonantinduction/atomic/CommonProxy.scala
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
package resonantinduction.atomic
|
||||||
|
|
||||||
|
import cpw.mods.fml.common.network.IGuiHandler
|
||||||
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
|
import net.minecraft.tileentity.TileEntity
|
||||||
|
import net.minecraft.world.World
|
||||||
|
import resonantinduction.atomic.machine.accelerator.ContainerAccelerator
|
||||||
|
import resonantinduction.atomic.machine.accelerator.TileAccelerator
|
||||||
|
import resonantinduction.atomic.machine.boiler.TileNuclearBoiler
|
||||||
|
import resonantinduction.atomic.machine.centrifuge.ContainerCentrifuge
|
||||||
|
import resonantinduction.atomic.machine.centrifuge.TileCentrifuge
|
||||||
|
import resonantinduction.atomic.machine.extractor.ContainerChemicalExtractor
|
||||||
|
import resonantinduction.atomic.machine.boiler.ContainerNuclearBoiler
|
||||||
|
import resonantinduction.atomic.machine.extractor.TileChemicalExtractor
|
||||||
|
import resonantinduction.atomic.machine.quantum.ContainerQuantumAssembler
|
||||||
|
import resonantinduction.atomic.machine.quantum.TileQuantumAssembler
|
||||||
|
import resonantinduction.atomic.machine.reactor.ContainerReactorCell
|
||||||
|
import resonantinduction.atomic.machine.reactor.TileReactorCell
|
||||||
|
|
||||||
|
class CommonProxy extends IGuiHandler {
|
||||||
|
def preInit {
|
||||||
|
}
|
||||||
|
|
||||||
|
def init {
|
||||||
|
}
|
||||||
|
|
||||||
|
def postInit {
|
||||||
|
}
|
||||||
|
|
||||||
|
def getArmorIndex(armor: String): Int = {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
def getClientGuiElement(ID: Int, player: EntityPlayer, world: World, x: Int, y: Int, z: Int): AnyRef = {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
def getServerGuiElement(ID: Int, player: EntityPlayer, world: World, x: Int, y: Int, z: Int): AnyRef = {
|
||||||
|
val tileEntity: TileEntity = world.getTileEntity(x, y, z)
|
||||||
|
if (tileEntity.isInstanceOf[TileCentrifuge]) {
|
||||||
|
return new ContainerCentrifuge(player.inventory, (tileEntity.asInstanceOf[TileCentrifuge]))
|
||||||
|
}
|
||||||
|
else if (tileEntity.isInstanceOf[TileChemicalExtractor]) {
|
||||||
|
return new ContainerChemicalExtractor(player.inventory, (tileEntity.asInstanceOf[TileChemicalExtractor]))
|
||||||
|
}
|
||||||
|
else if (tileEntity.isInstanceOf[TileAccelerator]) {
|
||||||
|
return new ContainerAccelerator(player, (tileEntity.asInstanceOf[TileAccelerator]))
|
||||||
|
}
|
||||||
|
else if (tileEntity.isInstanceOf[TileQuantumAssembler]) {
|
||||||
|
return new ContainerQuantumAssembler(player.inventory, (tileEntity.asInstanceOf[TileQuantumAssembler]))
|
||||||
|
}
|
||||||
|
else if (tileEntity.isInstanceOf[TileNuclearBoiler]) {
|
||||||
|
return new ContainerNuclearBoiler(player, (tileEntity.asInstanceOf[TileNuclearBoiler]))
|
||||||
|
}
|
||||||
|
else if (tileEntity.isInstanceOf[TileReactorCell]) {
|
||||||
|
return new ContainerReactorCell(player, (tileEntity.asInstanceOf[TileReactorCell]))
|
||||||
|
}
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
def isFancyGraphics: Boolean = {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
package resonantinduction.atomic.machine.extractor.turbine;
|
package resonantinduction.atomic.machine;
|
||||||
|
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||||
|
@ -13,15 +13,12 @@ import net.minecraftforge.fluids.FluidTank;
|
||||||
import net.minecraftforge.fluids.FluidTankInfo;
|
import net.minecraftforge.fluids.FluidTankInfo;
|
||||||
import net.minecraftforge.fluids.IFluidHandler;
|
import net.minecraftforge.fluids.IFluidHandler;
|
||||||
import resonant.api.IBoilHandler;
|
import resonant.api.IBoilHandler;
|
||||||
import resonant.lib.content.module.TileBase;
|
import resonant.content.prefab.java.TileAdvanced;
|
||||||
import resonant.lib.content.module.TileRender;
|
|
||||||
import resonant.lib.utility.ConnectedTextureRenderer;
|
|
||||||
import resonantinduction.core.Reference;
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
/** Funnel for gas. */
|
/** Funnel for gas. */
|
||||||
public class TileFunnel extends TileBase implements IBoilHandler
|
public class TileFunnel extends TileAdvanced implements IBoilHandler
|
||||||
{
|
{
|
||||||
private static IIcon iconTop;
|
private static IIcon iconTop;
|
||||||
private final FluidTank tank = new FluidTank(FluidContainerRegistry.BUCKET_VOLUME * 16);
|
private final FluidTank tank = new FluidTank(FluidContainerRegistry.BUCKET_VOLUME * 16);
|
||||||
|
@ -43,13 +40,13 @@ public class TileFunnel extends TileBase implements IBoilHandler
|
||||||
public void registerIcons(IIconRegister iconRegister)
|
public void registerIcons(IIconRegister iconRegister)
|
||||||
{
|
{
|
||||||
super.registerIcons(iconRegister);
|
super.registerIcons(iconRegister);
|
||||||
iconTop = iconRegister.registerIcon(domain + name + "_top");
|
iconTop = iconRegister.registerIcon(getTextureName() + "_top");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateEntity()
|
public void update()
|
||||||
{
|
{
|
||||||
super.updateEntity();
|
super.update();
|
||||||
|
|
||||||
if (tank.getFluidAmount() > 0)
|
if (tank.getFluidAmount() > 0)
|
||||||
{
|
{
|
||||||
|
@ -139,11 +136,4 @@ public class TileFunnel extends TileBase implements IBoilHandler
|
||||||
return new FluidTankInfo[]
|
return new FluidTankInfo[]
|
||||||
{ tank.getInfo() };
|
{ tank.getInfo() };
|
||||||
}
|
}
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
|
||||||
@Override
|
|
||||||
protected TileRender newRenderer()
|
|
||||||
{
|
|
||||||
return new ConnectedTextureRenderer(this, Reference.PREFIX + "funnel_edge");
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -10,8 +10,6 @@ import resonantinduction.atomic.items.ItemAntimatter;
|
||||||
import resonantinduction.atomic.items.ItemDarkMatter;
|
import resonantinduction.atomic.items.ItemDarkMatter;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.IInventory;
|
|
||||||
import net.minecraft.inventory.ISidedInventory;
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
@ -19,10 +17,7 @@ import resonant.api.IElectromagnet;
|
||||||
import resonant.api.IRotatable;
|
import resonant.api.IRotatable;
|
||||||
import resonant.lib.network.Synced;
|
import resonant.lib.network.Synced;
|
||||||
import resonantinduction.core.Reference;
|
import resonantinduction.core.Reference;
|
||||||
import resonantinduction.core.ResonantInduction;
|
|
||||||
import resonantinduction.core.Settings;
|
import resonantinduction.core.Settings;
|
||||||
import universalelectricity.api.core.grid.INodeProvider;
|
|
||||||
import universalelectricity.api.core.grid.electric.IEnergyNode;
|
|
||||||
import universalelectricity.core.transform.vector.Vector3;
|
import universalelectricity.core.transform.vector.Vector3;
|
||||||
import resonant.lib.content.prefab.java.TileElectricInventory;
|
import resonant.lib.content.prefab.java.TileElectricInventory;
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
package resonantinduction.atomic.machine.plasma;
|
package resonantinduction.atomic.machine.boiler;
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.entity.player.InventoryPlayer;
|
import net.minecraft.entity.player.InventoryPlayer;
|
||||||
|
import net.minecraft.inventory.IInventory;
|
||||||
import net.minecraft.inventory.Slot;
|
import net.minecraft.inventory.Slot;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.fluids.FluidContainerRegistry;
|
import net.minecraftforge.fluids.FluidContainerRegistry;
|
||||||
import resonant.lib.gui.ContainerBase;
|
import resonant.lib.gui.ContainerBase;
|
||||||
import resonant.lib.prefab.slot.SlotEnergyItem;
|
import resonant.lib.prefab.slot.SlotEnergyItem;
|
||||||
import resonant.lib.prefab.slot.SlotSpecific;
|
import resonant.lib.prefab.slot.SlotSpecific;
|
||||||
import atomic.Atomic;
|
import resonantinduction.atomic.Atomic;
|
||||||
import atomic.machine.boiler.TileNuclearBoiler;
|
|
||||||
|
|
||||||
/** Nuclear boiler container */
|
/** Nuclear boiler container */
|
||||||
public class ContainerNuclearBoiler extends ContainerBase
|
public class ContainerNuclearBoiler extends ContainerBase
|
||||||
|
@ -17,20 +17,19 @@ public class ContainerNuclearBoiler extends ContainerBase
|
||||||
private static final int slotCount = 4;
|
private static final int slotCount = 4;
|
||||||
private TileNuclearBoiler tileEntity;
|
private TileNuclearBoiler tileEntity;
|
||||||
|
|
||||||
public ContainerNuclearBoiler(InventoryPlayer par1InventoryPlayer, TileNuclearBoiler tileEntity)
|
public ContainerNuclearBoiler(EntityPlayer player, TileNuclearBoiler tileEntity)
|
||||||
{
|
{
|
||||||
super(tileEntity);
|
super(player, (IInventory)tileEntity);
|
||||||
this.tileEntity = tileEntity;
|
this.tileEntity = tileEntity;
|
||||||
// Battery
|
// Battery
|
||||||
this.addSlotToContainer(new SlotEnergyItem(tileEntity, 0, 56, 26));
|
this.addSlotToContainer(new SlotEnergyItem((IInventory)tileEntity, 0, 56, 26));
|
||||||
// Water Input
|
// Water Input
|
||||||
this.addSlotToContainer(new Slot(tileEntity, 1, 25, 50));
|
this.addSlotToContainer(new Slot((IInventory)tileEntity, 1, 25, 50));
|
||||||
// Gas Output
|
// Gas Output
|
||||||
this.addSlotToContainer(new Slot(tileEntity, 2, 136, 50));
|
this.addSlotToContainer(new Slot((IInventory)tileEntity, 2, 136, 50));
|
||||||
// Yellowcake Input
|
// Yellowcake Input
|
||||||
this.addSlotToContainer(new SlotSpecific(tileEntity, 3, 81, 26, new ItemStack(Atomic.itemYellowCake), new ItemStack(Atomic.blockUraniumOre)));
|
this.addSlotToContainer(new SlotSpecific((IInventory)tileEntity, 3, 81, 26, new ItemStack(Atomic.itemYellowCake), new ItemStack(Atomic.blockUraniumOre)));
|
||||||
this.addPlayerInventory(par1InventoryPlayer.player);
|
this.addPlayerInventory(player);
|
||||||
tileEntity.openChest();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
|
@ -1,19 +1,18 @@
|
||||||
package resonantinduction.atomic.machine.boiler;
|
package resonantinduction.atomic.machine.boiler;
|
||||||
|
|
||||||
import resonantinduction.atomic.machine.plasma.ContainerNuclearBoiler;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.entity.player.InventoryPlayer;
|
import net.minecraft.entity.player.InventoryPlayer;
|
||||||
import net.minecraft.util.StatCollector;
|
import net.minecraft.util.StatCollector;
|
||||||
import resonant.lib.gui.GuiContainerBase;
|
import resonant.lib.gui.GuiContainerBase;
|
||||||
import resonantinduction.atomic.machine.plasma.ContainerNuclearBoiler;
|
import universalelectricity.api.UnitDisplay;
|
||||||
import universalelectricity.api.energy.UnitDisplay.Unit;
|
|
||||||
|
|
||||||
public class GuiNuclearBoiler extends GuiContainerBase
|
public class GuiNuclearBoiler extends GuiContainerBase
|
||||||
{
|
{
|
||||||
private TileNuclearBoiler tileEntity;
|
private TileNuclearBoiler tileEntity;
|
||||||
|
|
||||||
public GuiNuclearBoiler(InventoryPlayer par1InventoryPlayer, TileNuclearBoiler tileEntity)
|
public GuiNuclearBoiler(EntityPlayer player, TileNuclearBoiler tileEntity)
|
||||||
{
|
{
|
||||||
super(new ContainerNuclearBoiler(par1InventoryPlayer, tileEntity));
|
super(new ContainerNuclearBoiler(player, tileEntity));
|
||||||
this.tileEntity = tileEntity;
|
this.tileEntity = tileEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,26 +20,26 @@ public class GuiNuclearBoiler extends GuiContainerBase
|
||||||
@Override
|
@Override
|
||||||
public void drawGuiContainerForegroundLayer(int mouseX, int mouseY)
|
public void drawGuiContainerForegroundLayer(int mouseX, int mouseY)
|
||||||
{
|
{
|
||||||
this.fontRenderer.drawString(tileEntity.getInvName(), 52, 6, 4210752);
|
this.fontRendererObj.drawString("Boiler", 52, 6, 4210752);
|
||||||
|
|
||||||
this.renderUniversalDisplay(8, 112, TileNuclearBoiler.DIAN * 20, mouseX, mouseY, Unit.WATT);
|
this.renderUniversalDisplay(8, 112, TileNuclearBoiler.DIAN * 20, mouseX, mouseY, UnitDisplay.Unit.WATT);
|
||||||
this.renderUniversalDisplay(110, 112, this.tileEntity.getVoltageInput(null), mouseX, mouseY, Unit.VOLTAGE);
|
this.renderUniversalDisplay(110, 112, tileEntity.electricNode().voltage(), mouseX, mouseY, UnitDisplay.Unit.VOLTAGE);
|
||||||
|
|
||||||
this.fontRenderer.drawString("The nuclear boiler can boil", 8, 75, 4210752);
|
this.fontRendererObj.drawString("The nuclear boiler can boil", 8, 75, 4210752);
|
||||||
this.fontRenderer.drawString("yellow cake into uranium", 8, 85, 4210752);
|
this.fontRendererObj.drawString("yellow cake into uranium", 8, 85, 4210752);
|
||||||
this.fontRenderer.drawString("hexafluoride gas to be refined.", 8, 95, 4210752);
|
this.fontRendererObj.drawString("hexafluoride gas to be refined.", 8, 95, 4210752);
|
||||||
|
|
||||||
this.fontRenderer.drawString(StatCollector.translateToLocal("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
|
this.fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
|
||||||
|
|
||||||
if (this.isPointInRegion(8, 18, this.meterWidth, this.meterHeight, mouseX, mouseY) && this.tileEntity.waterTank.getFluid() != null)
|
//if (this.isPointInRegion(8, 18, this.meterWidth, this.meterHeight, mouseX, mouseY) && this.tileEntity.waterTank.getFluid() != null)
|
||||||
{
|
//{
|
||||||
this.drawTooltip(mouseX - this.guiLeft, mouseY - this.guiTop + 10, this.tileEntity.waterTank.getFluid().getFluid().getLocalizedName(), this.tileEntity.waterTank.getFluid().amount + " L");
|
// this.drawTooltip(mouseX - this.guiLeft, mouseY - this.guiTop + 10, this.tileEntity.waterTank.getFluid().getFluid().getLocalizedName(), this.tileEntity.waterTank.getFluid().amount + " L");
|
||||||
|
|
||||||
}
|
//}
|
||||||
else if (this.isPointInRegion(155, 18, this.meterWidth, this.meterHeight, mouseX, mouseY) && this.tileEntity.gasTank.getFluid() != null)
|
//else if (this.isPointInRegion(155, 18, this.meterWidth, this.meterHeight, mouseX, mouseY) && this.tileEntity.gasTank.getFluid() != null)
|
||||||
{
|
//{
|
||||||
this.drawTooltip(mouseX - this.guiLeft, mouseY - this.guiTop + 10, this.tileEntity.gasTank.getFluid().getFluid().getLocalizedName(), this.tileEntity.gasTank.getFluid().amount + " L");
|
// this.drawTooltip(mouseX - this.guiLeft, mouseY - this.guiTop + 10, this.tileEntity.gasTank.getFluid().getFluid().getLocalizedName(), this.tileEntity.gasTank.getFluid().amount + " L");
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Draw the background layer for the GuiContainer (everything behind the items) */
|
/** Draw the background layer for the GuiContainer (everything behind the items) */
|
||||||
|
|
|
@ -1,61 +0,0 @@
|
||||||
package resonantinduction.atomic.machine.centrifuge;
|
|
||||||
|
|
||||||
import atomic.Atomic;
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
|
||||||
import net.minecraft.tileentity.TileEntity;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
import resonant.lib.prefab.block.BlockRotatable;
|
|
||||||
import resonant.lib.render.block.BlockRenderingHandler;
|
|
||||||
import universalelectricity.api.UniversalElectricity;
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
|
||||||
|
|
||||||
/** Centrifuge block */
|
|
||||||
public class BlockCentrifuge extends BlockRotatable
|
|
||||||
{
|
|
||||||
public BlockCentrifuge(int ID)
|
|
||||||
{
|
|
||||||
super(ID, UniversalElectricity.machine);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Called when the block is right clicked by the player */
|
|
||||||
@Override
|
|
||||||
public boolean onMachineActivated(World world, int x, int y, int z, EntityPlayer par5EntityPlayer, int side, float hitX, float hitY, float hitZ)
|
|
||||||
{
|
|
||||||
int metadata = world.getBlockMetadata(x, y, z);
|
|
||||||
|
|
||||||
if (!world.isRemote)
|
|
||||||
{
|
|
||||||
par5EntityPlayer.openGui(Atomic.INSTANCE, 0, world, x, y, z);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public TileEntity createNewTileEntity(World var1)
|
|
||||||
{
|
|
||||||
return new TileCentrifuge();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean renderAsNormalBlock()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isOpaqueCube()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
|
||||||
@Override
|
|
||||||
public int getRenderType()
|
|
||||||
{
|
|
||||||
return BlockRenderingHandler.ID;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -36,7 +36,7 @@ public class ContainerCentrifuge extends ContainerBase
|
||||||
public void onContainerClosed(EntityPlayer entityplayer)
|
public void onContainerClosed(EntityPlayer entityplayer)
|
||||||
{
|
{
|
||||||
super.onContainerClosed(entityplayer);
|
super.onContainerClosed(entityplayer);
|
||||||
this.tileEntity.getPlayersUsing().remove(entityplayer);
|
//this.tileEntity.getPlayersUsing().remove(entityplayer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -3,8 +3,7 @@ package resonantinduction.atomic.machine.centrifuge;
|
||||||
import net.minecraft.entity.player.InventoryPlayer;
|
import net.minecraft.entity.player.InventoryPlayer;
|
||||||
import net.minecraft.util.StatCollector;
|
import net.minecraft.util.StatCollector;
|
||||||
import resonant.lib.gui.GuiContainerBase;
|
import resonant.lib.gui.GuiContainerBase;
|
||||||
import atomic.machine.boiler.TileNuclearBoiler;
|
import universalelectricity.api.UnitDisplay;
|
||||||
import universalelectricity.api.energy.UnitDisplay.Unit;
|
|
||||||
|
|
||||||
public class GuiCentrifuge extends GuiContainerBase
|
public class GuiCentrifuge extends GuiContainerBase
|
||||||
{
|
{
|
||||||
|
@ -20,7 +19,7 @@ public class GuiCentrifuge extends GuiContainerBase
|
||||||
@Override
|
@Override
|
||||||
public void drawGuiContainerForegroundLayer(int mouseX, int mouseY)
|
public void drawGuiContainerForegroundLayer(int mouseX, int mouseY)
|
||||||
{
|
{
|
||||||
this.fontRenderer.drawString(tileEntity.getInvName(), 60, 6, 4210752);
|
this.fontRendererObj.drawString("Centrifuge", 60, 6, 4210752);
|
||||||
|
|
||||||
String displayText = "";
|
String displayText = "";
|
||||||
|
|
||||||
|
@ -37,21 +36,21 @@ public class GuiCentrifuge extends GuiContainerBase
|
||||||
displayText = "Idle";
|
displayText = "Idle";
|
||||||
}
|
}
|
||||||
|
|
||||||
this.fontRenderer.drawString("Status: " + displayText, 70, 50, 4210752);
|
this.fontRendererObj.drawString("Status: " + displayText, 70, 50, 4210752);
|
||||||
|
|
||||||
this.renderUniversalDisplay(8, 112, TileNuclearBoiler.DIAN * 20, mouseX, mouseY, Unit.WATT);
|
this.renderUniversalDisplay(8, 112, TileCentrifuge.DIAN * 20, mouseX, mouseY, UnitDisplay.Unit.WATT);
|
||||||
this.renderUniversalDisplay(100, 112, this.tileEntity.getVoltageInput(null), mouseX, mouseY, Unit.VOLTAGE);
|
this.renderUniversalDisplay(100, 112, this.tileEntity.getVoltageInput(null), mouseX, mouseY, UnitDisplay.Unit.VOLTAGE);
|
||||||
|
|
||||||
this.fontRenderer.drawString("The centrifuge spins", 8, 75, 4210752);
|
this.fontRendererObj.drawString("The centrifuge spins", 8, 75, 4210752);
|
||||||
this.fontRenderer.drawString("uranium hexafluoride gas into", 8, 85, 4210752);
|
this.fontRendererObj.drawString("uranium hexafluoride gas into", 8, 85, 4210752);
|
||||||
this.fontRenderer.drawString("enriched uranium for fission.", 8, 95, 4210752);
|
this.fontRendererObj.drawString("enriched uranium for fission.", 8, 95, 4210752);
|
||||||
|
|
||||||
this.fontRenderer.drawString(StatCollector.translateToLocal("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
|
this.fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
|
||||||
|
|
||||||
if (this.isPointInRegion(8, 18, this.meterWidth, this.meterHeight, mouseX, mouseY) && this.tileEntity.gasTank.getFluid() != null)
|
//if (this.isPointInRegion(8, 18, this.meterWidth, this.meterHeight, mouseX, mouseY) && this.tileEntity.gasTank.getFluid() != null)
|
||||||
{
|
//{
|
||||||
this.drawTooltip(mouseX - this.guiLeft, mouseY - this.guiTop + 10, this.tileEntity.gasTank.getFluid().getFluid().getLocalizedName(), this.tileEntity.gasTank.getFluid().amount + " L");
|
// this.drawTooltip(mouseX - this.guiLeft, mouseY - this.guiTop + 10, this.tileEntity.gasTank.getFluid().getFluid().getLocalizedName(), this.tileEntity.gasTank.getFluid().amount + " L");
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Draw the background layer for the GuiContainer (everything behind the items) */
|
/** Draw the background layer for the GuiContainer (everything behind the items) */
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
package resonantinduction.atomic.machine.centrifuge;
|
package resonantinduction.atomic.machine.centrifuge;
|
||||||
|
|
||||||
import atomic.Atomic;
|
|
||||||
|
import io.netty.buffer.ByteBuf;
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.ISidedInventory;
|
import net.minecraft.inventory.ISidedInventory;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.network.packet.Packet;
|
import net.minecraft.network.Packet;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
import net.minecraftforge.fluids.Fluid;
|
import net.minecraftforge.fluids.Fluid;
|
||||||
|
@ -15,23 +17,21 @@ import net.minecraftforge.fluids.FluidTank;
|
||||||
import net.minecraftforge.fluids.FluidTankInfo;
|
import net.minecraftforge.fluids.FluidTankInfo;
|
||||||
import net.minecraftforge.fluids.IFluidHandler;
|
import net.minecraftforge.fluids.IFluidHandler;
|
||||||
import resonant.api.IRotatable;
|
import resonant.api.IRotatable;
|
||||||
import resonant.lib.network.IPacketReceiver;
|
import resonant.engine.ResonantEngine;
|
||||||
import resonant.lib.prefab.tile.TileElectricalInventory;
|
import resonant.lib.network.discriminator.PacketTile;
|
||||||
|
import resonant.lib.network.discriminator.PacketType;
|
||||||
|
import resonant.lib.network.handle.IPacketReceiver;
|
||||||
|
import resonantinduction.atomic.Atomic;
|
||||||
import resonantinduction.core.ResonantInduction;
|
import resonantinduction.core.ResonantInduction;
|
||||||
import resonantinduction.core.Settings;
|
import resonantinduction.core.Settings;
|
||||||
import universalelectricity.api.CompatibilityModule;
|
import universalelectricity.compatibility.Compatibility;
|
||||||
import universalelectricity.api.electricity.IVoltageInput;
|
|
||||||
import universalelectricity.api.energy.EnergyStorageHandler;
|
|
||||||
import universalelectricity.core.transform.vector.Vector3;
|
import universalelectricity.core.transform.vector.Vector3;
|
||||||
import universalelectricity.api.vector.VectorHelper;
|
|
||||||
|
|
||||||
import com.google.common.io.ByteArrayDataInput;
|
import com.google.common.io.ByteArrayDataInput;
|
||||||
|
import resonant.lib.content.prefab.java.TileElectricInventory;
|
||||||
import cpw.mods.fml.common.network.PacketDispatcher;
|
|
||||||
import cpw.mods.fml.common.network.Player;
|
|
||||||
|
|
||||||
/** Centrifuge TileEntity */
|
/** Centrifuge TileEntity */
|
||||||
public class TileCentrifuge extends TileElectricalInventory implements ISidedInventory, IPacketReceiver, IFluidHandler, IRotatable, IVoltageInput
|
public class TileCentrifuge extends TileElectricInventory implements IPacketReceiver, IFluidHandler
|
||||||
{
|
{
|
||||||
public static final int SHI_JIAN = 20 * 60;
|
public static final int SHI_JIAN = 20 * 60;
|
||||||
|
|
||||||
|
@ -42,14 +42,17 @@ public class TileCentrifuge extends TileElectricalInventory implements ISidedInv
|
||||||
|
|
||||||
public TileCentrifuge()
|
public TileCentrifuge()
|
||||||
{
|
{
|
||||||
energy = new EnergyStorageHandler(DIAN * 2);
|
super(Material.iron);
|
||||||
maxSlots = 4;
|
isOpaqueCube(true);
|
||||||
|
normalRender(false);
|
||||||
|
electricNode().energy().setCapacity(DIAN * 2);
|
||||||
|
setSizeInventory(4);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateEntity()
|
public void update()
|
||||||
{
|
{
|
||||||
super.updateEntity();
|
super.update();
|
||||||
|
|
||||||
if (timer > 0)
|
if (timer > 0)
|
||||||
{
|
{
|
||||||
|
@ -59,12 +62,12 @@ public class TileCentrifuge extends TileElectricalInventory implements ISidedInv
|
||||||
if (!this.worldObj.isRemote)
|
if (!this.worldObj.isRemote)
|
||||||
{
|
{
|
||||||
/** Look for nearby tanks that contains uranium gas and try to extract it. */
|
/** Look for nearby tanks that contains uranium gas and try to extract it. */
|
||||||
if (this.ticks % 20 == 0)
|
if (this.ticks() % 20 == 0)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < 6; i++)
|
for (int i = 0; i < 6; i++)
|
||||||
{
|
{
|
||||||
ForgeDirection direction = ForgeDirection.getOrientation(i);
|
ForgeDirection direction = ForgeDirection.getOrientation(i);
|
||||||
TileEntity tileEntity = VectorHelper.getTileEntityFromSide(this.worldObj, new Vector3(this), direction);
|
TileEntity tileEntity = new Vector3(this).add( direction).getTileEntity(world());
|
||||||
|
|
||||||
if (tileEntity instanceof IFluidHandler && tileEntity.getClass() != this.getClass())
|
if (tileEntity instanceof IFluidHandler && tileEntity.getClass() != this.getClass())
|
||||||
{
|
{
|
||||||
|
@ -95,7 +98,7 @@ public class TileCentrifuge extends TileElectricalInventory implements ISidedInv
|
||||||
{
|
{
|
||||||
this.discharge(getStackInSlot(0));
|
this.discharge(getStackInSlot(0));
|
||||||
|
|
||||||
if (this.energy.extractEnergy(TileCentrifuge.DIAN, false) >= DIAN)
|
if (electricNode().energy().extractEnergy(TileCentrifuge.DIAN, false) >= DIAN)
|
||||||
{
|
{
|
||||||
if (this.timer == 0)
|
if (this.timer == 0)
|
||||||
{
|
{
|
||||||
|
@ -117,7 +120,7 @@ public class TileCentrifuge extends TileElectricalInventory implements ISidedInv
|
||||||
this.timer = 0;
|
this.timer = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.energy.extractEnergy(DIAN, true);
|
electricNode().energy().extractEnergy(DIAN, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -125,31 +128,25 @@ public class TileCentrifuge extends TileElectricalInventory implements ISidedInv
|
||||||
this.timer = 0;
|
this.timer = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.ticks % 10 == 0)
|
if (this.ticks() % 10 == 0)
|
||||||
{
|
{
|
||||||
for (EntityPlayer player : this.getPlayersUsing())
|
//for (EntityPlayer player : this.getPlayersUsing())
|
||||||
{
|
//{
|
||||||
PacketDispatcher.sendPacketToPlayer(getDescriptionPacket(), (Player) player);
|
// PacketDispatcher.sendPacketToPlayer(getDescriptionPacket(), (Player) player);
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long onReceiveEnergy(ForgeDirection from, long receive, boolean doReceive)
|
public boolean use(EntityPlayer player, int side, Vector3 hit)
|
||||||
{
|
{
|
||||||
if (this.nengYong())
|
openGui(player, Atomic.INSTANCE);
|
||||||
{
|
return true;
|
||||||
return super.onReceiveEnergy(from, receive, doReceive);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onReceivePacket(ByteArrayDataInput data, EntityPlayer player, Object... extra)
|
public void read(ByteBuf data, EntityPlayer player, PacketType type)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -165,24 +162,7 @@ public class TileCentrifuge extends TileElectricalInventory implements ISidedInv
|
||||||
@Override
|
@Override
|
||||||
public Packet getDescriptionPacket()
|
public Packet getDescriptionPacket()
|
||||||
{
|
{
|
||||||
return ResonantInduction.PACKET_TILE.getPacket(this, this.timer, Atomic.getFluidAmount(this.gasTank.getFluid()));
|
return ResonantEngine.instance.packetHandler.toMCPacket(new PacketTile(this, this.timer, Atomic.getFluidAmount(this.gasTank.getFluid())));
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void openChest()
|
|
||||||
{
|
|
||||||
if (!this.worldObj.isRemote)
|
|
||||||
{
|
|
||||||
for (EntityPlayer player : this.getPlayersUsing())
|
|
||||||
{
|
|
||||||
PacketDispatcher.sendPacketToPlayer(getDescriptionPacket(), (Player) player);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void closeChest()
|
|
||||||
{
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return If the machine can be used. */
|
/** @return If the machine can be used. */
|
||||||
|
@ -190,7 +170,7 @@ public class TileCentrifuge extends TileElectricalInventory implements ISidedInv
|
||||||
{
|
{
|
||||||
if (this.gasTank.getFluid() != null)
|
if (this.gasTank.getFluid() != null)
|
||||||
{
|
{
|
||||||
if (this.gasTank.getFluid().amount >= Settings.uraniumHexaflourideRatio)
|
if (this.gasTank.getFluid().amount >= Settings.uraniumHexaflourideRatio())
|
||||||
{
|
{
|
||||||
return isItemValidForSlot(2, new ItemStack(Atomic.itemUranium)) && isItemValidForSlot(3, new ItemStack(Atomic.itemUranium, 1, 1));
|
return isItemValidForSlot(2, new ItemStack(Atomic.itemUranium)) && isItemValidForSlot(3, new ItemStack(Atomic.itemUranium, 1, 1));
|
||||||
}
|
}
|
||||||
|
@ -204,7 +184,7 @@ public class TileCentrifuge extends TileElectricalInventory implements ISidedInv
|
||||||
{
|
{
|
||||||
if (this.nengYong())
|
if (this.nengYong())
|
||||||
{
|
{
|
||||||
this.gasTank.drain(Settings.uraniumHexaflourideRatio, true);
|
this.gasTank.drain(Settings.uraniumHexaflourideRatio(), true);
|
||||||
|
|
||||||
if (this.worldObj.rand.nextFloat() > 0.6)
|
if (this.worldObj.rand.nextFloat() > 0.6)
|
||||||
{
|
{
|
||||||
|
@ -313,33 +293,15 @@ public class TileCentrifuge extends TileElectricalInventory implements ISidedInv
|
||||||
switch (i)
|
switch (i)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
return CompatibilityModule.isHandler(itemStack.getItem());
|
return Compatibility.isHandler(itemStack.getItem());
|
||||||
case 1:
|
case 1:
|
||||||
return true;
|
return true;
|
||||||
case 2:
|
case 2:
|
||||||
return itemStack.itemID == Atomic.itemUranium.itemID;
|
return itemStack.getItem() == Atomic.itemUranium;
|
||||||
case 3:
|
case 3:
|
||||||
return itemStack.itemID == Atomic.itemUranium.itemID;
|
return itemStack.getItem() == Atomic.itemUranium;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public long onExtractEnergy(ForgeDirection from, long extract, boolean doExtract)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public long getVoltageInput(ForgeDirection from)
|
|
||||||
{
|
|
||||||
return 1000;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongVoltage(ForgeDirection direction, long voltage)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,62 +0,0 @@
|
||||||
package resonantinduction.atomic.machine.extractor;
|
|
||||||
|
|
||||||
import atomic.Atomic;
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
|
||||||
import net.minecraft.tileentity.TileEntity;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
import resonant.lib.prefab.block.BlockRotatable;
|
|
||||||
import resonant.lib.render.block.BlockRenderingHandler;
|
|
||||||
import universalelectricity.api.UniversalElectricity;
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
|
||||||
|
|
||||||
/** Chemical Extractor
|
|
||||||
*
|
|
||||||
* @author Calclavia */
|
|
||||||
public class BlockChemicalExtractor extends BlockRotatable
|
|
||||||
{
|
|
||||||
public BlockChemicalExtractor(int ID)
|
|
||||||
{
|
|
||||||
super(ID, UniversalElectricity.machine);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Called when the block is right clicked by the player */
|
|
||||||
@Override
|
|
||||||
public boolean onMachineActivated(World par1World, int x, int y, int z, EntityPlayer par5EntityPlayer, int side, float hitX, float hitY, float hitZ)
|
|
||||||
{
|
|
||||||
int metadata = par1World.getBlockMetadata(x, y, z);
|
|
||||||
|
|
||||||
if (!par1World.isRemote)
|
|
||||||
{
|
|
||||||
par5EntityPlayer.openGui(Atomic.INSTANCE, 0, par1World, x, y, z);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public TileEntity createNewTileEntity(World var1)
|
|
||||||
{
|
|
||||||
return new TileChemicalExtractor();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean renderAsNormalBlock()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isOpaqueCube()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
|
||||||
@Override
|
|
||||||
public int getRenderType()
|
|
||||||
{
|
|
||||||
return BlockRenderingHandler.ID;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,12 +1,14 @@
|
||||||
package resonantinduction.atomic.machine.extractor;
|
package resonantinduction.atomic.machine.extractor;
|
||||||
|
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.network.Packet;
|
||||||
|
import resonant.engine.ResonantEngine;
|
||||||
|
import resonant.lib.network.discriminator.PacketAnnotation;
|
||||||
import resonantinduction.atomic.Atomic;
|
import resonantinduction.atomic.Atomic;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.ISidedInventory;
|
import net.minecraft.inventory.ISidedInventory;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.network.packet.Packet;
|
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
import net.minecraftforge.fluids.Fluid;
|
import net.minecraftforge.fluids.Fluid;
|
||||||
import net.minecraftforge.fluids.FluidContainerRegistry;
|
import net.minecraftforge.fluids.FluidContainerRegistry;
|
||||||
|
@ -20,15 +22,12 @@ import resonant.lib.network.Synced;
|
||||||
import resonantinduction.atomic.Atomic;
|
import resonantinduction.atomic.Atomic;
|
||||||
import resonantinduction.core.ResonantInduction;
|
import resonantinduction.core.ResonantInduction;
|
||||||
import resonantinduction.core.Settings;
|
import resonantinduction.core.Settings;
|
||||||
import universalelectricity.api.CompatibilityModule;
|
import universalelectricity.compatibility.Compatibility;
|
||||||
import universalelectricity.api.electricity.IVoltageInput;
|
import universalelectricity.core.transform.vector.Vector3;
|
||||||
import universalelectricity.api.energy.EnergyStorageHandler;
|
|
||||||
import cpw.mods.fml.common.network.PacketDispatcher;
|
|
||||||
import cpw.mods.fml.common.network.Player;
|
|
||||||
|
|
||||||
/** Chemical extractor TileEntity */
|
/** Chemical extractor TileEntity */
|
||||||
|
|
||||||
public class TileChemicalExtractor extends TileProcess implements ISidedInventory, IFluidHandler, IRotatable, IVoltageInput
|
public class TileChemicalExtractor extends TileProcess implements IFluidHandler
|
||||||
{
|
{
|
||||||
public static final int TICK_TIME = 20 * 14;
|
public static final int TICK_TIME = 20 * 14;
|
||||||
public static final int EXTRACT_SPEED = 100;
|
public static final int EXTRACT_SPEED = 100;
|
||||||
|
@ -47,6 +46,8 @@ public class TileChemicalExtractor extends TileProcess implements ISidedInventor
|
||||||
super(Material.iron);
|
super(Material.iron);
|
||||||
electricNode().energy().setCapacity(ENERGY * 2);
|
electricNode().energy().setCapacity(ENERGY * 2);
|
||||||
this.setSizeInventory(7);
|
this.setSizeInventory(7);
|
||||||
|
this.isOpaqueCube(true);
|
||||||
|
this.normalRender(false);
|
||||||
inputSlot = 1;
|
inputSlot = 1;
|
||||||
outputSlot = 2;
|
outputSlot = 2;
|
||||||
tankInputFillSlot = 3;
|
tankInputFillSlot = 3;
|
||||||
|
@ -101,7 +102,7 @@ public class TileChemicalExtractor extends TileProcess implements ISidedInventor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
energy.extractEnergy(ENERGY, true);
|
electricNode().energy().extractEnergy(ENERGY, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -121,9 +122,17 @@ public class TileChemicalExtractor extends TileProcess implements ISidedInventor
|
||||||
@Override
|
@Override
|
||||||
public Packet getDescriptionPacket()
|
public Packet getDescriptionPacket()
|
||||||
{
|
{
|
||||||
return ResonantInduction.PACKET_ANNOTATION.getPacket(this);
|
return ResonantEngine.instance.packetHandler.toMCPacket(new PacketAnnotation(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean use(EntityPlayer player, int side, Vector3 hit)
|
||||||
|
{
|
||||||
|
openGui(player, Atomic.INSTANCE);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public boolean canUse()
|
public boolean canUse()
|
||||||
{
|
{
|
||||||
if (inputTank.getFluid() != null)
|
if (inputTank.getFluid() != null)
|
||||||
|
@ -138,7 +147,7 @@ public class TileChemicalExtractor extends TileProcess implements ISidedInventor
|
||||||
|
|
||||||
if (outputTank.getFluidAmount() < outputTank.getCapacity())
|
if (outputTank.getFluidAmount() < outputTank.getCapacity())
|
||||||
{
|
{
|
||||||
if (inputTank.getFluid().getFluid().getID() == Atomic.FLUID_DEUTERIUM.getID() && inputTank.getFluid().amount >= Settings.deutermiumPerTritium * EXTRACT_SPEED)
|
if (inputTank.getFluid().getFluid().getID() == Atomic.FLUID_DEUTERIUM.getID() && inputTank.getFluid().amount >= Settings.deutermiumPerTritium() * EXTRACT_SPEED)
|
||||||
{
|
{
|
||||||
if (outputTank.getFluid() == null || Atomic.FLUIDSTACK_TRITIUM.equals(outputTank.getFluid()))
|
if (outputTank.getFluid() == null || Atomic.FLUIDSTACK_TRITIUM.equals(outputTank.getFluid()))
|
||||||
{
|
{
|
||||||
|
@ -146,7 +155,7 @@ public class TileChemicalExtractor extends TileProcess implements ISidedInventor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (inputTank.getFluid().getFluid().getID() == FluidRegistry.WATER.getID() && inputTank.getFluid().amount >= Settings.waterPerDeutermium * EXTRACT_SPEED)
|
if (inputTank.getFluid().getFluid().getID() == FluidRegistry.WATER.getID() && inputTank.getFluid().amount >= Settings.waterPerDeutermium() * EXTRACT_SPEED)
|
||||||
{
|
{
|
||||||
if (outputTank.getFluid() == null || Atomic.FLUIDSTACK_DEUTERIUM.equals(outputTank.getFluid()))
|
if (outputTank.getFluid() == null || Atomic.FLUIDSTACK_DEUTERIUM.equals(outputTank.getFluid()))
|
||||||
{
|
{
|
||||||
|
@ -180,13 +189,13 @@ public class TileChemicalExtractor extends TileProcess implements ISidedInventor
|
||||||
{
|
{
|
||||||
if (canUse())
|
if (canUse())
|
||||||
{
|
{
|
||||||
FluidStack drain = inputTank.drain(Settings.waterPerDeutermium * EXTRACT_SPEED, false);
|
FluidStack drain = inputTank.drain(Settings.waterPerDeutermium() * EXTRACT_SPEED, false);
|
||||||
|
|
||||||
if (drain != null && drain.amount >= 1 && drain.getFluid().getID() == FluidRegistry.WATER.getID())
|
if (drain != null && drain.amount >= 1 && drain.getFluid().getID() == FluidRegistry.WATER.getID())
|
||||||
{
|
{
|
||||||
if (outputTank.fill(new FluidStack(Atomic.FLUIDSTACK_DEUTERIUM, EXTRACT_SPEED), true) >= EXTRACT_SPEED)
|
if (outputTank.fill(new FluidStack(Atomic.FLUIDSTACK_DEUTERIUM, EXTRACT_SPEED), true) >= EXTRACT_SPEED)
|
||||||
{
|
{
|
||||||
inputTank.drain(Settings.waterPerDeutermium * EXTRACT_SPEED, true);
|
inputTank.drain(Settings.waterPerDeutermium() * EXTRACT_SPEED, true);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -199,15 +208,15 @@ public class TileChemicalExtractor extends TileProcess implements ISidedInventor
|
||||||
{
|
{
|
||||||
if (canUse())
|
if (canUse())
|
||||||
{
|
{
|
||||||
int waterUsage = Settings.deutermiumPerTritium;
|
int waterUsage = Settings.deutermiumPerTritium();
|
||||||
|
|
||||||
FluidStack drain = inputTank.drain(Settings.deutermiumPerTritium * EXTRACT_SPEED, false);
|
FluidStack drain = inputTank.drain(Settings.deutermiumPerTritium() * EXTRACT_SPEED, false);
|
||||||
|
|
||||||
if (drain != null && drain.amount >= 1 && drain.getFluid().getID() == Atomic.FLUID_DEUTERIUM.getID())
|
if (drain != null && drain.amount >= 1 && drain.getFluid().getID() == Atomic.FLUID_DEUTERIUM.getID())
|
||||||
{
|
{
|
||||||
if (outputTank.fill(new FluidStack(Atomic.FLUIDSTACK_TRITIUM, EXTRACT_SPEED), true) >= EXTRACT_SPEED)
|
if (outputTank.fill(new FluidStack(Atomic.FLUIDSTACK_TRITIUM, EXTRACT_SPEED), true) >= EXTRACT_SPEED)
|
||||||
{
|
{
|
||||||
inputTank.drain(Settings.deutermiumPerTritium * EXTRACT_SPEED, true);
|
inputTank.drain(Settings.deutermiumPerTritium() * EXTRACT_SPEED, true);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -300,7 +309,7 @@ public class TileChemicalExtractor extends TileProcess implements ISidedInventor
|
||||||
// Water input for machine.
|
// Water input for machine.
|
||||||
if (slotID == 0)
|
if (slotID == 0)
|
||||||
{
|
{
|
||||||
return CompatibilityModule.isHandler(itemStack.getItem());
|
return Compatibility.isHandler(itemStack.getItem());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (slotID == 1)
|
if (slotID == 1)
|
||||||
|
@ -342,37 +351,6 @@ public class TileChemicalExtractor extends TileProcess implements ISidedInventor
|
||||||
return slotID == 2;
|
return slotID == 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public long onExtractEnergy(ForgeDirection from, long extract, boolean doExtract)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public long onReceiveEnergy(ForgeDirection from, long receive, boolean doReceive)
|
|
||||||
{
|
|
||||||
if (this.canUse())
|
|
||||||
{
|
|
||||||
return super.onReceiveEnergy(from, receive, doReceive);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public long getVoltageInput(ForgeDirection from)
|
|
||||||
{
|
|
||||||
return 1000;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongVoltage(ForgeDirection direction, long voltage)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FluidTank getInputTank()
|
public FluidTank getInputTank()
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,11 +4,10 @@ import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||||
import resonantinduction.atomic.Atomic;
|
import resonantinduction.atomic.Atomic;
|
||||||
import net.minecraft.util.Vec3;
|
import net.minecraft.util.Vec3;
|
||||||
import net.minecraftforge.event.ForgeSubscribe;
|
|
||||||
import resonant.api.explosion.ExplosionEvent.DoExplosionEvent;
|
import resonant.api.explosion.ExplosionEvent.DoExplosionEvent;
|
||||||
import resonantinduction.atomic.Atomic;
|
|
||||||
import universalelectricity.core.transform.vector.Vector3;
|
import universalelectricity.core.transform.vector.Vector3;
|
||||||
|
|
||||||
/** Atomic Science Event Handling. */
|
/** Atomic Science Event Handling. */
|
||||||
|
@ -31,7 +30,7 @@ public class FulminationHandler
|
||||||
list.remove(tileEntity);
|
list.remove(tileEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ForgeSubscribe
|
@SubscribeEvent
|
||||||
public void BaoZha(DoExplosionEvent evt)
|
public void BaoZha(DoExplosionEvent evt)
|
||||||
{
|
{
|
||||||
if (evt.iExplosion != null)
|
if (evt.iExplosion != null)
|
||||||
|
@ -73,7 +72,7 @@ public class FulminationHandler
|
||||||
|
|
||||||
long energy = (long) Math.min(maxEnergyPerGenerator, maxEnergyPerGenerator / (juLi / evt.iExplosion.getRadius()));
|
long energy = (long) Math.min(maxEnergyPerGenerator, maxEnergyPerGenerator / (juLi / evt.iExplosion.getRadius()));
|
||||||
energy = (long) Math.max((1 - density) * energy, 0);
|
energy = (long) Math.max((1 - density) * energy, 0);
|
||||||
tileEntity.getEnergyHandler().receiveEnergy(energy, true);
|
tileEntity.electricNode().energy().receiveEnergy(energy, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,26 +4,22 @@ import java.util.EnumSet;
|
||||||
|
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
import resonant.lib.utility.ConnectedTextureRenderer;
|
|
||||||
import resonant.lib.content.module.TileRender;
|
|
||||||
import resonant.lib.prefab.tile.TileElectrical;
|
|
||||||
import resonantinduction.core.Reference;
|
import resonantinduction.core.Reference;
|
||||||
import universalelectricity.api.electricity.IVoltageOutput;
|
|
||||||
import universalelectricity.api.energy.EnergyStorageHandler;
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
import resonant.lib.content.prefab.java.TileElectric;
|
||||||
|
|
||||||
/** Fulmination TileEntity */
|
/** Fulmination TileEntity */
|
||||||
public class TileFulmination extends TileElectrical implements IVoltageOutput
|
public class TileFulmination extends TileElectric
|
||||||
{
|
{
|
||||||
private static final long DIAN = 10000000000000L;
|
private static final long DIAN = 10000000000000L;
|
||||||
|
|
||||||
public TileFulmination()
|
public TileFulmination()
|
||||||
{
|
{
|
||||||
super(Material.iron);
|
super(Material.iron);
|
||||||
energy = new EnergyStorageHandler(DIAN);
|
electricNode().energy().setCapacity(DIAN * 2);
|
||||||
blockHardness = 10;
|
this.blockHardness(10);
|
||||||
blockResistance = 25000;
|
this.blockResistance(25000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -34,12 +30,11 @@ public class TileFulmination extends TileElectrical implements IVoltageOutput
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateEntity()
|
public void update()
|
||||||
{
|
{
|
||||||
super.updateEntity();
|
super.update();
|
||||||
produce();
|
|
||||||
// Slowly lose energy.
|
// Slowly lose energy.
|
||||||
energy.extractEnergy(1, true);
|
electricNode().energy().extractEnergy(10, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -48,35 +43,4 @@ public class TileFulmination extends TileElectrical implements IVoltageOutput
|
||||||
FulminationHandler.INSTANCE.unregister(this);
|
FulminationHandler.INSTANCE.unregister(this);
|
||||||
super.initiate();
|
super.initiate();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public long onReceiveEnergy(ForgeDirection from, long receive, boolean doReceive)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public EnumSet<ForgeDirection> getInputDirections()
|
|
||||||
{
|
|
||||||
return EnumSet.noneOf(ForgeDirection.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public EnumSet<ForgeDirection> getOutputDirections()
|
|
||||||
{
|
|
||||||
return EnumSet.allOf(ForgeDirection.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public long getVoltageOutput(ForgeDirection side)
|
|
||||||
{
|
|
||||||
return 10000000000L;
|
|
||||||
}
|
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
|
||||||
@Override
|
|
||||||
protected TileRender newRenderer()
|
|
||||||
{
|
|
||||||
return new ConnectedTextureRenderer(this, Reference.PREFIX + "atomic_edge");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,15 +15,15 @@ import cpw.mods.fml.relauncher.SideOnly;
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public class RenderPlasmaHeater extends RenderTaggedTile
|
public class RenderPlasmaHeater extends RenderTaggedTile
|
||||||
{
|
{
|
||||||
public static final IModelCustom MODEL = AdvancedModelLoader.loadModel(Reference.MODEL_DIRECTORY + "fusionReactor.tcn");
|
public static final IModelCustom MODEL = AdvancedModelLoader.loadModel(new ResourceLocation(Reference.modelDirectory() + "fusionReactor.tcn"));
|
||||||
public static final ResourceLocation TEXTURE = new ResourceLocation(Reference.DOMAIN, Reference.MODEL_PATH + "fusionReactor.png");
|
public static final ResourceLocation TEXTURE = new ResourceLocation(Reference.domain(), Reference.modelPath() + "fusionReactor.png");
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void renderTileEntityAt(TileEntity t, double x, double y, double z, float f)
|
public void renderTileEntityAt(TileEntity t, double x, double y, double z, float f)
|
||||||
{
|
{
|
||||||
TilePlasmaHeater tileEntity = (TilePlasmaHeater) t;
|
TilePlasmaHeater tileEntity = (TilePlasmaHeater) t;
|
||||||
|
|
||||||
if (tileEntity.worldObj != null)
|
if (tileEntity.world() != null)
|
||||||
{
|
{
|
||||||
super.renderTileEntityAt(t, x, y, z, f);
|
super.renderTileEntityAt(t, x, y, z, f);
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import java.util.ArrayList;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
|
import net.minecraft.init.Blocks;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.DamageSource;
|
import net.minecraft.util.DamageSource;
|
||||||
|
@ -12,14 +13,13 @@ import net.minecraft.world.IBlockAccess;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
import net.minecraftforge.common.MinecraftForge;
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
import resonant.api.event.PlasmaEvent.SpawnPlasmaEvent;
|
import resonant.api.event.PlasmaEvent.SpawnPlasmaEvent;
|
||||||
|
import resonant.content.prefab.java.TileAdvanced;
|
||||||
|
import resonant.engine.grid.thermal.ThermalGrid;
|
||||||
import resonant.lib.config.Config;
|
import resonant.lib.config.Config;
|
||||||
import resonant.lib.content.module.TileBase;
|
|
||||||
import resonant.lib.prefab.vector.Cuboid;
|
|
||||||
import resonant.lib.thermal.ThermalGrid;
|
|
||||||
import universalelectricity.core.transform.vector.Vector3;
|
import universalelectricity.core.transform.vector.Vector3;
|
||||||
import universalelectricity.api.vector.VectorWorld;
|
import universalelectricity.core.transform.vector.VectorWorld;
|
||||||
|
|
||||||
public class TilePlasma extends TileBase
|
public class TilePlasma extends TileAdvanced
|
||||||
{
|
{
|
||||||
@Config
|
@Config
|
||||||
public static int plasmaMaxTemperature = 1000000;
|
public static int plasmaMaxTemperature = 1000000;
|
||||||
|
@ -28,8 +28,8 @@ public class TilePlasma extends TileBase
|
||||||
public TilePlasma()
|
public TilePlasma()
|
||||||
{
|
{
|
||||||
super(Material.lava);
|
super(Material.lava);
|
||||||
textureName = "plasma";
|
textureName_$eq("plasma");
|
||||||
isOpaqueCube = false;
|
isOpaqueCube(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -44,12 +44,6 @@ public class TilePlasma extends TileBase
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public Iterable<Cuboid> getCollisionBoxes()
|
|
||||||
{
|
|
||||||
return new ArrayList();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ArrayList<ItemStack> getDrops(int metadata, int fortune)
|
public ArrayList<ItemStack> getDrops(int metadata, int fortune)
|
||||||
{
|
{
|
||||||
|
@ -69,18 +63,18 @@ public class TilePlasma extends TileBase
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateEntity()
|
public void update()
|
||||||
{
|
{
|
||||||
super.updateEntity();
|
super.update();
|
||||||
ThermalGrid.addTemperature(new VectorWorld(this), (temperature - ThermalGrid.getTemperature(new VectorWorld(this))) * 0.1f);
|
ThermalGrid.addTemperature(new VectorWorld(this), (temperature - ThermalGrid.getTemperature(new VectorWorld(this))) * 0.1f);
|
||||||
|
|
||||||
if (ticks % 20 == 0)
|
if (ticks() % 20 == 0)
|
||||||
{
|
{
|
||||||
temperature /= 1.5;
|
temperature /= 1.5;
|
||||||
|
|
||||||
if (temperature <= plasmaMaxTemperature / 10)
|
if (temperature <= plasmaMaxTemperature / 10)
|
||||||
{
|
{
|
||||||
worldObj.setBlock(xCoord, yCoord, zCoord, Block.fire.blockID, 0, 3);
|
worldObj.setBlock(xCoord, yCoord, zCoord, Blocks.fire, 0, 3);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,10 +2,12 @@ package resonantinduction.atomic.machine.plasma;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
import atomic.Atomic;
|
import cpw.mods.fml.common.network.ByteBufUtils;
|
||||||
|
import io.netty.buffer.ByteBuf;
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.network.packet.Packet;
|
import net.minecraft.network.Packet;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
import net.minecraftforge.fluids.Fluid;
|
import net.minecraftforge.fluids.Fluid;
|
||||||
import net.minecraftforge.fluids.FluidContainerRegistry;
|
import net.minecraftforge.fluids.FluidContainerRegistry;
|
||||||
|
@ -14,20 +16,21 @@ import net.minecraftforge.fluids.FluidTank;
|
||||||
import net.minecraftforge.fluids.FluidTankInfo;
|
import net.minecraftforge.fluids.FluidTankInfo;
|
||||||
import net.minecraftforge.fluids.IFluidHandler;
|
import net.minecraftforge.fluids.IFluidHandler;
|
||||||
import resonant.api.ITagRender;
|
import resonant.api.ITagRender;
|
||||||
|
import resonant.engine.ResonantEngine;
|
||||||
import resonant.lib.config.Config;
|
import resonant.lib.config.Config;
|
||||||
import resonant.lib.network.IPacketReceiver;
|
import resonant.lib.network.discriminator.PacketTile;
|
||||||
import resonant.lib.network.PacketHandler;
|
import resonant.lib.network.discriminator.PacketType;
|
||||||
import resonant.lib.prefab.tile.TileElectrical;
|
import resonant.lib.network.handle.IPacketReceiver;
|
||||||
import resonant.lib.utility.LanguageUtility;
|
import resonant.lib.utility.LanguageUtility;
|
||||||
|
import resonantinduction.atomic.Atomic;
|
||||||
import resonantinduction.core.ResonantInduction;
|
import resonantinduction.core.ResonantInduction;
|
||||||
import universalelectricity.api.energy.EnergyStorageHandler;
|
import universalelectricity.api.UnitDisplay;
|
||||||
import universalelectricity.api.energy.UnitDisplay;
|
|
||||||
import universalelectricity.api.energy.UnitDisplay.Unit;
|
|
||||||
import universalelectricity.core.transform.vector.Vector3;
|
import universalelectricity.core.transform.vector.Vector3;
|
||||||
|
|
||||||
import com.google.common.io.ByteArrayDataInput;
|
import com.google.common.io.ByteArrayDataInput;
|
||||||
|
import resonant.lib.content.prefab.java.TileElectric;
|
||||||
|
|
||||||
public class TilePlasmaHeater extends TileElectrical implements IPacketReceiver, ITagRender, IFluidHandler
|
public class TilePlasmaHeater extends TileElectric implements IPacketReceiver, ITagRender, IFluidHandler
|
||||||
{
|
{
|
||||||
public static long joules = 10000000000L;
|
public static long joules = 10000000000L;
|
||||||
|
|
||||||
|
@ -42,30 +45,21 @@ public class TilePlasmaHeater extends TileElectrical implements IPacketReceiver,
|
||||||
|
|
||||||
public TilePlasmaHeater()
|
public TilePlasmaHeater()
|
||||||
{
|
{
|
||||||
energy = new EnergyStorageHandler(joules, joules / 20);
|
super(Material.iron);
|
||||||
|
electricNode().energy().setCapacity(joules);
|
||||||
|
electricNode().energy().setMaxTransfer(joules / 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long onReceiveEnergy(ForgeDirection from, long receive, boolean doReceive)
|
public void update()
|
||||||
{
|
{
|
||||||
if (tankInputDeuterium.getFluidAmount() > 0 && tankInputTritium.getFluidAmount() > 0)
|
super.update();
|
||||||
{
|
|
||||||
return super.onReceiveEnergy(from, receive, doReceive);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
rotation += electricNode().energy().getEnergy() / 10000f;
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateEntity()
|
|
||||||
{
|
|
||||||
super.updateEntity();
|
|
||||||
|
|
||||||
rotation += energy.getEnergy() / 10000f;
|
|
||||||
|
|
||||||
if (!worldObj.isRemote)
|
if (!worldObj.isRemote)
|
||||||
{
|
{
|
||||||
if (energy.checkExtract())
|
if (electricNode().energy().checkExtract())
|
||||||
{
|
{
|
||||||
// Creates plasma if there is enough Deuterium, Tritium AND Plasma output is not full.
|
// Creates plasma if there is enough Deuterium, Tritium AND Plasma output is not full.
|
||||||
if (tankInputDeuterium.getFluidAmount() >= plasmaHeatAmount &&
|
if (tankInputDeuterium.getFluidAmount() >= plasmaHeatAmount &&
|
||||||
|
@ -75,14 +69,15 @@ public class TilePlasmaHeater extends TileElectrical implements IPacketReceiver,
|
||||||
tankInputDeuterium.drain(plasmaHeatAmount, true);
|
tankInputDeuterium.drain(plasmaHeatAmount, true);
|
||||||
tankInputTritium.drain(plasmaHeatAmount, true);
|
tankInputTritium.drain(plasmaHeatAmount, true);
|
||||||
tankOutput.fill(new FluidStack(Atomic.FLUID_PLASMA, tankOutput.getCapacity()), true);
|
tankOutput.fill(new FluidStack(Atomic.FLUID_PLASMA, tankOutput.getCapacity()), true);
|
||||||
energy.extractEnergy();
|
electricNode().energy().extractEnergy();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ticks % 80 == 0)
|
if (ticks() % 80 == 0)
|
||||||
{
|
{
|
||||||
PacketHandler.sendPacketToClients(getDescriptionPacket(), worldObj, new Vector3(this), 25);
|
world().markBlockForUpdate(x(), y(), z());
|
||||||
|
//PacketHandler.sendPacketToClients(getDescriptionPacket(), worldObj, new Vector3(this), 25);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,15 +86,15 @@ public class TilePlasmaHeater extends TileElectrical implements IPacketReceiver,
|
||||||
{
|
{
|
||||||
NBTTagCompound nbt = new NBTTagCompound();
|
NBTTagCompound nbt = new NBTTagCompound();
|
||||||
writeToNBT(nbt);
|
writeToNBT(nbt);
|
||||||
return ResonantInduction.PACKET_TILE.getPacket(this, nbt);
|
return ResonantEngine.instance.packetHandler.toMCPacket(new PacketTile(this, nbt));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onReceivePacket(ByteArrayDataInput data, EntityPlayer player, Object... extra)
|
public void read(ByteBuf data, EntityPlayer player, PacketType type)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
readFromNBT(PacketHandler.readNBTTagCompound(data));
|
readFromNBT(ByteBufUtils.readTag(data));
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
@ -149,9 +144,9 @@ public class TilePlasmaHeater extends TileElectrical implements IPacketReceiver,
|
||||||
@Override
|
@Override
|
||||||
public float addInformation(HashMap<String, Integer> map, EntityPlayer player)
|
public float addInformation(HashMap<String, Integer> map, EntityPlayer player)
|
||||||
{
|
{
|
||||||
if (energy != null)
|
if (electricNode().energy() != null)
|
||||||
{
|
{
|
||||||
map.put(LanguageUtility.getLocal("tooltip.energy") + ": " + UnitDisplay.getDisplay(energy.getEnergy(), Unit.JOULES), 0xFFFFFF);
|
map.put(LanguageUtility.getLocal("tooltip.energy") + ": " + new UnitDisplay(UnitDisplay.Unit.JOULES, electricNode().energy().getEnergy()), 0xFFFFFF);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tankInputDeuterium.getFluidAmount() > 0)
|
if (tankInputDeuterium.getFluidAmount() > 0)
|
||||||
|
@ -172,12 +167,6 @@ public class TilePlasmaHeater extends TileElectrical implements IPacketReceiver,
|
||||||
return 1.5f;
|
return 1.5f;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public long onExtractEnergy(ForgeDirection from, long extract, boolean doExtract)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int fill(ForgeDirection from, FluidStack resource, boolean doFill)
|
public int fill(ForgeDirection from, FluidStack resource, boolean doFill)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package resonantinduction.atomic.machine.quantum;
|
package resonantinduction.atomic.machine.quantum;
|
||||||
|
|
||||||
|
import net.minecraft.inventory.IInventory;
|
||||||
import resonantinduction.atomic.Atomic;
|
import resonantinduction.atomic.Atomic;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.entity.player.InventoryPlayer;
|
import net.minecraft.entity.player.InventoryPlayer;
|
||||||
|
@ -16,13 +17,13 @@ public class ContainerQuantumAssembler extends Container
|
||||||
public ContainerQuantumAssembler(InventoryPlayer par1InventoryPlayer, TileQuantumAssembler tileEntity)
|
public ContainerQuantumAssembler(InventoryPlayer par1InventoryPlayer, TileQuantumAssembler tileEntity)
|
||||||
{
|
{
|
||||||
this.tileEntity = tileEntity;
|
this.tileEntity = tileEntity;
|
||||||
this.addSlotToContainer(new Slot(tileEntity, 0, 80, 40));
|
this.addSlotToContainer(new Slot((IInventory)tileEntity, 0, 80, 40));
|
||||||
this.addSlotToContainer(new Slot(tileEntity, 1, 53, 56));
|
this.addSlotToContainer(new Slot((IInventory)tileEntity, 1, 53, 56));
|
||||||
this.addSlotToContainer(new Slot(tileEntity, 2, 107, 56));
|
this.addSlotToContainer(new Slot((IInventory)tileEntity, 2, 107, 56));
|
||||||
this.addSlotToContainer(new Slot(tileEntity, 3, 53, 88));
|
this.addSlotToContainer(new Slot((IInventory)tileEntity, 3, 53, 88));
|
||||||
this.addSlotToContainer(new Slot(tileEntity, 4, 107, 88));
|
this.addSlotToContainer(new Slot((IInventory)tileEntity, 4, 107, 88));
|
||||||
this.addSlotToContainer(new Slot(tileEntity, 5, 80, 103));
|
this.addSlotToContainer(new Slot((IInventory)tileEntity, 5, 80, 103));
|
||||||
this.addSlotToContainer(new Slot(tileEntity, 6, 80, 72));
|
this.addSlotToContainer(new Slot((IInventory)tileEntity, 6, 80, 72));
|
||||||
|
|
||||||
int var3;
|
int var3;
|
||||||
|
|
||||||
|
@ -39,15 +40,15 @@ public class ContainerQuantumAssembler extends Container
|
||||||
this.addSlotToContainer(new Slot(par1InventoryPlayer, var3, 8 + var3 * 18, 206));
|
this.addSlotToContainer(new Slot(par1InventoryPlayer, var3, 8 + var3 * 18, 206));
|
||||||
}
|
}
|
||||||
|
|
||||||
this.tileEntity.getPlayersUsing().add(par1InventoryPlayer.player);
|
//this.tileEntity.getPlayersUsing().add(par1InventoryPlayer.player);
|
||||||
tileEntity.openChest();
|
//tileEntity.openChest();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onContainerClosed(EntityPlayer entityplayer)
|
public void onContainerClosed(EntityPlayer entityplayer)
|
||||||
{
|
{
|
||||||
super.onContainerClosed(entityplayer);
|
super.onContainerClosed(entityplayer);
|
||||||
this.tileEntity.getPlayersUsing().remove(entityplayer);
|
//this.tileEntity.getPlayersUsing().remove(entityplayer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -70,7 +71,7 @@ public class ContainerQuantumAssembler extends Container
|
||||||
|
|
||||||
if (par1 > 6)
|
if (par1 > 6)
|
||||||
{
|
{
|
||||||
if (itemStack.itemID == Atomic.itemDarkMatter.itemID)
|
if (itemStack.getItem() == Atomic.itemDarkMatter)
|
||||||
{
|
{
|
||||||
if (!this.mergeItemStack(itemStack, 0, 6, false))
|
if (!this.mergeItemStack(itemStack, 0, 6, false))
|
||||||
{
|
{
|
||||||
|
|
|
@ -9,11 +9,11 @@ import org.lwjgl.opengl.GL11;
|
||||||
import resonant.lib.gui.GuiContainerBase;
|
import resonant.lib.gui.GuiContainerBase;
|
||||||
import resonantinduction.atomic.Atomic;
|
import resonantinduction.atomic.Atomic;
|
||||||
import resonantinduction.core.Reference;
|
import resonantinduction.core.Reference;
|
||||||
import universalelectricity.api.energy.UnitDisplay.Unit;
|
import universalelectricity.api.UnitDisplay;
|
||||||
|
|
||||||
public class GuiQuantumAssembler extends GuiContainerBase
|
public class GuiQuantumAssembler extends GuiContainerBase
|
||||||
{
|
{
|
||||||
public static final ResourceLocation TEXTURE = new ResourceLocation(Reference.DOMAIN, Atomic.GUI_TEXTURE_DIRECTORY + "gui_atomic_assembler.png");
|
public static final ResourceLocation TEXTURE = new ResourceLocation(Reference.domain(), Atomic.GUI_TEXTURE_DIRECTORY + "gui_atomic_assembler.png");
|
||||||
|
|
||||||
private TileQuantumAssembler tileEntity;
|
private TileQuantumAssembler tileEntity;
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ public class GuiQuantumAssembler extends GuiContainerBase
|
||||||
@Override
|
@Override
|
||||||
public void drawGuiContainerForegroundLayer(int mouseX, int mouseY)
|
public void drawGuiContainerForegroundLayer(int mouseX, int mouseY)
|
||||||
{
|
{
|
||||||
this.fontRenderer.drawString(this.tileEntity.getInvName(), 65 - this.tileEntity.getInvName().length(), 6, 4210752);
|
this.fontRendererObj.drawString("Assembler", 65 - "Assembler".length(), 6, 4210752);
|
||||||
String displayText = "";
|
String displayText = "";
|
||||||
|
|
||||||
if (this.tileEntity.time > 0)
|
if (this.tileEntity.time > 0)
|
||||||
|
@ -47,9 +47,9 @@ public class GuiQuantumAssembler extends GuiContainerBase
|
||||||
displayText = "Idle";
|
displayText = "Idle";
|
||||||
}
|
}
|
||||||
|
|
||||||
this.fontRenderer.drawString(displayText, 9, this.ySize - 106, 4210752);
|
this.fontRendererObj.drawString(displayText, 9, this.ySize - 106, 4210752);
|
||||||
this.renderUniversalDisplay(100, this.ySize - 94, this.tileEntity.getVoltageInput(null), mouseX, mouseY, Unit.VOLTAGE);
|
this.renderUniversalDisplay(100, this.ySize - 94, this.tileEntity.electricNode().voltage(), mouseX, mouseY, UnitDisplay.Unit.VOLTAGE);
|
||||||
this.renderUniversalDisplay(8, this.ySize - 95, tileEntity.MAX_TIME, mouseX, mouseY, Unit.WATT);
|
this.renderUniversalDisplay(8, this.ySize - 95, tileEntity.MAX_TIME, mouseX, mouseY, UnitDisplay.Unit.WATT);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Draw the background layer for the GuiContainer (everything behind the items) */
|
/** Draw the background layer for the GuiContainer (everything behind the items) */
|
||||||
|
|
|
@ -20,8 +20,8 @@ import cpw.mods.fml.relauncher.SideOnly;
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public class RenderQuantumAssembler extends TileEntitySpecialRenderer
|
public class RenderQuantumAssembler extends TileEntitySpecialRenderer
|
||||||
{
|
{
|
||||||
public static final IModelCustom MODEL = AdvancedModelLoader.loadModel(Reference.MODEL_DIRECTORY + "quantumAssembler.tcn");
|
public static final IModelCustom MODEL = AdvancedModelLoader.loadModel(new ResourceLocation(Reference.domain(), Reference.modelDirectory() + "quantumAssembler.tcn"));
|
||||||
public static final ResourceLocation TEXTURE = new ResourceLocation(Reference.DOMAIN, Reference.MODEL_PATH + "quantumAssembler.png");
|
public static final ResourceLocation TEXTURE = new ResourceLocation(Reference.domain(), Reference.modelPath() + "quantumAssembler.png");
|
||||||
|
|
||||||
private final RenderBlocks renderBlocks = new RenderBlocks();
|
private final RenderBlocks renderBlocks = new RenderBlocks();
|
||||||
|
|
||||||
|
@ -40,21 +40,21 @@ public class RenderQuantumAssembler extends TileEntitySpecialRenderer
|
||||||
bindTexture(TEXTURE);
|
bindTexture(TEXTURE);
|
||||||
|
|
||||||
GL11.glPushMatrix();
|
GL11.glPushMatrix();
|
||||||
GL11.glRotatef(-tileEntity.rotation.floatX(), 0, 1f, 0);
|
GL11.glRotatef(-tileEntity.rotation.xf(), 0, 1f, 0);
|
||||||
MODEL.renderOnly(hands);
|
MODEL.renderOnly(hands);
|
||||||
MODEL.renderOnly("Resonance_Crystal");
|
MODEL.renderOnly("Resonance_Crystal");
|
||||||
GL11.glPopMatrix();
|
GL11.glPopMatrix();
|
||||||
|
|
||||||
/** Small Laser Arm */
|
/** Small Laser Arm */
|
||||||
GL11.glPushMatrix();
|
GL11.glPushMatrix();
|
||||||
GL11.glRotatef(tileEntity.rotation.floatY(), 0, 1f, 0);
|
GL11.glRotatef(tileEntity.rotation.yf(), 0, 1f, 0);
|
||||||
MODEL.renderOnly(arms);
|
MODEL.renderOnly(arms);
|
||||||
|
|
||||||
GL11.glPopMatrix();
|
GL11.glPopMatrix();
|
||||||
|
|
||||||
/** Large Laser Arm */
|
/** Large Laser Arm */
|
||||||
GL11.glPushMatrix();
|
GL11.glPushMatrix();
|
||||||
GL11.glRotatef(-tileEntity.rotation.floatZ(), 0, 1f, 0);
|
GL11.glRotatef(-tileEntity.rotation.zf(), 0, 1f, 0);
|
||||||
MODEL.renderOnly(largeArms);
|
MODEL.renderOnly(largeArms);
|
||||||
GL11.glPopMatrix();
|
GL11.glPopMatrix();
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ public class RenderQuantumAssembler extends TileEntitySpecialRenderer
|
||||||
|
|
||||||
if (tileEntity.entityItem != null)
|
if (tileEntity.entityItem != null)
|
||||||
{
|
{
|
||||||
renderItem.doRenderItem(tileEntity.entityItem, x + 0.5, y + 0.4, z + 0.5, 0, 0);
|
renderItem.doRender(tileEntity.entityItem, x + 0.5, y + 0.4, z + 0.5, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
GL11.glPopMatrix();
|
GL11.glPopMatrix();
|
||||||
|
|
|
@ -1,32 +1,29 @@
|
||||||
package resonantinduction.atomic.machine.quantum;
|
package resonantinduction.atomic.machine.quantum;
|
||||||
|
|
||||||
|
import io.netty.buffer.ByteBuf;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.entity.item.EntityItem;
|
import net.minecraft.entity.item.EntityItem;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.network.packet.Packet;
|
import net.minecraft.network.Packet;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
import resonant.api.recipe.QuantumAssemblerRecipes;
|
import resonant.api.recipe.QuantumAssemblerRecipes;
|
||||||
import resonant.lib.network.IPacketReceiver;
|
import resonant.lib.network.discriminator.PacketTile;
|
||||||
import resonant.lib.prefab.tile.TileElectricalInventory;
|
import resonant.lib.network.discriminator.PacketType;
|
||||||
import atomic.Atomic;
|
import resonant.lib.network.handle.IPacketReceiver;
|
||||||
|
import resonantinduction.atomic.Atomic;
|
||||||
import resonantinduction.core.Reference;
|
import resonantinduction.core.Reference;
|
||||||
import resonantinduction.core.ResonantInduction;
|
import resonantinduction.core.ResonantInduction;
|
||||||
import universalelectricity.api.electricity.IVoltageInput;
|
|
||||||
import universalelectricity.api.energy.EnergyStorageHandler;
|
|
||||||
import universalelectricity.core.transform.vector.Vector3;
|
import universalelectricity.core.transform.vector.Vector3;
|
||||||
|
|
||||||
import com.google.common.io.ByteArrayDataInput;
|
import com.google.common.io.ByteArrayDataInput;
|
||||||
|
import resonant.lib.content.prefab.java.TileElectricInventory;
|
||||||
import cpw.mods.fml.common.network.PacketDispatcher;
|
|
||||||
import cpw.mods.fml.common.network.Player;
|
|
||||||
|
|
||||||
/** Atomic assembler of items *
|
/** Atomic assembler of items *
|
||||||
*
|
*
|
||||||
* @author Calclavia, Darkguardsman */
|
* @author Calclavia, Darkguardsman */
|
||||||
public class TileQuantumAssembler extends TileElectricalInventory implements IPacketReceiver, IVoltageInput
|
public class TileQuantumAssembler extends TileElectricInventory implements IPacketReceiver
|
||||||
{
|
{
|
||||||
long ENERGY = 1000000000L;
|
long ENERGY = 1000000000L;
|
||||||
int MAX_TIME = 20 * 120;
|
int MAX_TIME = 20 * 120;
|
||||||
|
@ -41,12 +38,13 @@ public class TileQuantumAssembler extends TileElectricalInventory implements IPa
|
||||||
public TileQuantumAssembler()
|
public TileQuantumAssembler()
|
||||||
{
|
{
|
||||||
super(Material.iron);
|
super(Material.iron);
|
||||||
energy = new EnergyStorageHandler(ENERGY, ENERGY / 10);
|
setSizeInventory(7);
|
||||||
maxSlots = 7;
|
electricNode().energy().setCapacity(ENERGY);
|
||||||
isOpaqueCube = false;
|
electricNode().energy().setMaxTransfer(ENERGY / 10);
|
||||||
normalRender = false;
|
isOpaqueCube(false);
|
||||||
customItemRender = true;
|
normalRender(false);
|
||||||
textureName = "machine";
|
customItemRender(true);
|
||||||
|
setTextureName("machine");
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Called when the block is right clicked by the player */
|
/** Called when the block is right clicked by the player */
|
||||||
|
@ -60,16 +58,16 @@ public class TileQuantumAssembler extends TileElectricalInventory implements IPa
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateEntity()
|
public void update()
|
||||||
{
|
{
|
||||||
super.updateEntity();
|
super.update();
|
||||||
|
|
||||||
//Server side processing of items
|
//Server side processing of items
|
||||||
if (!this.worldObj.isRemote)
|
if (!this.worldObj.isRemote)
|
||||||
{
|
{
|
||||||
if (this.canProcess())
|
if (this.canProcess())
|
||||||
{
|
{
|
||||||
if (energy.checkExtract())
|
if (electricNode().energy().checkExtract())
|
||||||
{
|
{
|
||||||
if (this.time == 0)
|
if (this.time == 0)
|
||||||
{
|
{
|
||||||
|
@ -88,19 +86,19 @@ public class TileQuantumAssembler extends TileElectricalInventory implements IPa
|
||||||
{
|
{
|
||||||
this.time = 0;
|
this.time = 0;
|
||||||
}
|
}
|
||||||
this.energy.extractEnergy(ENERGY, true);
|
electricNode().energy().extractEnergy(ENERGY, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this.time = 0;
|
this.time = 0;
|
||||||
}
|
}
|
||||||
if (this.ticks % 10 == 0)
|
if (this.ticks() % 10 == 0)
|
||||||
{
|
{
|
||||||
for (EntityPlayer player : this.getPlayersUsing())
|
//for (EntityPlayer player : this.getPlayersUsing())
|
||||||
{
|
//{
|
||||||
PacketDispatcher.sendPacketToPlayer(getDescriptionPacket(), (Player) player);
|
// PacketDispatcher.sendPacketToPlayer(getDescriptionPacket(), (Player) player);
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
} //Client side animation
|
} //Client side animation
|
||||||
else if (this.time > 0)
|
else if (this.time > 0)
|
||||||
|
@ -126,9 +124,9 @@ public class TileQuantumAssembler extends TileElectricalInventory implements IPa
|
||||||
}
|
}
|
||||||
|
|
||||||
//Audio update
|
//Audio update
|
||||||
if (this.ticks % 600 == 0)
|
if (this.ticks() % 600 == 0)
|
||||||
{
|
{
|
||||||
this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, Reference.PREFIX + "assembler", 0.7f, 1f);
|
this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, Reference.prefix() + "assembler", 0.7f, 1f);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Animation frame update
|
//Animation frame update
|
||||||
|
@ -137,17 +135,7 @@ public class TileQuantumAssembler extends TileElectricalInventory implements IPa
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long onReceiveEnergy(ForgeDirection from, long receive, boolean doReceive)
|
public void read(ByteBuf data, EntityPlayer player, PacketType type)
|
||||||
{
|
|
||||||
if (this.canProcess())
|
|
||||||
{
|
|
||||||
return super.onReceiveEnergy(from, receive, doReceive);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReceivePacket(ByteArrayDataInput data, EntityPlayer player, Object... obj)
|
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -157,7 +145,7 @@ public class TileQuantumAssembler extends TileElectricalInventory implements IPa
|
||||||
int itemMeta = data.readInt();
|
int itemMeta = data.readInt();
|
||||||
if (itemID != -1 && itemAmount != -1 && itemMeta != -1)
|
if (itemID != -1 && itemAmount != -1 && itemMeta != -1)
|
||||||
{
|
{
|
||||||
this.setInventorySlotContents(6, new ItemStack(Item.itemsList[itemID], itemAmount, itemMeta));
|
this.setInventorySlotContents(6, new ItemStack(Item.getItemById(itemID), itemAmount, itemMeta));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
|
@ -167,25 +155,13 @@ public class TileQuantumAssembler extends TileElectricalInventory implements IPa
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Packet getDescriptionPacket()
|
public PacketTile getDescPacket()
|
||||||
{
|
{
|
||||||
if (this.getStackInSlot(6) != null)
|
if (this.getStackInSlot(6) != null)
|
||||||
{
|
{
|
||||||
return ResonantInduction.PACKET_TILE.getPacket(this, time, getStackInSlot(6).itemID, getStackInSlot(6).stackSize, getStackInSlot(6).getItemDamage());
|
return new PacketTile(this, time, getStackInSlot(6));
|
||||||
}
|
|
||||||
return ResonantInduction.PACKET_TILE.getPacket(this, time, -1, -1, -1);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void openChest()
|
|
||||||
{
|
|
||||||
if (!this.worldObj.isRemote)
|
|
||||||
{
|
|
||||||
for (EntityPlayer player : this.getPlayersUsing())
|
|
||||||
{
|
|
||||||
PacketDispatcher.sendPacketToPlayer(getDescriptionPacket(), (Player) player);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
return new PacketTile(this, time, -1, -1, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Checks to see if the assembler can run */
|
/** Checks to see if the assembler can run */
|
||||||
|
@ -199,7 +175,7 @@ public class TileQuantumAssembler extends TileElectricalInventory implements IPa
|
||||||
{
|
{
|
||||||
if (getStackInSlot(i) == null)
|
if (getStackInSlot(i) == null)
|
||||||
return false;
|
return false;
|
||||||
if (getStackInSlot(i).itemID != Atomic.itemDarkMatter.itemID)
|
if (getStackInSlot(i).getItem() != Atomic.itemDarkMatter)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return getStackInSlot(6).stackSize < 64;
|
return getStackInSlot(6).stackSize < 64;
|
||||||
|
@ -249,17 +225,6 @@ public class TileQuantumAssembler extends TileElectricalInventory implements IPa
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return itemStack.itemID == Atomic.itemDarkMatter.itemID;
|
return itemStack.getItem() == Atomic.itemDarkMatter;
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public long getVoltageInput(ForgeDirection from)
|
|
||||||
{
|
|
||||||
return 1000;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongVoltage(ForgeDirection d, long voltage)
|
|
||||||
{
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,72 +0,0 @@
|
||||||
package resonantinduction.atomic.machine.reactor;
|
|
||||||
|
|
||||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
|
||||||
import net.minecraft.entity.EntityLivingBase;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraft.tileentity.TileEntity;
|
|
||||||
import net.minecraft.util.IIcon;
|
|
||||||
import net.minecraft.util.MathHelper;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
import resonant.lib.prefab.block.BlockRotatable;
|
|
||||||
import universalelectricity.api.UniversalElectricity;
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
|
||||||
|
|
||||||
/** Reactor tap block */
|
|
||||||
public class BlockReactorDrain extends BlockRotatable
|
|
||||||
{
|
|
||||||
private IIcon frontIcon;
|
|
||||||
|
|
||||||
public BlockReactorDrain(int id)
|
|
||||||
{
|
|
||||||
super(id, UniversalElectricity.machine);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entityLiving, ItemStack itemStack)
|
|
||||||
{
|
|
||||||
if (MathHelper.abs((float) entityLiving.posX - x) < 2.0F && MathHelper.abs((float) entityLiving.posZ - z) < 2.0F)
|
|
||||||
{
|
|
||||||
double d0 = entityLiving.posY + 1.82D - entityLiving.yOffset;
|
|
||||||
|
|
||||||
if (d0 - y > 2.0D)
|
|
||||||
{
|
|
||||||
world.setBlockMetadataWithNotify(x, y, z, 1, 3);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (y - d0 > 0.0D)
|
|
||||||
{
|
|
||||||
world.setBlockMetadataWithNotify(x, y, z, 0, 3);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
super.onBlockPlacedBy(world, x, y, z, entityLiving, itemStack);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public IIcon getIcon(int side, int metadata)
|
|
||||||
{
|
|
||||||
if (side == metadata)
|
|
||||||
{
|
|
||||||
return this.frontIcon;
|
|
||||||
}
|
|
||||||
return this.blockIcon;
|
|
||||||
}
|
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
|
||||||
@Override
|
|
||||||
public void registerIcons(IIconRegister iconRegister)
|
|
||||||
{
|
|
||||||
super.registerIcons(iconRegister);
|
|
||||||
this.frontIcon = iconRegister.registerIcon(this.getUnlocalizedName().replace("tile.", "") + "_front");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public TileEntity createNewTileEntity(World var1)
|
|
||||||
{
|
|
||||||
return new TileReactorDrain();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -8,8 +8,6 @@ import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
import resonant.lib.gui.GuiContainerBase;
|
import resonant.lib.gui.GuiContainerBase;
|
||||||
import resonant.lib.utility.LanguageUtility;
|
import resonant.lib.utility.LanguageUtility;
|
||||||
import universalelectricity.api.energy.UnitDisplay;
|
|
||||||
import universalelectricity.api.energy.UnitDisplay.Unit;
|
|
||||||
|
|
||||||
public class GuiReactorCell extends GuiContainerBase
|
public class GuiReactorCell extends GuiContainerBase
|
||||||
{
|
{
|
||||||
|
@ -25,23 +23,23 @@ public class GuiReactorCell extends GuiContainerBase
|
||||||
@Override
|
@Override
|
||||||
public void drawGuiContainerForegroundLayer(int x, int y)
|
public void drawGuiContainerForegroundLayer(int x, int y)
|
||||||
{
|
{
|
||||||
fontRenderer.drawString(tileEntity.getInvName(), xSize / 2 - fontRenderer.getStringWidth(tileEntity.getInvName()) / 2, 6, 4210752);
|
fontRendererObj.drawString(tileEntity.getInvName(), xSize / 2 - fontRendererObj.getStringWidth(tileEntity.getInvName()) / 2, 6, 4210752);
|
||||||
|
|
||||||
if (tileEntity.getStackInSlot(0) != null)
|
if (tileEntity.getStackInSlot(0) != null)
|
||||||
{
|
{
|
||||||
// Test field for actual heat inside of reactor cell.
|
// Test field for actual heat inside of reactor cell.
|
||||||
fontRenderer.drawString(LanguageUtility.getLocal("tooltip.temperature"), 9, 45, 4210752);
|
fontRendererObj.drawString(LanguageUtility.getLocal("tooltip.temperature"), 9, 45, 4210752);
|
||||||
fontRenderer.drawString(String.valueOf((int) tileEntity.getTemperature()) + "/" + String.valueOf(TileReactorCell.MELTING_POINT) + " K", 9, 58, 4210752);
|
fontRendererObj.drawString(String.valueOf((int) tileEntity.getTemperature()) + "/" + String.valueOf(TileReactorCell.MELTING_POINT()) + " K", 9, 58, 4210752);
|
||||||
|
|
||||||
// Text field for total number of ticks remaining.
|
// Text field for total number of ticks remaining.
|
||||||
int secondsLeft = (tileEntity.getStackInSlot(0).getMaxDamage() - tileEntity.getStackInSlot(0).getItemDamage());
|
int secondsLeft = (tileEntity.getStackInSlot(0).getMaxDamage() - tileEntity.getStackInSlot(0).getItemDamage());
|
||||||
fontRenderer.drawString(LanguageUtility.getLocal("tooltip.remainingTime"), 100, 45, 4210752);
|
fontRendererObj.drawString(LanguageUtility.getLocal("tooltip.remainingTime"), 100, 45, 4210752);
|
||||||
fontRenderer.drawString(secondsLeft + " seconds", 100, 58, 4210752);
|
fontRendererObj.drawString(secondsLeft + " seconds", 100, 58, 4210752);
|
||||||
}
|
}
|
||||||
|
|
||||||
fontRenderer.drawString(LanguageUtility.getLocal("tooltip.remainingTime"), 100, 45, 4210752);
|
fontRendererObj.drawString(LanguageUtility.getLocal("tooltip.remainingTime"), 100, 45, 4210752);
|
||||||
|
|
||||||
if (isPointInRegion(80, 40, meterWidth, meterHeight, x, y))
|
/** if (isPointInRegion(80, 40, meterWidth, meterHeight, x, y))
|
||||||
{
|
{
|
||||||
if (tileEntity.tank.getFluid() != null)
|
if (tileEntity.tank.getFluid() != null)
|
||||||
{
|
{
|
||||||
|
@ -58,7 +56,7 @@ public class GuiReactorCell extends GuiContainerBase
|
||||||
for (int i = 0; i < desc.size(); i++)
|
for (int i = 0; i < desc.size(); i++)
|
||||||
{
|
{
|
||||||
fontRenderer.drawString(desc.get(i), 9, 85 + i * 9, 4210752);
|
fontRenderer.drawString(desc.get(i), 9, 85 + i * 9, 4210752);
|
||||||
}
|
} **/
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Draw the background layer for the GuiContainer (everything behind the items) */
|
/** Draw the background layer for the GuiContainer (everything behind the items) */
|
||||||
|
@ -67,7 +65,7 @@ public class GuiReactorCell extends GuiContainerBase
|
||||||
{
|
{
|
||||||
super.drawGuiContainerBackgroundLayer(par1, x, y);
|
super.drawGuiContainerBackgroundLayer(par1, x, y);
|
||||||
drawSlot(78, 16);
|
drawSlot(78, 16);
|
||||||
drawMeter(80, 36, (float) tileEntity.tank.getFluidAmount() / (float) tileEntity.tank.getCapacity(), tileEntity.tank.getFluid());
|
drawMeter(80, 36, (float) tileEntity.tank().getFluidAmount() / (float) tileEntity.tank().getCapacity(), tileEntity.tank().getFluid());
|
||||||
|
|
||||||
if (tileEntity.getStackInSlot(0) != null)
|
if (tileEntity.getStackInSlot(0) != null)
|
||||||
{
|
{
|
||||||
|
@ -75,7 +73,7 @@ public class GuiReactorCell extends GuiContainerBase
|
||||||
GL11.glPushMatrix();
|
GL11.glPushMatrix();
|
||||||
GL11.glTranslatef(32 * 2, 0, 0);
|
GL11.glTranslatef(32 * 2, 0, 0);
|
||||||
GL11.glScalef(0.5f, 1, 1);
|
GL11.glScalef(0.5f, 1, 1);
|
||||||
drawForce(20, 70, (tileEntity.getTemperature()) / (TileReactorCell.MELTING_POINT));
|
drawForce(20, 70, (tileEntity.getTemperature()) / (TileReactorCell.MELTING_POINT()));
|
||||||
GL11.glPopMatrix();
|
GL11.glPopMatrix();
|
||||||
|
|
||||||
// Progress bar of remaining burn time on reactor cell.
|
// Progress bar of remaining burn time on reactor cell.
|
||||||
|
|
|
@ -17,14 +17,14 @@ import cpw.mods.fml.relauncher.SideOnly;
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public class RenderReactorCell extends TileEntitySpecialRenderer
|
public class RenderReactorCell extends TileEntitySpecialRenderer
|
||||||
{
|
{
|
||||||
public static final IModelCustom MODEL_TOP = AdvancedModelLoader.loadModel(Reference.MODEL_DIRECTORY + "reactorCellTop.tcn");
|
public static final IModelCustom MODEL_TOP = AdvancedModelLoader.loadModel(new ResourceLocation(Reference.domain(), Reference.modelDirectory() + "reactorCellTop.tcn"));
|
||||||
public static final IModelCustom MODEL_MIDDLE = AdvancedModelLoader.loadModel(Reference.MODEL_DIRECTORY + "reactorCellMiddle.tcn");
|
public static final IModelCustom MODEL_MIDDLE = AdvancedModelLoader.loadModel(new ResourceLocation(Reference.domain(), Reference.modelDirectory() + "reactorCellMiddle.tcn"));
|
||||||
public static final IModelCustom MODEL_BOTTOM = AdvancedModelLoader.loadModel(Reference.MODEL_DIRECTORY + "reactorCellBottom.tcn");
|
public static final IModelCustom MODEL_BOTTOM = AdvancedModelLoader.loadModel(new ResourceLocation(Reference.domain(), Reference.modelDirectory() + "reactorCellBottom.tcn"));
|
||||||
|
|
||||||
public static final ResourceLocation TEXTURE_TOP = new ResourceLocation(Reference.DOMAIN, Reference.MODEL_PATH + "reactorCellTop.png");
|
public static final ResourceLocation TEXTURE_TOP = new ResourceLocation(Reference.domain(), Reference.modelPath() + "reactorCellTop.png");
|
||||||
public static final ResourceLocation TEXTURE_MIDDLE = new ResourceLocation(Reference.DOMAIN, Reference.MODEL_PATH + "reactorCellMiddle.png");
|
public static final ResourceLocation TEXTURE_MIDDLE = new ResourceLocation(Reference.domain(), Reference.modelPath() + "reactorCellMiddle.png");
|
||||||
public static final ResourceLocation TEXTURE_BOTTOM = new ResourceLocation(Reference.DOMAIN, Reference.MODEL_PATH + "reactorCellBottom.png");
|
public static final ResourceLocation TEXTURE_BOTTOM = new ResourceLocation(Reference.domain(), Reference.modelPath() + "reactorCellBottom.png");
|
||||||
public static final ResourceLocation TEXTURE_FISSILE = new ResourceLocation(Reference.DOMAIN, Reference.MODEL_PATH + "fissileMaterial.png");
|
public static final ResourceLocation TEXTURE_FISSILE = new ResourceLocation(Reference.domain(), Reference.modelPath() + "fissileMaterial.png");
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void renderTileEntityAt(TileEntity t, double x, double y, double z, float f)
|
public void renderTileEntityAt(TileEntity t, double x, double y, double z, float f)
|
||||||
|
@ -37,12 +37,12 @@ public class RenderReactorCell extends TileEntitySpecialRenderer
|
||||||
|
|
||||||
int meta = 2;
|
int meta = 2;
|
||||||
|
|
||||||
if (tileEntity.worldObj != null)
|
if (tileEntity.world() != null)
|
||||||
{
|
{
|
||||||
meta = tileEntity.getBlockMetadata();
|
meta = tileEntity.getBlockMetadata();
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean hasBelow = tileEntity.worldObj != null && t.worldObj.getTileEntity(t.xCoord, t.yCoord - 1, t.zCoord) instanceof TileReactorCell;
|
boolean hasBelow = tileEntity.world() != null && t.getWorldObj().getTileEntity(t.xCoord, t.yCoord - 1, t.zCoord) instanceof TileReactorCell;
|
||||||
|
|
||||||
switch (meta)
|
switch (meta)
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,9 +5,16 @@ import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.BlockFluid;
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||||
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.IIcon;
|
||||||
|
import net.minecraft.util.MathHelper;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
import net.minecraftforge.fluids.Fluid;
|
import net.minecraftforge.fluids.Fluid;
|
||||||
|
@ -16,9 +23,10 @@ import net.minecraftforge.fluids.FluidTankInfo;
|
||||||
import net.minecraftforge.fluids.IFluidBlock;
|
import net.minecraftforge.fluids.IFluidBlock;
|
||||||
import net.minecraftforge.fluids.IFluidHandler;
|
import net.minecraftforge.fluids.IFluidHandler;
|
||||||
import net.minecraftforge.fluids.IFluidTank;
|
import net.minecraftforge.fluids.IFluidTank;
|
||||||
|
import resonant.content.prefab.java.TileAdvanced;
|
||||||
|
import resonant.content.spatial.block.SpatialBlock;
|
||||||
import resonant.lib.path.IPathCallBack;
|
import resonant.lib.path.IPathCallBack;
|
||||||
import resonant.lib.path.Pathfinder;
|
import resonant.lib.path.Pathfinder;
|
||||||
import resonant.lib.prefab.tile.TileAdvanced;
|
|
||||||
import universalelectricity.core.transform.vector.Vector3;
|
import universalelectricity.core.transform.vector.Vector3;
|
||||||
|
|
||||||
/** Reactor Drain
|
/** Reactor Drain
|
||||||
|
@ -29,6 +37,12 @@ public class TileReactorDrain extends TileAdvanced implements IFluidHandler
|
||||||
private final Set<IFluidTank> tanks = new HashSet<IFluidTank>();
|
private final Set<IFluidTank> tanks = new HashSet<IFluidTank>();
|
||||||
private long lastFindTime = -1;
|
private long lastFindTime = -1;
|
||||||
|
|
||||||
|
public TileReactorDrain()
|
||||||
|
{
|
||||||
|
super(Material.iron);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void find()
|
public void find()
|
||||||
{
|
{
|
||||||
this.tanks.clear();
|
this.tanks.clear();
|
||||||
|
@ -46,9 +60,9 @@ public class TileReactorDrain extends TileAdvanced implements IFluidHandler
|
||||||
{
|
{
|
||||||
ForgeDirection direction = ForgeDirection.getOrientation(i);
|
ForgeDirection direction = ForgeDirection.getOrientation(i);
|
||||||
Vector3 position = currentNode.clone().add(direction);
|
Vector3 position = currentNode.clone().add(direction);
|
||||||
int connectedBlockID = position.getBlock(world);
|
Block block = position.getBlock(world);
|
||||||
|
|
||||||
if (connectedBlockID == 0 || Block.blocksList[connectedBlockID] instanceof BlockFluid || Block.blocksList[connectedBlockID] instanceof IFluidBlock || position.getTileEntity(world) instanceof TileReactorCell)
|
if (block == null || block instanceof IFluidBlock || position.getTileEntity(world) instanceof TileReactorCell)
|
||||||
{
|
{
|
||||||
neighbors.add(position);
|
neighbors.add(position);
|
||||||
}
|
}
|
||||||
|
@ -80,7 +94,7 @@ public class TileReactorDrain extends TileAdvanced implements IFluidHandler
|
||||||
|
|
||||||
if (tileEntity instanceof TileReactorCell)
|
if (tileEntity instanceof TileReactorCell)
|
||||||
{
|
{
|
||||||
this.tanks.add(((TileReactorCell) tileEntity).tank);
|
this.tanks.add(((TileReactorCell) tileEntity).tank());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,4 +193,45 @@ public class TileReactorDrain extends TileAdvanced implements IFluidHandler
|
||||||
|
|
||||||
return tankInfoList.toArray(new FluidTankInfo[0]);
|
return tankInfoList.toArray(new FluidTankInfo[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
@Override
|
||||||
|
public void registerIcons(IIconRegister iconRegister)
|
||||||
|
{
|
||||||
|
super.registerIcons(iconRegister);
|
||||||
|
SpatialBlock.icon().put("ReactorDrain_front", iconRegister.registerIcon("ReactorDrain_front"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IIcon getIcon(int side, int metadata)
|
||||||
|
{
|
||||||
|
if (side == metadata)
|
||||||
|
{
|
||||||
|
return SpatialBlock.icon().get("ReactorDrain_front");
|
||||||
|
}
|
||||||
|
return super.getIcon(side, metadata);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPlaced(EntityLivingBase entityLiving, ItemStack itemStack)
|
||||||
|
{
|
||||||
|
if (MathHelper.abs((float) entityLiving.posX - x()) < 2.0F && MathHelper.abs((float) entityLiving.posZ - z()) < 2.0F)
|
||||||
|
{
|
||||||
|
double d0 = entityLiving.posY + 1.82D - entityLiving.yOffset;
|
||||||
|
|
||||||
|
if (d0 - y() > 2.0D)
|
||||||
|
{
|
||||||
|
world().setBlockMetadataWithNotify(x(), y(), z(), 1, 3);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (y() - d0 > 0.0D)
|
||||||
|
{
|
||||||
|
world().setBlockMetadataWithNotify(x(), y(), z(), 0, 3);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
super.onPlaced(entityLiving, itemStack);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,96 +0,0 @@
|
||||||
package resonantinduction.atomic.machine.thermometer;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
import resonant.lib.prefab.item.ItemBlockSaved;
|
|
||||||
import resonant.lib.utility.LanguageUtility;
|
|
||||||
import resonant.lib.utility.nbt.NBTUtility;
|
|
||||||
import universalelectricity.core.transform.vector.Vector3;
|
|
||||||
|
|
||||||
/** Handheld thermometer */
|
|
||||||
public class ItemBlockThermometer extends ItemBlockSaved
|
|
||||||
{
|
|
||||||
public static final int ENERGY_CONSUMPTION = 1000;
|
|
||||||
|
|
||||||
public ItemBlockThermometer(int id)
|
|
||||||
{
|
|
||||||
super(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addInformation(ItemStack itemStack, EntityPlayer player, List par3List, boolean par4)
|
|
||||||
{
|
|
||||||
super.addInformation(itemStack, player, par3List, par4);
|
|
||||||
Vector3 coord = getSavedCoord(itemStack);
|
|
||||||
|
|
||||||
if (coord != null)
|
|
||||||
{
|
|
||||||
par3List.add("\uaa74" + LanguageUtility.getLocal("tooltip.trackingTemperature"));
|
|
||||||
par3List.add("X: " + coord.xi() + ", Y: " + coord.yi() + ", Z: " + coord.zi());
|
|
||||||
// TODO: Add client side temperature.
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
par3List.add("\u00a74" + LanguageUtility.getLocal("tooltip.notTrackingTemperature"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSavedCoords(ItemStack itemStack, Vector3 position)
|
|
||||||
{
|
|
||||||
NBTTagCompound nbt = NBTUtility.getNBTTagCompound(itemStack);
|
|
||||||
|
|
||||||
if (position != null)
|
|
||||||
{
|
|
||||||
nbt.setCompoundTag("trackCoordinate", position.writeToNBT(new NBTTagCompound()));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
nbt.removeTag("trackCoordinate");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public Vector3 getSavedCoord(ItemStack itemStack)
|
|
||||||
{
|
|
||||||
NBTTagCompound nbt = NBTUtility.getNBTTagCompound(itemStack);
|
|
||||||
|
|
||||||
if (nbt.hasKey("trackCoordinate"))
|
|
||||||
{
|
|
||||||
return new Vector3(nbt.getCompoundTag("trackCoordinate"));
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player)
|
|
||||||
{
|
|
||||||
setSavedCoords(itemStack, null);
|
|
||||||
|
|
||||||
if (!world.isRemote)
|
|
||||||
{
|
|
||||||
player.addChatMessage("Cleared tracking coordinate.");
|
|
||||||
}
|
|
||||||
return itemStack;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onItemUse(ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int par7, float par8, float par9, float par10)
|
|
||||||
{
|
|
||||||
if (player.isSneaking())
|
|
||||||
{
|
|
||||||
if (!world.isRemote)
|
|
||||||
{
|
|
||||||
setSavedCoords(itemStack, new Vector3(x, y, z));
|
|
||||||
player.addChatMessage("Tracking coordinate: " + x + ", " + y + ", " + z);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return super.onItemUse(itemStack, player, world, x, y, z, par7, par8, par9, par10);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,72 @@
|
||||||
|
package resonantinduction.atomic.machine.thermometer
|
||||||
|
|
||||||
|
import java.util.List
|
||||||
|
|
||||||
|
import net.minecraft.block.Block
|
||||||
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
|
import net.minecraft.item.ItemStack
|
||||||
|
import net.minecraft.nbt.NBTTagCompound
|
||||||
|
import net.minecraft.util.ChatComponentText
|
||||||
|
import net.minecraft.world.World
|
||||||
|
import resonant.content.prefab.itemblock.ItemBlockSaved
|
||||||
|
import resonant.lib.utility.LanguageUtility
|
||||||
|
import resonant.lib.utility.nbt.NBTUtility
|
||||||
|
import resonant.lib.wrapper.WrapList._
|
||||||
|
import universalelectricity.core.transform.vector.Vector3
|
||||||
|
|
||||||
|
/** Handheld thermometer */
|
||||||
|
object ItemBlockThermometer {
|
||||||
|
final val ENERGY_CONSUMPTION: Int = 1000
|
||||||
|
}
|
||||||
|
|
||||||
|
class ItemBlockThermometer(block: Block) extends ItemBlockSaved(block: Block) {
|
||||||
|
|
||||||
|
override def addInformation(itemStack: ItemStack, player: EntityPlayer, par3List: List[_], par4: Boolean) {
|
||||||
|
super.addInformation(itemStack, player, par3List, par4)
|
||||||
|
val coord: Vector3 = getSavedCoord(itemStack)
|
||||||
|
if (coord != null) {
|
||||||
|
par3List.add("\uaa74" + LanguageUtility.getLocal("tooltip.trackingTemperature"))
|
||||||
|
par3List.add("X: " + coord.xi + ", Y: " + coord.yi + ", Z: " + coord.zi)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
par3List.add("\u00a74" + LanguageUtility.getLocal("tooltip.notTrackingTemperature"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
def getSavedCoord(itemStack: ItemStack): Vector3 = {
|
||||||
|
val nbt: NBTTagCompound = NBTUtility.getNBTTagCompound(itemStack)
|
||||||
|
if (nbt.hasKey("trackCoordinate")) {
|
||||||
|
return new Vector3(nbt.getCompoundTag("trackCoordinate"))
|
||||||
|
}
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
override def onItemRightClick(itemStack: ItemStack, world: World, player: EntityPlayer): ItemStack = {
|
||||||
|
setSavedCoords(itemStack, null)
|
||||||
|
if (!world.isRemote) {
|
||||||
|
player.addChatMessage(new ChatComponentText("Cleared tracking coordinate."))
|
||||||
|
}
|
||||||
|
return itemStack
|
||||||
|
}
|
||||||
|
|
||||||
|
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) {
|
||||||
|
if (!world.isRemote) {
|
||||||
|
setSavedCoords(itemStack, new Vector3(x, y, z))
|
||||||
|
player.addChatMessage(new ChatComponentText("Tracking coordinate: " + x + ", " + y + ", " + z))
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return super.onItemUse(itemStack, player, world, x, y, z, par7, par8, par9, par10)
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,34 +6,33 @@ import li.cil.oc.api.network.Arguments;
|
||||||
import li.cil.oc.api.network.Callback;
|
import li.cil.oc.api.network.Callback;
|
||||||
import li.cil.oc.api.network.Context;
|
import li.cil.oc.api.network.Context;
|
||||||
import li.cil.oc.api.network.SimpleComponent;
|
import li.cil.oc.api.network.SimpleComponent;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.network.packet.Packet;
|
|
||||||
import net.minecraft.util.IIcon;
|
import net.minecraft.util.IIcon;
|
||||||
import net.minecraft.world.IBlockAccess;
|
import net.minecraft.world.IBlockAccess;
|
||||||
import resonant.lib.content.module.TileBase;
|
import resonant.content.prefab.itemblock.ItemBlockSaved;
|
||||||
import resonant.lib.network.PacketHandler;
|
import resonant.content.prefab.java.TileAdvanced;
|
||||||
|
import resonant.engine.grid.thermal.ThermalGrid;
|
||||||
import resonant.lib.network.Synced;
|
import resonant.lib.network.Synced;
|
||||||
import resonant.lib.prefab.item.ItemBlockSaved;
|
import resonant.lib.network.discriminator.PacketAnnotation;
|
||||||
import resonant.lib.thermal.ThermalGrid;
|
import resonant.lib.network.discriminator.PacketTile;
|
||||||
import resonant.lib.utility.inventory.InventoryUtility;
|
import resonant.lib.utility.inventory.InventoryUtility;
|
||||||
import resonantinduction.core.Reference;
|
import resonantinduction.core.Reference;
|
||||||
import resonantinduction.core.ResonantInduction;
|
import resonantinduction.core.ResonantInduction;
|
||||||
|
import resonantinduction.electrical.em.laser.TileBase;
|
||||||
import universalelectricity.core.transform.vector.Vector3;
|
import universalelectricity.core.transform.vector.Vector3;
|
||||||
import universalelectricity.api.vector.VectorWorld;
|
|
||||||
import cpw.mods.fml.common.Optional;
|
import cpw.mods.fml.common.Optional;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
import dan200.computercraft.api.lua.ILuaContext;
|
import universalelectricity.core.transform.vector.VectorWorld;
|
||||||
import dan200.computercraft.api.peripheral.IComputerAccess;
|
|
||||||
import dan200.computercraft.api.peripheral.IPeripheral;
|
|
||||||
|
|
||||||
/** Thermometer TileEntity */
|
/** Thermometer TileEntity */
|
||||||
@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")
|
@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")
|
||||||
public class TileThermometer extends TileBase implements IPeripheral, SimpleComponent
|
public class TileThermometer extends TileAdvanced implements SimpleComponent
|
||||||
{
|
{
|
||||||
public static final int MAX_THRESHOLD = 5000;
|
public static final int MAX_THRESHOLD = 5000;
|
||||||
private static IIcon iconSide;
|
private static IIcon iconSide;
|
||||||
|
@ -56,10 +55,10 @@ public class TileThermometer extends TileBase implements IPeripheral, SimpleComp
|
||||||
public TileThermometer()
|
public TileThermometer()
|
||||||
{
|
{
|
||||||
super(Material.piston);
|
super(Material.piston);
|
||||||
canProvidePower = true;
|
canProvidePower(true);
|
||||||
normalRender = false;
|
normalRender(false);
|
||||||
forceStandardRender = true;
|
forceStandardRender(true);
|
||||||
itemBlock = ItemBlockThermometer.class;
|
itemBlock(ItemBlockThermometer.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -73,11 +72,11 @@ public class TileThermometer extends TileBase implements IPeripheral, SimpleComp
|
||||||
public void registerIcons(IIconRegister iconRegister)
|
public void registerIcons(IIconRegister iconRegister)
|
||||||
{
|
{
|
||||||
super.registerIcons(iconRegister);
|
super.registerIcons(iconRegister);
|
||||||
iconSide = iconRegister.registerIcon(Reference.PREFIX + "machine");
|
iconSide = iconRegister.registerIcon(Reference.prefix() + "machine");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean use(EntityPlayer player, int side, Vector3 hit)
|
public boolean use(EntityPlayer player, int side, Vector3 hit)
|
||||||
{
|
{
|
||||||
if (player.isSneaking())
|
if (player.isSneaking())
|
||||||
{
|
{
|
||||||
|
@ -92,7 +91,7 @@ public class TileThermometer extends TileBase implements IPeripheral, SimpleComp
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean configure(EntityPlayer player, int side, Vector3 hit)
|
public boolean configure(EntityPlayer player, int side, Vector3 hit)
|
||||||
{
|
{
|
||||||
if (player.isSneaking())
|
if (player.isSneaking())
|
||||||
{
|
{
|
||||||
|
@ -118,14 +117,14 @@ public class TileThermometer extends TileBase implements IPeripheral, SimpleComp
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRemove(int par5, int par6)
|
public void onRemove(Block block, int par6)
|
||||||
{
|
{
|
||||||
ItemStack stack = ItemBlockSaved.getItemStackWithNBT(getBlockType(), world(), x(), y(), z());
|
ItemStack stack = ItemBlockSaved.getItemStackWithNBT(getBlockType(), world(), x(), y(), z());
|
||||||
InventoryUtility.dropItemStack(world(), center(), stack);
|
InventoryUtility.dropItemStack(world(), center(), stack);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateEntity()
|
public void update()
|
||||||
{
|
{
|
||||||
super.updateEntity();
|
super.updateEntity();
|
||||||
|
|
||||||
|
@ -133,7 +132,7 @@ public class TileThermometer extends TileBase implements IPeripheral, SimpleComp
|
||||||
if (!worldObj.isRemote)
|
if (!worldObj.isRemote)
|
||||||
{
|
{
|
||||||
// Every ten ticks.
|
// Every ten ticks.
|
||||||
if (ticks % 10 == 0)
|
if (ticks() % 10 == 0)
|
||||||
{
|
{
|
||||||
// Grab temperature from target or from ourselves.
|
// Grab temperature from target or from ourselves.
|
||||||
if (trackCoordinate != null)
|
if (trackCoordinate != null)
|
||||||
|
@ -151,16 +150,16 @@ public class TileThermometer extends TileBase implements IPeripheral, SimpleComp
|
||||||
previousDetectedTemperature = detectedTemperature;
|
previousDetectedTemperature = detectedTemperature;
|
||||||
isProvidingPower = isOverThreshold();
|
isProvidingPower = isOverThreshold();
|
||||||
notifyChange();
|
notifyChange();
|
||||||
PacketHandler.sendPacketToClients(getDescriptionPacket(), this.worldObj, new Vector3(this), 25);
|
sendPacket(getDescPacket());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Packet getDescriptionPacket()
|
public PacketAnnotation getDescPacket()
|
||||||
{
|
{
|
||||||
return ResonantInduction.PACKET_ANNOTATION.getPacket(this);
|
return new PacketAnnotation(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTrack(Vector3 track)
|
public void setTrack(Vector3 track)
|
||||||
|
@ -194,7 +193,7 @@ public class TileThermometer extends TileBase implements IPeripheral, SimpleComp
|
||||||
|
|
||||||
if (trackCoordinate != null)
|
if (trackCoordinate != null)
|
||||||
{
|
{
|
||||||
nbt.setCompoundTag("trackCoordinate", this.trackCoordinate.writeToNBT(new NBTTagCompound()));
|
nbt.setTag("trackCoordinate", this.trackCoordinate.writeNBT(new NBTTagCompound()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -220,87 +219,6 @@ public class TileThermometer extends TileBase implements IPeripheral, SimpleComp
|
||||||
return detectedTemperature >= getThershold();
|
return detectedTemperature >= getThershold();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** ComputerCraft */
|
|
||||||
@Override
|
|
||||||
public String getType()
|
|
||||||
{
|
|
||||||
return "AS Thermometer";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String[] getMethodNames()
|
|
||||||
{
|
|
||||||
return new String[]
|
|
||||||
{ "getTemperature", "getWarningTemperature", "setWarningTemperature", "isAboveWarningTemperature" };
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Object[] callMethod(IComputerAccess computer, ILuaContext context, int method, Object[] arguments) throws Exception
|
|
||||||
{
|
|
||||||
final int getTemperature = 0;
|
|
||||||
final int getWarningTemperature = 1;
|
|
||||||
final int setWarningTemperature = 2;
|
|
||||||
final int isAboveWarningTemperature = 3;
|
|
||||||
|
|
||||||
switch (method)
|
|
||||||
{
|
|
||||||
case getTemperature:
|
|
||||||
return new Object[]
|
|
||||||
{ this.detectedTemperature };
|
|
||||||
case getWarningTemperature:
|
|
||||||
return new Object[]
|
|
||||||
{ this.getThershold() };
|
|
||||||
case isAboveWarningTemperature:
|
|
||||||
return new Object[]
|
|
||||||
{ this.isOverThreshold() };
|
|
||||||
case setWarningTemperature:
|
|
||||||
{
|
|
||||||
if (arguments.length <= 0)
|
|
||||||
{
|
|
||||||
throw new IllegalArgumentException("Not enough Arguments. Must provide one argument");
|
|
||||||
}
|
|
||||||
if (arguments.length >= 2)
|
|
||||||
{
|
|
||||||
throw new IllegalArgumentException("Too many Arguments. Must provide one argument");
|
|
||||||
}
|
|
||||||
if (!(arguments[0] instanceof Number))
|
|
||||||
{
|
|
||||||
throw new IllegalArgumentException("Invalid Argument. Must provide a number");
|
|
||||||
}
|
|
||||||
synchronized (this)
|
|
||||||
{
|
|
||||||
this.setThreshold((Integer) arguments[0]);
|
|
||||||
}
|
|
||||||
return new Object[]
|
|
||||||
{ this.threshold == (Integer) arguments[0] };
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void attach(IComputerAccess computer)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void detach(IComputerAccess computer)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(IPeripheral other)
|
|
||||||
{
|
|
||||||
return equals(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getComponentName()
|
|
||||||
{
|
|
||||||
return "AS_Thermometer";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Callback
|
@Callback
|
||||||
@Optional.Method(modid = "OpenComputers")
|
@Optional.Method(modid = "OpenComputers")
|
||||||
public Object[] getTemperature(Context context, Arguments args)
|
public Object[] getTemperature(Context context, Arguments args)
|
||||||
|
@ -348,4 +266,9 @@ public class TileThermometer extends TileBase implements IPeripheral, SimpleComp
|
||||||
return new Object[]
|
return new Object[]
|
||||||
{ this.threshold == args.checkInteger(0) };
|
{ this.threshold == args.checkInteger(0) };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getComponentName() {
|
||||||
|
return "AS Thermometer";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ import resonant.engine.content.debug.TileCreativeBuilder;
|
||||||
import resonant.lib.network.discriminator.PacketAnnotationManager;
|
import resonant.lib.network.discriminator.PacketAnnotationManager;
|
||||||
import resonantinduction.core.ResonantTab;
|
import resonantinduction.core.ResonantTab;
|
||||||
import resonantinduction.mechanical.energy.grid.MechanicalNode;
|
import resonantinduction.mechanical.energy.grid.MechanicalNode;
|
||||||
|
import resonantinduction.mechanical.energy.turbine.*;
|
||||||
import resonantinduction.mechanical.fluid.pipe.EnumPipeMaterial;
|
import resonantinduction.mechanical.fluid.pipe.EnumPipeMaterial;
|
||||||
import resonantinduction.mechanical.fluid.pipe.ItemPipe;
|
import resonantinduction.mechanical.fluid.pipe.ItemPipe;
|
||||||
import resonantinduction.mechanical.fluid.transport.TilePump;
|
import resonantinduction.mechanical.fluid.transport.TilePump;
|
||||||
|
@ -29,12 +30,6 @@ import resonantinduction.core.Reference;
|
||||||
import resonantinduction.core.ResonantInduction;
|
import resonantinduction.core.ResonantInduction;
|
||||||
import resonantinduction.core.Settings;
|
import resonantinduction.core.Settings;
|
||||||
import resonantinduction.core.interfaces.IMechanicalNode;
|
import resonantinduction.core.interfaces.IMechanicalNode;
|
||||||
import resonantinduction.mechanical.energy.turbine.BlockWaterTurbine;
|
|
||||||
import resonantinduction.mechanical.energy.turbine.BlockWindTurbine;
|
|
||||||
import resonantinduction.mechanical.energy.turbine.SchematicWaterTurbine;
|
|
||||||
import resonantinduction.mechanical.energy.turbine.SchematicWindTurbine;
|
|
||||||
import resonantinduction.mechanical.energy.turbine.TileWaterTurbine;
|
|
||||||
import resonantinduction.mechanical.energy.turbine.TileWindTurbine;
|
|
||||||
import resonantinduction.mechanical.process.mixer.TileMixer;
|
import resonantinduction.mechanical.process.mixer.TileMixer;
|
||||||
import cpw.mods.fml.common.Mod;
|
import cpw.mods.fml.common.Mod;
|
||||||
import cpw.mods.fml.common.Mod.EventHandler;
|
import cpw.mods.fml.common.Mod.EventHandler;
|
||||||
|
@ -76,6 +71,7 @@ public class Mechanical
|
||||||
public static Item itemGearShaft;
|
public static Item itemGearShaft;
|
||||||
public static Block blockWindTurbine;
|
public static Block blockWindTurbine;
|
||||||
public static Block blockWaterTurbine;
|
public static Block blockWaterTurbine;
|
||||||
|
public static Block blockElectricTurbine;
|
||||||
|
|
||||||
// Transport
|
// Transport
|
||||||
public static Block blockConveyorBelt;
|
public static Block blockConveyorBelt;
|
||||||
|
@ -125,6 +121,9 @@ public class Mechanical
|
||||||
blockTileBreaker = contentRegistry.newBlock(TileBreaker.class);
|
blockTileBreaker = contentRegistry.newBlock(TileBreaker.class);
|
||||||
blockTilePlacer = contentRegistry.newBlock(TilePlacer.class);
|
blockTilePlacer = contentRegistry.newBlock(TilePlacer.class);
|
||||||
|
|
||||||
|
//TODO disable if electrical module is not enabled
|
||||||
|
blockElectricTurbine = contentRegistry.newBlock(TileElectricTurbine.class);
|
||||||
|
|
||||||
proxy.preInit();
|
proxy.preInit();
|
||||||
|
|
||||||
ResonantTab.itemStack(new ItemStack(blockGrinderWheel));
|
ResonantTab.itemStack(new ItemStack(blockGrinderWheel));
|
||||||
|
@ -161,8 +160,9 @@ public class Mechanical
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockWaterTurbine, 1, 0), "SWS", "WGW", "SWS", 'G', itemGear, 'W', "plankWood", 'S', Items.stick));
|
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockWaterTurbine, 1, 0), "SWS", "WGW", "SWS", 'G', itemGear, 'W', "plankWood", 'S', Items.stick));
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockWaterTurbine, 1, 1), "SWS", "WGW", "SWS", 'G', new ItemStack(blockWaterTurbine, 1, 0), 'W', Blocks.stone, 'S', Items.stick));
|
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockWaterTurbine, 1, 1), "SWS", "WGW", "SWS", 'G', new ItemStack(blockWaterTurbine, 1, 0), 'W', Blocks.stone, 'S', Items.stick));
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockWaterTurbine, 1, 2), "SWS", "WGW", "SWS", 'G', new ItemStack(blockWaterTurbine, 1, 1), 'W', UniversalRecipe.PRIMARY_METAL.get(), 'S', Items.stick));
|
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockWaterTurbine, 1, 2), "SWS", "WGW", "SWS", 'G', new ItemStack(blockWaterTurbine, 1, 1), 'W', UniversalRecipe.PRIMARY_METAL.get(), 'S', Items.stick));
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(blockElectricTurbine, " B ", "BMB", " B ", 'B', UniversalRecipe.SECONDARY_PLATE.get(), 'M', UniversalRecipe.MOTOR.get()));
|
||||||
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(blockPump, "PPP", "GGG", "PPP", 'P', itemPipe, 'G', new ItemStack(itemGear, 1, 2)));
|
GameRegistry.addRecipe(new ShapedOreRecipe(blockPump, "PPP", "GGG", "PPP", 'P', itemPipe, 'G', new ItemStack(itemGear, 1, 2)));
|
||||||
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(itemPipe, 3, EnumPipeMaterial.CERAMIC.ordinal()), "BBB", " ", "BBB", 'B', Items.brick));
|
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(itemPipe, 3, EnumPipeMaterial.CERAMIC.ordinal()), "BBB", " ", "BBB", 'B', Items.brick));
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(itemPipe, 3, EnumPipeMaterial.BRONZE.ordinal()), "BBB", " ", "BBB", 'B', "ingotBronze"));
|
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(itemPipe, 3, EnumPipeMaterial.BRONZE.ordinal()), "BBB", " ", "BBB", 'B', "ingotBronze"));
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package resonantinduction.atomic.machine.extractor.turbine;
|
package resonantinduction.mechanical.energy.turbine;
|
||||||
|
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
|
@ -1,4 +1,4 @@
|
||||||
package resonantinduction.atomic.machine.extractor.turbine;
|
package resonantinduction.mechanical.energy.turbine;
|
||||||
|
|
||||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
|
@ -1,12 +1,11 @@
|
||||||
package resonantinduction.atomic.machine.extractor.turbine;
|
package resonantinduction.mechanical.energy.turbine;
|
||||||
|
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
import net.minecraftforge.fluids.Fluid;
|
import net.minecraftforge.fluids.Fluid;
|
||||||
import resonant.api.IBoilHandler;
|
import resonant.api.IBoilHandler;
|
||||||
import resonant.lib.prefab.turbine.TileTurbine;
|
|
||||||
import atomic.Atomic;
|
|
||||||
import resonantinduction.core.Reference;
|
import resonantinduction.core.Reference;
|
||||||
import resonantinduction.core.Settings;
|
import resonantinduction.core.Settings;
|
||||||
|
import resonantinduction.mechanical.energy.turbine.TileTurbine;
|
||||||
|
|
||||||
public class TileElectricTurbine extends TileTurbine implements IBoilHandler
|
public class TileElectricTurbine extends TileTurbine implements IBoilHandler
|
||||||
{
|
{
|
|
@ -3,21 +3,21 @@ package resonantinduction.mechanical.energy.turbine;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import resonant.lib.multiblock.reference.IMultiBlockStructure;
|
||||||
|
import resonant.lib.network.handle.IPacketIDReceiver;
|
||||||
import resonantinduction.mechanical.energy.grid.TileMechanical;
|
import resonantinduction.mechanical.energy.grid.TileMechanical;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
import resonant.api.grid.INodeProvider;
|
import universalelectricity.api.core.grid.INodeProvider;
|
||||||
import resonant.lib.multiblock.IMultiBlockStructure;
|
|
||||||
import resonant.lib.network.IPacketReceiverWithID;
|
|
||||||
import universalelectricity.core.transform.vector.Vector3;
|
import universalelectricity.core.transform.vector.Vector3;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
/** Reduced version of the main turbine class */
|
/** Reduced version of the main turbine class */
|
||||||
public class TileTurbine extends TileMechanical implements IMultiBlockStructure<TileTurbine>, INodeProvider, IPacketReceiverWithID
|
public class TileTurbine extends TileMechanical implements IMultiBlockStructure<TileTurbine>, INodeProvider, IPacketIDReceiver
|
||||||
{
|
{
|
||||||
/** Tier of the tile */
|
/** Tier of the tile */
|
||||||
public int tier = 0;
|
public int tier = 0;
|
||||||
|
@ -43,9 +43,9 @@ public class TileTurbine extends TileMechanical implements IMultiBlockStructure<
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateEntity()
|
public void update()
|
||||||
{
|
{
|
||||||
super.updateEntity();
|
super.update();
|
||||||
getMultiBlock().update();
|
getMultiBlock().update();
|
||||||
|
|
||||||
if (getMultiBlock().isPrimary())
|
if (getMultiBlock().isPrimary())
|
||||||
|
|
Loading…
Reference in a new issue