Updated to Forge 6.4.2

This commit is contained in:
Henry Mao 2012-12-14 22:13:14 +08:00
parent abd08fc54e
commit efc755d77a
99 changed files with 910 additions and 1421 deletions

View file

@ -1,4 +0,0 @@
@echo off
cd resources
"..\..\7za.exe" a "..\jars\bin\minecraft.jar" "*"
pause

View file

@ -1 +1 @@
14
16

View file

@ -8,6 +8,10 @@ set /p CurrentBuild=<buildnumber.txt
set /a BUILD_NUMBER=%CurrentBuild%+1
echo %BUILD_NUMBER% >buildnumber.txt
if %PROMOTION%==* (
echo %MODVERSION% >recommendedversion.txt
)
set FILE_NAME=AssemblyLine_v%MODVERSION%.%BUILD_NUMBER%.jar
set API_NAME=AssemblyLine_v%MODVERSION%.%BUILD_NUMBER%_api.zip
set BACKUP_NAME=AssemblyLine_v%MODVERSION%.%BUILD_NUMBER%_backup.zip
@ -39,7 +43,7 @@ echo open www.calclavia.com>ftpscript.txt
echo al@calclavia.com>>ftpscript.txt
echo VkE4laBa84R9>>ftpscript.txt
echo binary>>ftpscript.txt
echo put "modversion.txt">>ftpscript.txt
echo put "recommendedversion.txt">>ftpscript.txt
echo put "builds\%FILE_NAME%">>ftpscript.txt
echo put "builds\%API_NAME%">>ftpscript.txt
echo put info.txt>>ftpscript.txt

View file

@ -1,46 +0,0 @@
package assemblyline;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.TileEntity;
import net.minecraft.src.World;
import assemblyline.machine.ContainerSorter;
import assemblyline.machine.TileEntityRejector;
import cpw.mods.fml.common.network.IGuiHandler;
public class ALCommonProxy implements IGuiHandler
{
public static final int GUI_ARCHITECHT_TABLE = 4;
public void preInit()
{
}
public void init()
{
}
@Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
{
TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
if (tileEntity != null)
{
switch (ID)
{
case 0:
return new ContainerSorter(player.inventory, ((TileEntityRejector) tileEntity));
}
}
return null;
}
@Override
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
{
return null;
}
}

View file

@ -1,95 +0,0 @@
package assemblyline.machine.belt;
import net.minecraft.src.EntityLiving;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.MathHelper;
import net.minecraft.src.TileEntity;
import net.minecraft.src.World;
import universalelectricity.core.UniversalElectricity;
import universalelectricity.prefab.BlockMachine;
import universalelectricity.prefab.UETab;
import assemblyline.render.RenderHelper;
/**
* The block for the actual conveyor belt!
*
* @author Calclavia, DarkGuardsman
*/
public class BlockConveyorBelt extends BlockMachine
{
public BlockConveyorBelt(int id)
{
super("Conveyor Belt", id, UniversalElectricity.machine);
this.setBlockBounds(0, 0, 0, 1, 0.3f, 1);
this.setCreativeTab(UETab.INSTANCE);
}
@Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLiving par5EntityLiving)
{
int meta = world.getBlockMetadata(x, y, z);
int angle = MathHelper.floor_double((par5EntityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
world.setBlockMetadataWithNotify(x, y, z, meta + angle);
}
@Override
public boolean onUseWrench(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 (metadata >= 0 && metadata < 8)
{
if (metadata >= 3)
{
par1World.setBlockAndMetadataWithNotify(x, y, z, this.blockID, 0);
return true;
}
else if (metadata >= 7)
{
par1World.setBlockAndMetadataWithNotify(x, y, z, this.blockID, 4);
return true;
}
else
{
par1World.setBlockAndMetadataWithNotify(x, y, z, this.blockID, metadata + 1);
return true;
}
}
return true;
}
/**
* Returns the TileEntity used by this block.
*/
@Override
public TileEntity createNewTileEntity(World var1, int metadata)
{
if (metadata >= 0 && metadata < 4) { return new TileEntityConveyorBelt(); }
if (metadata >= 4 && metadata < 8) { return new TileEntityCoveredBelt(); }
// if (metadata >= 8 && metadata < 12) {
// //TODO vertical Belt }
// if (metadata >= 12 && metadata < 16) {
// //TODO IDK}
return null;
}
@Override
public int getRenderType()
{
return RenderHelper.BLOCK_RENDER_ID;
}
@Override
public boolean isOpaqueCube()
{
return false;
}
@Override
public boolean renderAsNormalBlock()
{
return false;
}
}

View file

@ -1,24 +0,0 @@
package universalelectricity.core.electricity;
public class ElectricityPack
{
public double amperes;
public double voltage;
public ElectricityPack(double amperes, double voltage)
{
this.amperes = amperes;
this.voltage = voltage;
}
public double getWatts()
{
return ElectricInfo.getWatts(amperes, voltage);
}
@Override
public String toString()
{
return "ElectricityPack [Amps:" + this.amperes + " Volts:" + this.voltage + "]";
}
}

View file

@ -1,22 +0,0 @@
package universalelectricity.prefab.modifier;
import net.minecraft.src.ItemStack;
/**
* This must be applied to an item that acts as a modifier or an upgrade.
*
* @author Calclavia
*
*/
public interface IModifier
{
/**
* @return - The name of the modifier.
*/
public String getName(ItemStack itemstack);
/**
* @return - How much effect does this modifier have?
*/
public int getEffectiveness(ItemStack itemstack);
}

View file

@ -1,29 +0,0 @@
package universalelectricity.prefab.modifier;
import net.minecraft.src.IInventory;
import net.minecraft.src.ItemStack;
import net.minecraft.src.Slot;
/**
* This slot should be used by any container that contains an item that is a modifier. An example of
* this would be upgrade slots.
*
* @author Calclavia
*
*/
public class SlotModifier extends Slot
{
public SlotModifier(IInventory par2IInventory, int par3, int par4, int par5)
{
super(par2IInventory, par3, par4, par5);
}
/**
* Check if the stack is a valid item for this slot. Always true beside for the armor slots.
*/
@Override
public boolean isItemValid(ItemStack par1ItemStack)
{
return par1ItemStack.getItem() instanceof IModifier;
}
}

View file

@ -1,98 +0,0 @@
package universalelectricity.prefab.multiblock;
import java.util.Random;
import net.minecraft.src.Block;
import net.minecraft.src.BlockContainer;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.ItemStack;
import net.minecraft.src.MovingObjectPosition;
import net.minecraft.src.TileEntity;
import net.minecraft.src.World;
import universalelectricity.core.UniversalElectricity;
import universalelectricity.core.vector.Vector3;
public class BlockMulti extends BlockContainer
{
public BlockMulti(int id)
{
super(id, UniversalElectricity.machine);
this.setHardness(0.8F);
this.setBlockName("MultiBlock");
}
public void makeFakeBlock(World worldObj, Vector3 position, Vector3 mainBlock)
{
worldObj.setBlockWithNotify(position.intX(), position.intY(), position.intZ(), this.blockID);
((TileEntityMulti) worldObj.getBlockTileEntity(position.intX(), position.intY(), position.intZ())).setMainBlock(mainBlock);
}
@Override
public void breakBlock(World par1World, int x, int y, int z, int par5, int par6)
{
TileEntityMulti tileEntity = (TileEntityMulti) par1World.getBlockTileEntity(x, y, z);
tileEntity.onBlockRemoval();
super.breakBlock(par1World, x, y, z, par5, par6);
}
/**
* Called when the block is right clicked by the player. This modified version detects electric
* items and wrench actions on your machine block. Do not override this function. Use
* machineActivated instead! (It does the same thing)
*/
@Override
public boolean onBlockActivated(World par1World, int x, int y, int z, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
{
TileEntityMulti tileEntity = (TileEntityMulti) par1World.getBlockTileEntity(x, y, z);
return tileEntity.onBlockActivated(par1World, x, y, z, par5EntityPlayer);
}
/**
* Returns the quantity of items to drop on block destruction.
*/
@Override
public int quantityDropped(Random par1Random)
{
return 0;
}
@Override
public int getRenderType()
{
return -1;
}
@Override
public boolean isOpaqueCube()
{
return false;
}
@Override
public boolean renderAsNormalBlock()
{
return false;
}
@Override
public TileEntity createNewTileEntity(World var1)
{
return new TileEntityMulti();
}
@Override
public ItemStack getPickBlock(MovingObjectPosition target, World par1World, int x, int y, int z)
{
TileEntity tileEntity = par1World.getBlockTileEntity(x, y, z);
Vector3 mainBlockPosition = ((TileEntityMulti) tileEntity).mainBlockPosition;
if (mainBlockPosition != null)
{
int mainBlockID = par1World.getBlockId(mainBlockPosition.intX(), mainBlockPosition.intY(), mainBlockPosition.intZ());
if (mainBlockID > 0) { return Block.blocksList[mainBlockID].getPickBlock(target, par1World, mainBlockPosition.intX(), mainBlockPosition.intY(), mainBlockPosition.intZ()); }
}
return null;
}
}

View file

@ -1,17 +0,0 @@
package universalelectricity.prefab.multiblock;
import net.minecraft.src.EntityPlayer;
/**
* A general interface to be implemented by anything that needs it.
*
* @author Calclavia
*
*/
public interface IBlockActivate
{
/**
* Called when activated
*/
public boolean onActivated(EntityPlayer entityPlayer);
}

View file

@ -1,28 +0,0 @@
package universalelectricity.prefab.multiblock;
import net.minecraft.src.TileEntity;
import universalelectricity.core.vector.Vector3;
/**
* Interface to be applied to tile entity blocks that occupies more than one block space. Useful for
* large machines.
*
* @author Calclavia
*
*/
public interface IMultiBlock extends IBlockActivate
{
/**
* Called when this multiblock is created
*
* @param placedPosition - The position the block was placed at
*/
public void onCreate(Vector3 placedPosition);
/**
* Called when one of the multiblocks of this block is destroyed
*
* @param callingBlock - The tile entity who called the onDestroy function
*/
public void onDestroy(TileEntity callingBlock);
}

View file

@ -1,120 +0,0 @@
package universalelectricity.prefab.multiblock;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.INetworkManager;
import net.minecraft.src.NBTTagCompound;
import net.minecraft.src.Packet;
import net.minecraft.src.Packet250CustomPayload;
import net.minecraft.src.TileEntity;
import net.minecraft.src.World;
import universalelectricity.core.vector.Vector3;
import universalelectricity.prefab.network.IPacketReceiver;
import universalelectricity.prefab.network.PacketManager;
import com.google.common.io.ByteArrayDataInput;
/**
* This is a multiblock to be used for blocks that are bigger than one block.
*
* @author Calclavia
*
*/
public class TileEntityMulti extends TileEntity implements IPacketReceiver
{
// The the position of the main block
public Vector3 mainBlockPosition;
public void setMainBlock(Vector3 mainBlock)
{
this.mainBlockPosition = mainBlock;
if (!this.worldObj.isRemote)
{
PacketManager.sendPacketToClients(this.getDescriptionPacket());
}
}
@Override
public Packet getDescriptionPacket()
{
return PacketManager.getPacket("BasicComponents", this, this.mainBlockPosition.x, this.mainBlockPosition.y, this.mainBlockPosition.z);
}
public void onBlockRemoval()
{
if (mainBlockPosition != null)
{
TileEntity tileEntity = this.worldObj.getBlockTileEntity((int) mainBlockPosition.x, (int) mainBlockPosition.y, (int) mainBlockPosition.z);
if (tileEntity != null && tileEntity instanceof IMultiBlock)
{
IMultiBlock mainBlock = (IMultiBlock) tileEntity;
if (mainBlock != null)
{
mainBlock.onDestroy(this);
}
}
}
}
public boolean onBlockActivated(World par1World, int x, int y, int z, EntityPlayer par5EntityPlayer)
{
if (mainBlockPosition != null)
{
TileEntity tileEntity = this.worldObj.getBlockTileEntity((int) mainBlockPosition.x, (int) mainBlockPosition.y, (int) mainBlockPosition.z);
if (tileEntity != null)
{
if (tileEntity instanceof IMultiBlock) { return ((IMultiBlock) tileEntity).onActivated(par5EntityPlayer); }
}
}
return false;
}
/**
* Reads a tile entity from NBT.
*/
@Override
public void readFromNBT(NBTTagCompound par1NBTTagCompound)
{
super.readFromNBT(par1NBTTagCompound);
this.mainBlockPosition = Vector3.readFromNBT("mainBlockPosition", par1NBTTagCompound);
}
/**
* Writes a tile entity to NBT.
*/
@Override
public void writeToNBT(NBTTagCompound par1NBTTagCompound)
{
super.writeToNBT(par1NBTTagCompound);
this.mainBlockPosition.writeToNBT("mainBlockPosition", par1NBTTagCompound);
}
/**
* Determines if this TileEntity requires update calls.
*
* @return True if you want updateEntity() to be called, false if not
*/
public boolean canUpdate()
{
return false;
}
@Override
public void handlePacketData(INetworkManager network, int packetType, Packet250CustomPayload packet, EntityPlayer player, ByteArrayDataInput dataStream)
{
try
{
this.mainBlockPosition = new Vector3(dataStream.readDouble(), dataStream.readDouble(), dataStream.readDouble());
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

View file

@ -1,99 +0,0 @@
package universalelectricity.prefab.ore;
import java.util.Random;
import net.minecraft.src.Block;
import net.minecraft.src.IChunkProvider;
import net.minecraft.src.ItemStack;
import net.minecraft.src.World;
import net.minecraftforge.common.Configuration;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.oredict.OreDictionary;
import universalelectricity.core.UniversalElectricity;
/**
* This class is used for storing ore generation data. If you are too lazy to generate your own
* ores, you can do {@link #OreGenerator.ORES_TO_GENERATE.add()} to add your ore to the list of ores
* to generate.
*
* @author Calclavia
*
*/
public abstract class OreGenBase
{
public String name;
public String oreDictionaryName;
public boolean shouldGenerate;
public int blockIndexTexture;
public ItemStack oreStack;
public int oreID;
public int oreMeta;
/**
* What harvest level does this machine need to be acquired?
*/
public int harvestLevel;
/**
* The predefined tool classes are "pickaxe", "shovel", "axe". You can add others for custom
* tools.
*/
public String harvestTool;
/**
* @param name - The name of the ore for display
* @param textureFile - The 16x16 png texture of your ore to override
* @param minGenerateLevel - The highest generation level of your ore
* @param maxGenerateLevel - The lowest generation level of your ore
* @param amountPerChunk - The amount of ores to generate per chunk
* @param amountPerBranch - The amount of ores to generate in a clutter. E.g coal generates with
* a lot of other coal next to it. How much do you want?
*/
public OreGenBase(String name, String oreDiectionaryName, ItemStack stack, String harvestTool, int harvestLevel)
{
this.name = name;
this.shouldGenerate = false;
this.harvestTool = harvestTool;
this.harvestLevel = harvestLevel;
this.oreDictionaryName = oreDiectionaryName;
this.oreStack = stack;
this.oreID = stack.itemID;
this.oreMeta = stack.getItemDamage();
OreDictionary.registerOre(oreDictionaryName, stack);
MinecraftForge.setBlockHarvestLevel(Block.blocksList[stack.itemID], stack.getItemDamage(), harvestTool, harvestLevel);
}
public OreGenBase enable(Configuration config)
{
this.shouldGenerate = shouldGenerateOre(config, this.name);
return this;
}
public OreGenBase enable()
{
this.enable(UniversalElectricity.CONFIGURATION);
return this;
}
/**
* Checks the config file and see if Universal Electricity should generate this ore
*/
private static boolean shouldGenerateOre(Configuration configuration, String oreName)
{
configuration.load();
boolean shouldGenerate = configuration.get("Ore Generation", "Generate " + oreName, true).getBoolean(true);
configuration.save();
return shouldGenerate;
}
public abstract void generate(World world, Random random, int varX, int varZ);
public abstract boolean isOreGeneratedInWorld(World world, IChunkProvider chunkGenerator);
}

View file

@ -1,126 +0,0 @@
package universalelectricity.prefab.ore;
import java.util.Random;
import net.minecraft.src.ChunkProviderEnd;
import net.minecraft.src.ChunkProviderGenerate;
import net.minecraft.src.ChunkProviderHell;
import net.minecraft.src.IChunkProvider;
import net.minecraft.src.ItemStack;
import net.minecraft.src.MathHelper;
import net.minecraft.src.World;
/**
* This class is used for storing ore generation data. If you are too lazy to generate your own
* ores, you can do {@link #OreGenerator.ORES_TO_GENERATE.add()} to add your ore to the list of ores
* to generate.
*
* @author Calclavia
*
*/
public class OreGenReplace extends OreGenBase
{
public int minGenerateLevel;
public int maxGenerateLevel;
public int amountPerChunk;
public int amountPerBranch;
public int replaceID;
public boolean generateSurface;
public boolean generateNether;
public boolean generateEnd;
/**
* @param name - The name of the ore for display
* @param textureFile - The 16x16 png texture of your ore to override
* @param minGenerateLevel - The highest generation level of your ore
* @param maxGenerateLevel - The lowest generation level of your ore
* @param amountPerChunk - The amount of ores to generate per chunk
* @param amountPerBranch - The amount of ores to generate in a clutter. E.g coal generates with
* a lot of other coal next to it. How much do you want?
*/
public OreGenReplace(String name, String oreDiectionaryName, ItemStack stack, int replaceID, int minGenerateLevel, int maxGenerateLevel, int amountPerChunk, int amountPerBranch, String harvestTool, int harvestLevel)
{
super(name, oreDiectionaryName, stack, harvestTool, harvestLevel);
this.minGenerateLevel = minGenerateLevel;
this.maxGenerateLevel = maxGenerateLevel;
this.amountPerChunk = amountPerChunk;
this.amountPerBranch = amountPerBranch;
this.replaceID = replaceID;
}
public void generate(World world, Random random, int varX, int varZ)
{
for (int i = 0; i < this.amountPerChunk; i++)
{
int x = varX + random.nextInt(16);
int z = varZ + random.nextInt(16);
int y = random.nextInt(this.maxGenerateLevel - this.minGenerateLevel) + this.minGenerateLevel;
generateReplace(world, random, x, y, z);
}
}
public boolean generateReplace(World par1World, Random par2Random, int par3, int par4, int par5)
{
float var6 = par2Random.nextFloat() * (float) Math.PI;
double var7 = (double) ((float) (par3 + 8) + MathHelper.sin(var6) * (float) this.amountPerBranch / 8.0F);
double var9 = (double) ((float) (par3 + 8) - MathHelper.sin(var6) * (float) this.amountPerBranch / 8.0F);
double var11 = (double) ((float) (par5 + 8) + MathHelper.cos(var6) * (float) this.amountPerBranch / 8.0F);
double var13 = (double) ((float) (par5 + 8) - MathHelper.cos(var6) * (float) this.amountPerBranch / 8.0F);
double var15 = (double) (par4 + par2Random.nextInt(3) - 2);
double var17 = (double) (par4 + par2Random.nextInt(3) - 2);
for (int var19 = 0; var19 <= this.amountPerBranch; ++var19)
{
double var20 = var7 + (var9 - var7) * (double) var19 / (double) this.amountPerBranch;
double var22 = var15 + (var17 - var15) * (double) var19 / (double) this.amountPerBranch;
double var24 = var11 + (var13 - var11) * (double) var19 / (double) this.amountPerBranch;
double var26 = par2Random.nextDouble() * (double) this.amountPerBranch / 16.0D;
double var28 = (double) (MathHelper.sin((float) var19 * (float) Math.PI / (float) this.amountPerBranch) + 1.0F) * var26 + 1.0D;
double var30 = (double) (MathHelper.sin((float) var19 * (float) Math.PI / (float) this.amountPerBranch) + 1.0F) * var26 + 1.0D;
int var32 = MathHelper.floor_double(var20 - var28 / 2.0D);
int var33 = MathHelper.floor_double(var22 - var30 / 2.0D);
int var34 = MathHelper.floor_double(var24 - var28 / 2.0D);
int var35 = MathHelper.floor_double(var20 + var28 / 2.0D);
int var36 = MathHelper.floor_double(var22 + var30 / 2.0D);
int var37 = MathHelper.floor_double(var24 + var28 / 2.0D);
for (int var38 = var32; var38 <= var35; ++var38)
{
double var39 = ((double) var38 + 0.5D - var20) / (var28 / 2.0D);
if (var39 * var39 < 1.0D)
{
for (int var41 = var33; var41 <= var36; ++var41)
{
double var42 = ((double) var41 + 0.5D - var22) / (var30 / 2.0D);
if (var39 * var39 + var42 * var42 < 1.0D)
{
for (int var44 = var34; var44 <= var37; ++var44)
{
double var45 = ((double) var44 + 0.5D - var24) / (var28 / 2.0D);
int block = par1World.getBlockId(var38, var41, var44);
if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0D && (this.replaceID == 0 || block == this.replaceID))
{
par1World.setBlockAndMetadata(var38, var41, var44, this.oreID, this.oreMeta);
}
}
}
}
}
}
}
return true;
}
@Override
public boolean isOreGeneratedInWorld(World world, IChunkProvider chunkGenerator)
{
return ((this.generateSurface && chunkGenerator instanceof ChunkProviderGenerate) || (this.generateNether && chunkGenerator instanceof ChunkProviderHell) || (this.generateEnd && chunkGenerator instanceof ChunkProviderEnd));
}
}

View file

@ -1,18 +0,0 @@
package universalelectricity.prefab.ore;
import net.minecraft.src.ItemStack;
public class OreGenReplaceStone extends OreGenReplace
{
public OreGenReplaceStone(String name, String oreDiectionaryName, ItemStack stack, int replaceID, int minGenerateLevel, int maxGenerateLevel, int amountPerChunk, int amountPerBranch, String harvestTool, int harvestLevel)
{
super(name, oreDiectionaryName, stack, 1, minGenerateLevel, maxGenerateLevel, amountPerChunk, amountPerBranch, harvestTool, harvestLevel);
this.generateSurface = true;
}
// A simplified version of the constructor
public OreGenReplaceStone(String name, String oreDiectionaryName, ItemStack stack, int replaceID, int maxGenerateLevel, int amountPerChunk, int amountPerBranch)
{
this(name, oreDiectionaryName, stack, 0, replaceID, maxGenerateLevel, amountPerChunk, amountPerBranch, "pickaxe", 1);
}
}

View file

@ -1,75 +0,0 @@
package universalelectricity.prefab.ore;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import net.minecraft.src.IChunkProvider;
import net.minecraft.src.World;
import cpw.mods.fml.common.IWorldGenerator;
import cpw.mods.fml.common.registry.GameRegistry;
public class OreGenerator implements IWorldGenerator
{
public static boolean isInitiated = false;
/**
* Add your ore data to this list of ores for it to automatically generate! No hassle indeed!
*/
private static final List<OreGenBase> ORES_TO_GENERATE = new ArrayList<OreGenBase>();
/**
* Adds an ore to the ore generate list. Do this in pre-init.
*/
public static void addOre(OreGenBase data)
{
if (!isInitiated)
{
GameRegistry.registerWorldGenerator(new OreGenerator());
}
ORES_TO_GENERATE.add(data);
}
/**
* Checks to see if this ore
*
* @param oreName
* @return
*/
public static boolean oreExists(String oreName)
{
for (OreGenBase ore : ORES_TO_GENERATE)
{
if (ore.oreDictionaryName == oreName) { return true; }
}
return false;
}
/**
* Removes an ore to the ore generate list. Do this in init.
*/
public static void removeOre(OreGenBase data)
{
ORES_TO_GENERATE.remove(data);
}
@Override
public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider)
{
chunkX = chunkX << 4;
chunkZ = chunkZ << 4;
// Checks to make sure this is the normal
// world
for (OreGenBase oreData : ORES_TO_GENERATE)
{
if (oreData.shouldGenerate && oreData.isOreGeneratedInWorld(world, chunkGenerator))
{
oreData.generate(world, rand, chunkX, chunkZ);
}
}
}
}

View file

@ -1,37 +0,0 @@
package universalelectricity.prefab.potion;
import net.minecraft.src.Potion;
import cpw.mods.fml.common.registry.LanguageRegistry;
public abstract class CustomPotion extends Potion
{
/**
* Creates a new type of potion
*
* @param id - The ID of this potion. Make it greater than 20.
* @param isBadEffect - Is this potion a good potion or a bad one?
* @param color - The color of this potion.
* @param name - The name of this potion.
*/
public CustomPotion(int id, boolean isBadEffect, int color, String name)
{
super(id, isBadEffect, color);
this.setPotionName("potion." + name);
LanguageRegistry.instance().addStringLocalization(this.getName(), name);
}
@Override
public Potion setIconIndex(int par1, int par2)
{
super.setIconIndex(par1, par2);
return this;
}
/**
* You must register all your potion effects during mod initialization!
*/
public void register()
{
Potion.potionTypes[this.getId()] = this;
}
}

View file

@ -1,40 +0,0 @@
package universalelectricity.prefab.potion;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.src.ItemStack;
import net.minecraft.src.Potion;
import net.minecraft.src.PotionEffect;
public class CustomPotionEffect extends PotionEffect
{
public CustomPotionEffect(int potionID, int duration, int amplifier)
{
super(potionID, duration, amplifier);
}
public CustomPotionEffect(Potion potion, int duration, int amplifier)
{
this(potion.getId(), duration, amplifier);
}
/**
* Creates a potion effect with custom curable items.
*
* @param curativeItems - ItemStacks that can cure this potion effect
*/
public CustomPotionEffect(int potionID, int duration, int amplifier, List<ItemStack> curativeItems)
{
super(potionID, duration, amplifier);
if (curativeItems == null)
{
this.setCurativeItems(new ArrayList<ItemStack>());
}
else
{
this.setCurativeItems(curativeItems);
}
}
}

View file

@ -1,31 +0,0 @@
package universalelectricity.prefab.repair;
import net.minecraft.src.EntityPlayer;
/**
* Applied to TileEntities/Machines that can be repaired.
*
* @author Calclavia
*
*/
public interface IRepairable
{
/**
* Called when the machine is being repaired.
*
* @param itemStack - The repairing tool that the player is holding
* @param player - The player who is repairing this machine.
*/
public void onRepair(IToolRepair itemStack, EntityPlayer player);
/**
* @return The maximum possible damage of this machine.
*/
public int getMaxDamage();
/**
* @return How damaged is this machine?
*/
public int getDamage();
}

View file

@ -1,19 +0,0 @@
package universalelectricity.prefab.repair;
import net.minecraft.src.ItemStack;
public interface IToolRepair
{
/**
* A unique ID for mods to recognize what repair tool this is.
*/
public String getID();
/**
* How effective is this repairing tool?
*
* @param itemStack The ItemStack
* @return A effectiveness value.
*/
public int getEffectiveness(ItemStack itemStack);
}

View file

@ -1,146 +0,0 @@
package universalelectricity.prefab.tile;
import java.util.EnumSet;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.INetworkManager;
import net.minecraft.src.Packet250CustomPayload;
import net.minecraft.src.TileEntity;
import net.minecraftforge.common.ForgeDirection;
import universalelectricity.core.electricity.Electricity;
import universalelectricity.core.electricity.ElectricityConnections;
import universalelectricity.core.electricity.ElectricityNetwork;
import universalelectricity.core.implement.IConductor;
import universalelectricity.core.vector.Vector3;
import universalelectricity.prefab.network.IPacketReceiver;
import com.google.common.io.ByteArrayDataInput;
/**
* This tile entity pre-fabricated for all conductors.
*
* @author Calclavia
*
*/
public abstract class TileEntityConductor extends TileEntityAdvanced implements IConductor, IPacketReceiver
{
private ElectricityNetwork network;
/**
* Stores information on the blocks that this conductor is connected to
*/
public TileEntity[] connectedBlocks =
{ null, null, null, null, null, null };
public TileEntityConductor()
{
ElectricityConnections.registerConnector(this, EnumSet.range(ForgeDirection.DOWN, ForgeDirection.EAST));
this.reset();
}
@Override
public ElectricityNetwork getNetwork()
{
return this.network;
}
@Override
public void setNetwork(ElectricityNetwork network)
{
this.network = network;
}
@Override
public TileEntity[] getConnectedBlocks()
{
return this.connectedBlocks;
}
@Override
public void updateConnection(TileEntity tileEntity, ForgeDirection side)
{
if (tileEntity != null)
{
if (ElectricityConnections.isConnector(tileEntity))
{
this.connectedBlocks[side.ordinal()] = tileEntity;
if (tileEntity.getClass() == this.getClass())
{
Electricity.instance.mergeConnection(this.getNetwork(), ((TileEntityConductor) tileEntity).getNetwork());
}
return;
}
}
if (this.connectedBlocks[side.ordinal()] != null)
{
if (this.connectedBlocks[side.ordinal()] instanceof IConductor)
{
Electricity.instance.splitConnection(this, (IConductor) this.getConnectedBlocks()[side.ordinal()]);
}
}
this.connectedBlocks[side.ordinal()] = null;
}
@Override
public void updateConnectionWithoutSplit(TileEntity tileEntity, ForgeDirection side)
{
if (tileEntity != null)
{
if (ElectricityConnections.isConnector(tileEntity))
{
this.connectedBlocks[side.ordinal()] = tileEntity;
if (tileEntity.getClass() == this.getClass())
{
Electricity.instance.mergeConnection(this.getNetwork(), ((TileEntityConductor) tileEntity).getNetwork());
}
return;
}
}
this.connectedBlocks[side.ordinal()] = null;
}
@Override
public void handlePacketData(INetworkManager network, int type, Packet250CustomPayload packet, EntityPlayer player, ByteArrayDataInput dataStream)
{
if (this.worldObj.isRemote)
{
this.refreshConnectedBlocks();
}
}
@Override
public void initiate()
{
this.refreshConnectedBlocks();
}
@Override
public void reset()
{
this.network = null;
if (Electricity.instance != null)
{
Electricity.instance.registerConductor(this);
}
}
@Override
public void refreshConnectedBlocks()
{
if (this.worldObj != null)
{
for (byte i = 0; i < 6; i++)
{
this.updateConnection(Vector3.getConnectorFromSide(this.worldObj, Vector3.get(this), ForgeDirection.getOrientation(i)), ForgeDirection.getOrientation(i));
}
}
}
}

View file

@ -2,7 +2,7 @@ package assemblyline.api;
import java.util.List;
import net.minecraft.src.Entity;
import net.minecraft.entity.Entity;
import net.minecraftforge.common.ForgeDirection;
public interface IBelt
@ -19,8 +19,7 @@ public interface IBelt
* Causes the belt to ignore the entity for a few updates help in cases where another machine
* needs to affect this particular entity without the belt interfering
*
* @param entity
* - entity being ignored
* @param entity - entity being ignored
*/
public void ignoreEntity(Entity entity);

View file

@ -1,6 +1,6 @@
package assemblyline.api;
import net.minecraft.src.ItemStack;
import net.minecraft.item.ItemStack;
import universalelectricity.core.vector.Vector3;
public interface IManipulator

View file

@ -1,21 +1,23 @@
package assemblyline;
package assemblyline.client;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.TileEntity;
import net.minecraft.src.World;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.client.MinecraftForgeClient;
import assemblyline.gui.GuiSorter;
import assemblyline.machine.TileEntityManipulator;
import assemblyline.machine.TileEntityRejector;
import assemblyline.machine.belt.TileEntityConveyorBelt;
import assemblyline.render.RenderConveyorBelt;
import assemblyline.render.RenderHelper;
import assemblyline.render.RenderManipulator;
import assemblyline.render.RenderSorter;
import assemblyline.client.gui.GuiSorter;
import assemblyline.client.render.RenderConveyorBelt;
import assemblyline.client.render.RenderHelper;
import assemblyline.client.render.RenderManipulator;
import assemblyline.client.render.RenderSorter;
import assemblyline.common.AssemblyLine;
import assemblyline.common.CommonProxy;
import assemblyline.common.machine.TileEntityManipulator;
import assemblyline.common.machine.TileEntityRejector;
import assemblyline.common.machine.belt.TileEntityConveyorBelt;
import cpw.mods.fml.client.registry.ClientRegistry;
import cpw.mods.fml.client.registry.RenderingRegistry;
public class ALClientProxy extends ALCommonProxy
public class ClientProxy extends CommonProxy
{
@Override
public void preInit()
@ -27,6 +29,7 @@ public class ALClientProxy extends ALCommonProxy
@Override
public void init()
{
super.init();
// ClientRegistry.registerTileEntity(TileEntityConveyorBelt.class,
// "belt", new RenderConveyorBelt());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityConveyorBelt.class, new RenderConveyorBelt());

View file

@ -1,14 +1,14 @@
package assemblyline.gui;
package assemblyline.client.gui;
import net.minecraft.src.ContainerWorkbench;
import net.minecraft.src.GuiContainer;
import net.minecraft.src.InventoryPlayer;
import net.minecraft.src.StatCollector;
import net.minecraft.src.World;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.ContainerWorkbench;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
import org.lwjgl.opengl.GL11;
import assemblyline.AssemblyLine;
import assemblyline.common.AssemblyLine;
import cpw.mods.fml.common.Side;
import cpw.mods.fml.common.asm.SideOnly;

View file

@ -1,7 +1,7 @@
package assemblyline.gui;
package assemblyline.client.gui;
import net.minecraft.client.Minecraft;
import net.minecraft.src.GuiButton;
import net.minecraft.client.gui.GuiButton;
import org.lwjgl.opengl.GL11;

View file

@ -1,16 +1,16 @@
package assemblyline.gui;
package assemblyline.client.gui;
import net.minecraft.src.GuiButton;
import net.minecraft.src.GuiContainer;
import net.minecraft.src.InventoryPlayer;
import net.minecraft.src.StatCollector;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.StatCollector;
import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.GL11;
import assemblyline.AssemblyLine;
import assemblyline.machine.ContainerSorter;
import assemblyline.machine.TileEntityRejector;
import assemblyline.common.AssemblyLine;
import assemblyline.common.machine.ContainerSorter;
import assemblyline.common.machine.TileEntityRejector;
public class GuiSorter extends GuiContainer
{

View file

@ -1,7 +1,7 @@
package assemblyline.model;
package assemblyline.client.model;
import net.minecraft.src.ModelBase;
import net.minecraft.src.ModelRenderer;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
public class ModelConveyorBelt extends ModelBase
{

View file

@ -1,7 +1,7 @@
package assemblyline.model;
package assemblyline.client.model;
import net.minecraft.src.ModelBase;
import net.minecraft.src.ModelRenderer;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
public class ModelDropBox extends ModelBase
{

View file

@ -1,7 +1,7 @@
package assemblyline.model;
package assemblyline.client.model;
import net.minecraft.src.ModelBase;
import net.minecraft.src.ModelRenderer;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
public class ModelManipulator extends ModelBase
{

View file

@ -4,10 +4,10 @@
// Keep in mind that you still need to fill in some blanks
// - ZeuX
package assemblyline.model;
package assemblyline.client.model;
import net.minecraft.src.ModelBase;
import net.minecraft.src.ModelRenderer;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
public class ModelSorter extends ModelBase
{

View file

@ -1,14 +1,17 @@
package assemblyline.render;
package assemblyline.client.render;
import net.minecraft.src.TileEntity;
import net.minecraft.src.TileEntitySpecialRenderer;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
import org.lwjgl.opengl.GL11;
import assemblyline.AssemblyLine;
import assemblyline.machine.belt.TileEntityConveyorBelt;
import assemblyline.model.ModelConveyorBelt;
import cpw.mods.fml.common.Side;
import cpw.mods.fml.common.asm.SideOnly;
import assemblyline.client.model.ModelConveyorBelt;
import assemblyline.common.AssemblyLine;
import assemblyline.common.machine.belt.TileEntityConveyorBelt;
@SideOnly(Side.CLIENT)
public class RenderConveyorBelt extends TileEntitySpecialRenderer
{
private ModelConveyorBelt model = new ModelConveyorBelt();

View file

@ -1,20 +1,23 @@
package assemblyline.render;
package assemblyline.client.render;
import net.minecraft.src.Block;
import net.minecraft.src.IBlockAccess;
import net.minecraft.src.RenderBlocks;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.world.IBlockAccess;
import org.lwjgl.opengl.GL11;
import assemblyline.AssemblyLine;
import assemblyline.machine.BlockMulti.MachineType;
import assemblyline.model.ModelConveyorBelt;
import assemblyline.model.ModelManipulator;
import assemblyline.model.ModelSorter;
import assemblyline.client.model.ModelConveyorBelt;
import assemblyline.client.model.ModelManipulator;
import assemblyline.client.model.ModelSorter;
import assemblyline.common.AssemblyLine;
import assemblyline.common.machine.BlockMulti.MachineType;
import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.common.Side;
import cpw.mods.fml.common.asm.SideOnly;
@SideOnly(Side.CLIENT)
public class RenderHelper implements ISimpleBlockRenderingHandler
{
public static RenderHelper instance = new RenderHelper();

View file

@ -1,13 +1,13 @@
package assemblyline.render;
package assemblyline.client.render;
import net.minecraft.src.TileEntity;
import net.minecraft.src.TileEntitySpecialRenderer;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
import org.lwjgl.opengl.GL11;
import assemblyline.AssemblyLine;
import assemblyline.machine.TileEntityManipulator;
import assemblyline.model.ModelManipulator;
import assemblyline.client.model.ModelManipulator;
import assemblyline.common.AssemblyLine;
import assemblyline.common.machine.TileEntityManipulator;
public class RenderManipulator extends TileEntitySpecialRenderer
{

View file

@ -1,13 +1,13 @@
package assemblyline.render;
package assemblyline.client.render;
import net.minecraft.src.TileEntity;
import net.minecraft.src.TileEntitySpecialRenderer;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
import org.lwjgl.opengl.GL11;
import assemblyline.AssemblyLine;
import assemblyline.machine.TileEntityRejector;
import assemblyline.model.ModelSorter;
import assemblyline.client.model.ModelSorter;
import assemblyline.common.AssemblyLine;
import assemblyline.common.machine.TileEntityRejector;
public class RenderSorter extends TileEntitySpecialRenderer
{

View file

@ -1,10 +1,10 @@
package assemblyline;
package assemblyline.common;
import java.io.File;
import net.minecraft.src.Block;
import net.minecraft.src.Item;
import net.minecraft.src.ItemStack;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.Configuration;
import net.minecraftforge.oredict.ShapedOreRecipe;
import net.minecraftforge.oredict.ShapelessOreRecipe;
@ -12,14 +12,14 @@ import universalelectricity.core.UniversalElectricity;
import universalelectricity.prefab.UETab;
import universalelectricity.prefab.UpdateNotifier;
import universalelectricity.prefab.network.PacketManager;
import assemblyline.machine.BlockArchitectTable;
import assemblyline.machine.BlockMulti;
import assemblyline.machine.BlockMulti.MachineType;
import assemblyline.machine.ItemBlockMulti;
import assemblyline.machine.TileEntityManipulator;
import assemblyline.machine.TileEntityRejector;
import assemblyline.machine.belt.BlockConveyorBelt;
import assemblyline.machine.belt.TileEntityConveyorBelt;
import assemblyline.common.block.BlockArchitectTable;
import assemblyline.common.machine.BlockMulti;
import assemblyline.common.machine.ItemBlockMulti;
import assemblyline.common.machine.TileEntityManipulator;
import assemblyline.common.machine.TileEntityRejector;
import assemblyline.common.machine.BlockMulti.MachineType;
import assemblyline.common.machine.belt.BlockConveyorBelt;
import assemblyline.common.machine.belt.TileEntityConveyorBelt;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.Init;
@ -37,8 +37,8 @@ import cpw.mods.fml.common.registry.LanguageRegistry;
@NetworkMod(channels = { AssemblyLine.CHANNEL }, clientSideRequired = true, serverSideRequired = false, packetHandler = PacketManager.class)
public class AssemblyLine
{
@SidedProxy(clientSide = "assemblyline.ALClientProxy", serverSide = "assemblyline.ALCommonProxy")
public static ALCommonProxy proxy;
@SidedProxy(clientSide = "assemblyline.client.ClientProxy", serverSide = "assemblyline.common.CommonProxy")
public static CommonProxy proxy;
@Instance(AssemblyLine.CHANNEL)
public static AssemblyLine instance;
@ -75,7 +75,7 @@ public class AssemblyLine
GameRegistry.registerBlock(blockArchitectTable);
GameRegistry.registerBlock(blockInteraction, ItemBlockMulti.class);
UpdateNotifier.INSTANCE.checkUpdate(NAME, VERSION, "http://calclavia.com/downloads/al/modversion.txt");
UpdateNotifier.INSTANCE.checkUpdate(NAME, VERSION, "http://calclavia.com/downloads/al/recommendedversion.txt");
proxy.preInit();
}
@ -85,11 +85,7 @@ public class AssemblyLine
{
proxy.init();
//TODO Load language files and use those for block naming
GameRegistry.registerTileEntity(TileEntityConveyorBelt.class, "ConveyorBelt");
GameRegistry.registerTileEntity(TileEntityRejector.class, "Sorter");
GameRegistry.registerTileEntity(TileEntityManipulator.class, "Manipulator");
// TODO Load language files and use those for block naming
// Add Names
LanguageRegistry.addName(blockConveyorBelt, "Conveyor Belt");

View file

@ -0,0 +1,51 @@
package assemblyline.common;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import assemblyline.common.machine.ContainerSorter;
import assemblyline.common.machine.TileEntityManipulator;
import assemblyline.common.machine.TileEntityRejector;
import assemblyline.common.machine.belt.TileEntityConveyorBelt;
import cpw.mods.fml.common.network.IGuiHandler;
import cpw.mods.fml.common.registry.GameRegistry;
public class CommonProxy implements IGuiHandler
{
public static final int GUI_ARCHITECHT_TABLE = 4;
public void preInit()
{
}
public void init()
{
GameRegistry.registerTileEntity(TileEntityConveyorBelt.class, "ConveyorBelt");
GameRegistry.registerTileEntity(TileEntityRejector.class, "Sorter");
GameRegistry.registerTileEntity(TileEntityManipulator.class, "Manipulator");
}
@Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
{
TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
if (tileEntity != null)
{
switch (ID)
{
case 0:
return new ContainerSorter(player.inventory, ((TileEntityRejector) tileEntity));
}
}
return null;
}
@Override
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
{
return null;
}
}

View file

@ -1,11 +1,11 @@
package assemblyline.ai;
package assemblyline.common.ai;
import java.util.List;
import net.minecraft.src.AxisAlignedBB;
import net.minecraft.src.EntityItem;
import net.minecraft.src.ItemStack;
import net.minecraft.src.World;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.ItemStack;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import universalelectricity.core.vector.Vector3;
public class ArmHelper

View file

@ -1,6 +1,6 @@
package assemblyline.ai;
package assemblyline.common.ai;
import assemblyline.machine.crafter.TileEntityCraftingArm;
import assemblyline.common.machine.crafter.TileEntityCraftingArm;
/**
* An AI Task that is used by TileEntities with AI.

View file

@ -1,6 +1,6 @@
package assemblyline.ai;
package assemblyline.common.ai;
import assemblyline.machine.crafter.TileEntityCraftingArm;
import assemblyline.common.machine.crafter.TileEntityCraftingArm;
public class TaskIdle extends Task
{

View file

@ -1,10 +1,10 @@
package assemblyline.ai;
package assemblyline.common.ai;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.minecraft.src.TileEntity;
import net.minecraft.tileentity.TileEntity;
import cpw.mods.fml.common.FMLLog;
public class TaskManager

View file

@ -1,9 +1,9 @@
package assemblyline.machine;
package assemblyline.common.block;
import net.minecraft.src.Block;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.Material;
import net.minecraft.src.World;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import universalelectricity.prefab.UETab;
public class BlockArchitectTable extends Block

View file

@ -1,21 +1,21 @@
package assemblyline.machine;
package assemblyline.common.machine;
import java.util.List;
import net.minecraft.src.AxisAlignedBB;
import net.minecraft.src.CreativeTabs;
import net.minecraft.src.EntityLiving;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.ItemStack;
import net.minecraft.src.MathHelper;
import net.minecraft.src.TileEntity;
import net.minecraft.src.World;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import universalelectricity.core.UniversalElectricity;
import universalelectricity.prefab.BlockMachine;
import universalelectricity.prefab.UETab;
import universalelectricity.prefab.implement.IRedstoneReceptor;
import assemblyline.AssemblyLine;
import assemblyline.render.RenderHelper;
import assemblyline.client.render.RenderHelper;
import assemblyline.common.AssemblyLine;
import cpw.mods.fml.common.network.PacketDispatcher;
/**

View file

@ -1,11 +1,11 @@
package assemblyline.machine;
package assemblyline.common.machine;
import net.minecraft.src.Container;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.InventoryPlayer;
import net.minecraft.src.Item;
import net.minecraft.src.ItemStack;
import net.minecraft.src.Slot;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
public class ContainerSorter extends Container
{

View file

@ -1,8 +1,8 @@
package assemblyline.machine;
package assemblyline.common.machine;
import net.minecraft.src.ItemBlock;
import net.minecraft.src.ItemStack;
import assemblyline.machine.BlockMulti.MachineType;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import assemblyline.common.machine.BlockMulti.MachineType;
public class ItemBlockMulti extends ItemBlock
{

View file

@ -1,30 +1,29 @@
package assemblyline.machine;
package assemblyline.common.machine;
import java.util.List;
import net.minecraft.src.AxisAlignedBB;
import net.minecraft.src.EntityItem;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.IInventory;
import net.minecraft.src.INetworkManager;
import net.minecraft.src.ItemStack;
import net.minecraft.src.NBTTagCompound;
import net.minecraft.src.Packet;
import net.minecraft.src.Packet250CustomPayload;
import net.minecraft.src.TileEntity;
import net.minecraft.src.TileEntityChest;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.packet.Packet;
import net.minecraft.network.packet.Packet250CustomPayload;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityChest;
import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.common.ISidedInventory;
import universalelectricity.core.electricity.ElectricInfo;
import universalelectricity.core.implement.IConductor;
import universalelectricity.core.vector.Vector3;
import universalelectricity.prefab.implement.IRedstoneReceptor;
import universalelectricity.prefab.network.IPacketReceiver;
import universalelectricity.prefab.network.PacketManager;
import universalelectricity.prefab.tile.TileEntityElectricityReceiver;
import assemblyline.AssemblyLine;
import assemblyline.api.IManipulator;
import assemblyline.machine.BlockMulti.MachineType;
import assemblyline.common.AssemblyLine;
import assemblyline.common.machine.BlockMulti.MachineType;
import com.google.common.io.ByteArrayDataInput;

View file

@ -1,29 +1,27 @@
package assemblyline.machine;
package assemblyline.common.machine;
import java.util.EnumSet;
import java.util.List;
import net.minecraft.src.AxisAlignedBB;
import net.minecraft.src.Entity;
import net.minecraft.src.EntityItem;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.IInventory;
import net.minecraft.src.INetworkManager;
import net.minecraft.src.ItemStack;
import net.minecraft.src.NBTTagCompound;
import net.minecraft.src.NBTTagList;
import net.minecraft.src.Packet;
import net.minecraft.src.Packet250CustomPayload;
import net.minecraft.src.TileEntity;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.packet.Packet;
import net.minecraft.network.packet.Packet250CustomPayload;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.ForgeDirection;
import universalelectricity.core.electricity.ElectricityConnections;
import universalelectricity.core.implement.IConductor;
import universalelectricity.core.vector.Vector3;
import universalelectricity.prefab.network.IPacketReceiver;
import universalelectricity.prefab.network.PacketManager;
import universalelectricity.prefab.tile.TileEntityElectricityReceiver;
import assemblyline.AssemblyLine;
import assemblyline.machine.belt.TileEntityConveyorBelt;
import assemblyline.common.AssemblyLine;
import assemblyline.common.machine.belt.TileEntityConveyorBelt;
import com.google.common.io.ByteArrayDataInput;

View file

@ -1,15 +1,15 @@
package assemblyline.machine;
package assemblyline.common.machine;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.IInventory;
import net.minecraft.src.INetworkManager;
import net.minecraft.src.ItemStack;
import net.minecraft.src.NBTTagCompound;
import net.minecraft.src.NBTTagList;
import net.minecraft.src.Packet250CustomPayload;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.packet.Packet250CustomPayload;
import universalelectricity.prefab.network.IPacketReceiver;
import universalelectricity.prefab.tile.TileEntityElectricityReceiver;
import assemblyline.machine.belt.TileEntityConveyorBelt;
import assemblyline.common.machine.belt.TileEntityConveyorBelt;
import com.google.common.io.ByteArrayDataInput;

View file

@ -0,0 +1,205 @@
package assemblyline.common.machine.belt;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import universalelectricity.core.UniversalElectricity;
import universalelectricity.prefab.BlockMachine;
import universalelectricity.prefab.UETab;
import assemblyline.client.render.RenderHelper;
/**
* The block for the actual conveyor belt!
*
* @author Calclavia, DarkGuardsman
*/
public class BlockConveyorBelt extends BlockMachine
{
public BlockConveyorBelt(int id)
{
super("Conveyor Belt", id, UniversalElectricity.machine);
this.setBlockBounds(0, 0, 0, 1, 0.3f, 1);
this.setCreativeTab(UETab.INSTANCE);
}
@Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLiving par5EntityLiving)
{
int meta = world.getBlockMetadata(x, y, z);
int angle = MathHelper.floor_double((par5EntityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
world.setBlockMetadataWithNotify(x, y, z, meta + angle);
}
@Override
public boolean onUseWrench(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 (metadata >= 0 && metadata < 8)
{
if (metadata >= 3)
{
par1World.setBlockAndMetadataWithNotify(x, y, z, this.blockID, 0);
return true;
}
else if (metadata >= 7)
{
par1World.setBlockAndMetadataWithNotify(x, y, z, this.blockID, 4);
return true;
}
else
{
par1World.setBlockAndMetadataWithNotify(x, y, z, this.blockID, metadata + 1);
return true;
}
}
return true;
}
/**
* @author AtomicStryker
*/
//@Override
public void onEntityCollidedWithBlockTest(World world, int x, int y, int z, Entity entity)
{
TileEntityConveyorBelt tileEntity = (TileEntityConveyorBelt) world.getBlockTileEntity(x, y, z);
if (tileEntity.running)
{
int metadata = tileEntity.getBeltDirection();
if (metadata == 4)
{
entity.setVelocity(0.1D, 0.2D, 0.0D);
entity.onGround = false;
}
else if (metadata == 5)
{
entity.setVelocity(0.0D, 0.2D, 0.1D);
entity.onGround = false;
}
else if (metadata == 6)
{
entity.setVelocity(-0.1D, 0.2D, 0.0D);
entity.onGround = false;
}
else if (metadata == 7)
{
entity.setVelocity(0.0D, 0.2D, -0.1D);
entity.onGround = false;
}
else if (metadata == 8)
{
entity.setVelocity(0.1D, 0.0D, 0.0D);
entity.onGround = false;
}
else if (metadata == 9)
{
entity.setVelocity(0.0D, 0.0D, 0.1D);
entity.onGround = false;
}
else if (metadata == 10)
{
entity.setVelocity(-0.1D, 0.0D, 0.0D);
entity.onGround = false;
}
else if (metadata == 11)
{
entity.setVelocity(0.0D, 0.0D, -0.1D);
entity.onGround = false;
}
else if (metadata == 0)
{
if (entity.posZ > (double) z + 0.55D)
{
entity.setVelocity(0.05D, 0.0D, -0.05D);
}
else if (entity.posZ < (double) z + 0.45D)
{
entity.setVelocity(0.05D, 0.0D, 0.05D);
}
else
{
entity.setVelocity(0.1D, 0.0D, 0.0D);
}
}
else if (metadata == 1)
{
if (entity.posX > (double) x + 0.55D)
{
entity.setVelocity(-0.05D, 0.0D, 0.05D);
}
else if (entity.posX < (double) x + 0.45D)
{
entity.setVelocity(0.05D, 0.0D, 0.05D);
}
else
{
entity.setVelocity(0.0D, 0.0D, 0.1D);
}
}
else if (metadata == 2)
{
if (entity.posZ > (double) z + 0.55D)
{
entity.setVelocity(-0.05D, 0.0D, -0.05D);
}
else if (entity.posZ < (double) z + 0.45D)
{
entity.setVelocity(-0.05D, 0.0D, 0.05D);
}
else
{
entity.setVelocity(-0.1D, 0.0D, 0.0D);
}
}
else if (metadata == 3)
{
if (entity.posX > (double) x + 0.55D)
{
entity.setVelocity(-0.05D, 0.0D, -0.05D);
}
else if (entity.posX < (double) x + 0.45D)
{
entity.setVelocity(0.05D, 0.0D, -0.05D);
}
else
{
entity.setVelocity(0.0D, 0.0D, -0.1D);
}
}
}
}
/**
* Returns the TileEntity used by this block.
*/
@Override
public TileEntity createNewTileEntity(World var1, int metadata)
{
if (metadata >= 0 && metadata < 4) { return new TileEntityConveyorBelt(); }
if (metadata >= 4 && metadata < 8) { return new TileEntityCoveredBelt(); }
return null;
}
@Override
public int getRenderType()
{
return RenderHelper.BLOCK_RENDER_ID;
}
@Override
public boolean isOpaqueCube()
{
return false;
}
@Override
public boolean renderAsNormalBlock()
{
return false;
}
}

View file

@ -1,27 +1,26 @@
package assemblyline.machine.belt;
package assemblyline.common.machine.belt;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
import net.minecraft.src.AxisAlignedBB;
import net.minecraft.src.Entity;
import net.minecraft.src.EntityItem;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.INetworkManager;
import net.minecraft.src.Packet;
import net.minecraft.src.Packet250CustomPayload;
import net.minecraft.src.TileEntity;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.packet.Packet;
import net.minecraft.network.packet.Packet250CustomPayload;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.ForgeDirection;
import universalelectricity.core.electricity.ElectricInfo;
import universalelectricity.core.electricity.ElectricityConnections;
import universalelectricity.core.implement.IConductor;
import universalelectricity.core.vector.Vector3;
import universalelectricity.prefab.network.IPacketReceiver;
import universalelectricity.prefab.network.PacketManager;
import universalelectricity.prefab.tile.TileEntityElectricityReceiver;
import assemblyline.AssemblyLine;
import assemblyline.api.IBelt;
import assemblyline.common.AssemblyLine;
import com.google.common.io.ByteArrayDataInput;
@ -41,7 +40,6 @@ public class TileEntityConveyorBelt extends TileEntityElectricityReceiver implem
public float wheelRotation = 0;
public boolean running = false;
public boolean textureFlip = false;
public boolean slantedBelt = false;
public TileEntityConveyorBelt[] adjBelts = { null, null, null, null };
public int clearCount = 0;
@ -349,7 +347,6 @@ public class TileEntityConveyorBelt extends TileEntityElectricityReceiver implem
@Override
public ForgeDirection getFacing()
{
return ForgeDirection.getOrientation(this.getBeltDirection());
}

View file

@ -1,4 +1,4 @@
package assemblyline.machine.belt;
package assemblyline.common.machine.belt;
/**
* For the moment this is just a render place holder, but will be convered to prevent item pickups

View file

@ -1,10 +1,10 @@
package assemblyline.machine.belt;
package assemblyline.common.machine.belt;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.src.Entity;
import net.minecraft.src.TileEntity;
import net.minecraft.entity.Entity;
import net.minecraft.tileentity.TileEntity;
/**
* @author Rseifert

View file

@ -1,12 +1,12 @@
package assemblyline.machine.crafter;
package assemblyline.common.machine.crafter;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.TileEntity;
import net.minecraft.src.World;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import universalelectricity.core.UniversalElectricity;
import universalelectricity.prefab.BlockMachine;
import universalelectricity.prefab.UETab;
import assemblyline.AssemblyLine;
import assemblyline.common.AssemblyLine;
public class BlockCrafter extends BlockMachine
{

View file

@ -1,11 +1,11 @@
package assemblyline.machine.crafter;
package assemblyline.common.machine.crafter;
import net.minecraft.src.Container;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.InventoryPlayer;
import net.minecraft.src.Item;
import net.minecraft.src.ItemStack;
import net.minecraft.src.Slot;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
/**
* I am planning to make the crafter not use a GUI.

View file

@ -1,12 +1,12 @@
package assemblyline.machine.crafter;
package assemblyline.common.machine.crafter;
import net.minecraft.src.AxisAlignedBB;
import net.minecraft.src.Entity;
import net.minecraft.src.EntityItem;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.ItemStack;
import net.minecraft.src.NBTTagCompound;
import net.minecraft.src.World;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import universalelectricity.core.vector.Vector3;
/**
@ -20,6 +20,7 @@ public class EntityCraftingArm extends Entity
/**
* Used to ID the type of arm
*/
public static enum CraftingArmType
{
ARM, SOLDER, DRILL, BREAKER
@ -91,7 +92,7 @@ public class EntityCraftingArm extends Entity
clawPos.y = nbt.getDouble("clawY");
clawPos.z = nbt.getDouble("clawZ");
if (nbt.tagMap.containsKey("itemStackBeingHeld"))
if (nbt.hasKey("itemStackBeingHeld"))
{
itemStackBeingHeld = ItemStack.loadItemStackFromNBT(nbt.getCompoundTag("itemStackBeingHeld"));
}

View file

@ -1,6 +1,6 @@
package assemblyline.machine.crafter;
package assemblyline.common.machine.crafter;
import net.minecraft.src.Item;
import net.minecraft.item.Item;
public class ItemCrafterArm extends Item
{

View file

@ -1,7 +1,7 @@
package assemblyline.machine.crafter;
package assemblyline.common.machine.crafter;
import net.minecraft.src.EntityItem;
import assemblyline.ai.Task;
import net.minecraft.entity.item.EntityItem;
import assemblyline.common.ai.Task;
/**
* Used by arms to collect items in a specific region.

View file

@ -1,10 +1,10 @@
package assemblyline.machine.crafter;
package assemblyline.common.machine.crafter;
import java.util.List;
import net.minecraft.src.AxisAlignedBB;
import net.minecraft.src.Entity;
import assemblyline.ai.Task;
import net.minecraft.entity.Entity;
import net.minecraft.util.AxisAlignedBB;
import assemblyline.common.ai.Task;
/**
* Used by arms to search for entities in a region

View file

@ -1,8 +1,8 @@
package assemblyline.machine.crafter;
package assemblyline.common.machine.crafter;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.INetworkManager;
import net.minecraft.src.Packet250CustomPayload;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.packet.Packet250CustomPayload;
import universalelectricity.prefab.tile.TileEntityAdvanced;
import com.google.common.io.ByteArrayDataInput;

View file

@ -1,15 +1,15 @@
package assemblyline.machine.crafter;
package assemblyline.common.machine.crafter;
import java.util.EnumSet;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.IInventory;
import net.minecraft.src.INetworkManager;
import net.minecraft.src.ItemStack;
import net.minecraft.src.NBTTagCompound;
import net.minecraft.src.NBTTagList;
import net.minecraft.src.Packet250CustomPayload;
import net.minecraft.src.TileEntity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.packet.Packet250CustomPayload;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.ForgeDirection;
import universalelectricity.core.electricity.ElectricityConnections;
import universalelectricity.core.implement.IConductor;
@ -17,7 +17,7 @@ import universalelectricity.core.implement.IJouleStorage;
import universalelectricity.core.vector.Vector3;
import universalelectricity.prefab.network.IPacketReceiver;
import universalelectricity.prefab.tile.TileEntityElectricityReceiver;
import assemblyline.ai.TaskManager;
import assemblyline.common.ai.TaskManager;
import com.google.common.io.ByteArrayDataInput;

View file

@ -4,6 +4,7 @@ import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.ForgeSubscribe;
import net.minecraftforge.event.world.WorldEvent.Unload;
import universalelectricity.core.electricity.Electricity;
import universalelectricity.core.electricity.ElectricityConnections;
import cpw.mods.fml.common.FMLLog;
import cpw.mods.fml.common.Loader;
@ -26,31 +27,31 @@ public class UELoader
Electricity.instance = new Electricity();
MinecraftForge.EVENT_BUS.register(this);
UniversalElectricity.IC2_RATIO = UniversalElectricity.CONFIGURATION.get("Compatiblity", "IndustrialCraft Conversion Ratio", UniversalElectricity.IC2_RATIO).getDouble(UniversalElectricity.IC2_RATIO);
UniversalElectricity.BC3_RATIO = UniversalElectricity.CONFIGURATION.get("Compatiblity", "BuildCraft Conversion Ratio", UniversalElectricity.BC3_RATIO).getDouble(UniversalElectricity.BC3_RATIO);
UniversalElectricity.TO_IC2_RATIO = 1 / UniversalElectricity.IC2_RATIO;
UniversalElectricity.TO_BC_RATIO = 1 / UniversalElectricity.BC3_RATIO;
if (UniversalElectricity.BC3_RATIO <= 0 || !Loader.isModLoaded("BuildCraft|Core"))
{
FMLLog.fine("Disabled Buildcraft electricity conversion!");
System.out.println("Disabled Buildcraft electricity conversion!");
}
else
{
FMLLog.fine("Buildcraft conversion ratio: " + UniversalElectricity.BC3_RATIO);
System.out.println("Buildcraft conversion ratio: " + UniversalElectricity.BC3_RATIO);
}
if (UniversalElectricity.IC2_RATIO <= 0 || !Loader.isModLoaded("IC2"))
{
FMLLog.fine("Disabled Industrialcraft electricity conversion!");
System.out.println("Disabled Industrialcraft electricity conversion!");
}
else
{
FMLLog.fine("IC2 conversion ratio: " + UniversalElectricity.IC2_RATIO);
System.out.println("IC2 conversion ratio: " + UniversalElectricity.IC2_RATIO);
}
FMLLog.finest("Universal Electricity v" + UniversalElectricity.VERSION + " successfully loaded!");
UniversalElectricity.IC2_RATIO = UniversalElectricity.CONFIGURATION.get("Compatiblity", "IndustrialCraft Conversion Ratio", UniversalElectricity.IC2_RATIO).getInt();
UniversalElectricity.BC3_RATIO = UniversalElectricity.CONFIGURATION.get("Compatiblity", "BuildCraft Conversion Ratio", UniversalElectricity.BC3_RATIO).getInt();
UniversalElectricity.TO_IC2_RATIO = 1 / UniversalElectricity.IC2_RATIO;
UniversalElectricity.TO_BC_RATIO = 1 / UniversalElectricity.BC3_RATIO;
isInitialized = true;
}
}
@ -59,5 +60,6 @@ public class UELoader
public void onWorldUnload(Unload event)
{
Electricity.instance = new Electricity();
ElectricityConnections.clearAll();
}
}

View file

@ -4,8 +4,8 @@ import java.io.File;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.src.MapColor;
import net.minecraft.src.Material;
import net.minecraft.block.material.MapColor;
import net.minecraft.block.material.Material;
import net.minecraftforge.common.Configuration;
import net.minecraftforge.common.ForgeVersion;
import cpw.mods.fml.common.FMLLog;
@ -43,11 +43,11 @@ public class UniversalElectricity
* Conversion ratios between Buildcraft and Industrialcraft energy.
*/
// EU to Watts ratio
public static int IC2_RATIO = 7;
public static double IC2_RATIO = 10;
// MJ to Watts ratio.
public static int BC3_RATIO = 85;
public static int TO_IC2_RATIO = 1 / IC2_RATIO;
public static int TO_BC_RATIO = 1 / BC3_RATIO;
public static double BC3_RATIO = 85;
public static double TO_IC2_RATIO = 1 / IC2_RATIO;
public static double TO_BC_RATIO = 1 / BC3_RATIO;
/**
* Use this material for all your machine blocks. It can be breakable by hand.

View file

@ -4,7 +4,7 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.minecraft.src.TileEntity;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.ForgeDirection;
import universalelectricity.core.implement.IConductor;
import universalelectricity.core.vector.Vector3;
@ -89,7 +89,7 @@ public class Electricity
{
for (byte i = 0; i < 6; i++)
{
conductor.updateConnectionWithoutSplit(Vector3.getConnectorFromSide(((TileEntity) conductor).worldObj, Vector3.get((TileEntity) conductor), ForgeDirection.getOrientation(i)), ForgeDirection.getOrientation(i));
conductor.updateConnectionWithoutSplit(Vector3.getConnectorFromSide(((TileEntity) conductor).worldObj, new Vector3((TileEntity) conductor), ForgeDirection.getOrientation(i)), ForgeDirection.getOrientation(i));
}
}
@ -136,7 +136,5 @@ public class Electricity
ElectricityNetwork network = ((ElectricityNetwork) it.next());
network.resetConductors();
}
System.out.println(electricityNetworks.size());
}
}

View file

@ -3,7 +3,7 @@ package universalelectricity.core.electricity;
import java.util.EnumSet;
import java.util.HashMap;
import net.minecraft.src.TileEntity;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.ForgeDirection;
/**
@ -28,6 +28,11 @@ public class ElectricityConnections
connectors.put(tileEntity, connectableDirections);
}
public static void unregisterConnector(TileEntity tileEntity)
{
connectors.remove(tileEntity);
}
public static boolean isConnector(TileEntity tileEntity)
{
return connectors.containsKey(tileEntity);
@ -35,9 +40,12 @@ public class ElectricityConnections
public static boolean canConnect(TileEntity tileEntity, ForgeDirection side)
{
EnumSet<ForgeDirection> enumSet = connectors.get(tileEntity);
if (isConnector(tileEntity))
{
EnumSet<ForgeDirection> enumSet = connectors.get(tileEntity);
if (enumSet != null) { return enumSet.contains(side); }
if (enumSet != null) { return enumSet.contains(side); }
}
return false;
}
@ -49,4 +57,9 @@ public class ElectricityConnections
{
return connectors.get(tileEntity);
}
public static void clearAll()
{
connectors.clear();
}
}

View file

@ -6,7 +6,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import net.minecraft.src.TileEntity;
import net.minecraft.tileentity.TileEntity;
import universalelectricity.core.implement.IConductor;
import cpw.mods.fml.common.FMLLog;
@ -25,12 +25,17 @@ public class ElectricityNetwork
/**
* Sets this tile entity to start producing energy in this network.
*/
public void startProducing(TileEntity tileEntity, ElectricityPack electricityPack)
{
if (tileEntity != null && electricityPack.getWatts() > 0)
{
this.producers.put(tileEntity, electricityPack);
}
}
public void startProducing(TileEntity tileEntity, double amperes, double voltage)
{
if (tileEntity != null && amperes > 0 && voltage > 0)
{
this.producers.put(tileEntity, new ElectricityPack(amperes, voltage));
}
this.startProducing(tileEntity, new ElectricityPack(amperes, voltage));
}
public boolean isProducing(TileEntity tileEntity)
@ -49,12 +54,17 @@ public class ElectricityNetwork
/**
* Sets this tile entity to start producing energy in this network.
*/
public void startRequesting(TileEntity tileEntity, ElectricityPack electricityPack)
{
if (tileEntity != null && electricityPack.getWatts() > 0)
{
this.consumers.put(tileEntity, electricityPack);
}
}
public void startRequesting(TileEntity tileEntity, double amperes, double voltage)
{
if (tileEntity != null && amperes > 0 && voltage > 0)
{
this.consumers.put(tileEntity, new ElectricityPack(amperes, voltage));
}
this.startRequesting(tileEntity, new ElectricityPack(amperes, voltage));
}
public boolean isRequesting(TileEntity tileEntity)

View file

@ -0,0 +1,56 @@
package universalelectricity.core.electricity;
/**
* A simple way to store electrical data.
*
* @author Calclavia
*
*/
public class ElectricityPack implements Cloneable
{
public double amperes;
public double voltage;
public ElectricityPack(double amperes, double voltage)
{
this.amperes = amperes;
this.voltage = voltage;
}
public ElectricityPack()
{
this(0, 0);
}
public double getWatts()
{
return ElectricInfo.getWatts(amperes, voltage);
}
public double getConductance()
{
return ElectricInfo.getConductance(amperes, voltage);
}
public double getResistance()
{
return ElectricInfo.getResistance(amperes, voltage);
}
@Override
public String toString()
{
return "ElectricityPack [Amps:" + this.amperes + " Volts:" + this.voltage + "]";
}
@Override
public ElectricityPack clone()
{
return new ElectricityPack(this.amperes, this.voltage);
}
public boolean isEquals(ElectricityPack electricityPack)
{
return this.amperes == electricityPack.amperes && this.voltage == electricityPack.voltage;
}
}

View file

@ -1,6 +1,6 @@
package universalelectricity.core.implement;
import net.minecraft.src.TileEntity;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.ForgeDirection;
import universalelectricity.core.electricity.ElectricityNetwork;
@ -52,6 +52,9 @@ public interface IConductor
*/
public void reset();
/**
* Instantly refreshes all connected blocks
*/
public void refreshConnectedBlocks();
/**
@ -63,5 +66,4 @@ public interface IConductor
public void updateConnection(TileEntity tileEntity, ForgeDirection side);
public void updateConnectionWithoutSplit(TileEntity connectorFromSide, ForgeDirection orientation);
}

View file

@ -1,6 +1,6 @@
package universalelectricity.core.implement;
import net.minecraft.src.ItemStack;
import net.minecraft.item.ItemStack;
public interface IItemElectric extends IJouleStorage, IVoltage
{

View file

@ -1,6 +1,6 @@
package universalelectricity.core.vector;
import net.minecraft.src.MathHelper;
import net.minecraft.util.MathHelper;
/**
* Vector2 Class is used for defining objects in a 2D space. Vector2 makes it easier to handle the
@ -100,6 +100,11 @@ public class Vector2 implements Cloneable
return new Vector2(Math.floor(this.x), Math.floor(this.y));
}
public boolean isEquals(Vector2 vector)
{
return this.x == vector.x && this.y == vector.y;
}
@Override
public String toString()
{

View file

@ -2,16 +2,16 @@ package universalelectricity.core.vector;
import java.util.List;
import net.minecraft.src.AxisAlignedBB;
import net.minecraft.src.ChunkCoordinates;
import net.minecraft.src.Entity;
import net.minecraft.src.IBlockAccess;
import net.minecraft.src.MathHelper;
import net.minecraft.src.MovingObjectPosition;
import net.minecraft.src.NBTTagCompound;
import net.minecraft.src.TileEntity;
import net.minecraft.src.Vec3;
import net.minecraft.src.World;
import net.minecraft.entity.Entity;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.util.MathHelper;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeDirection;
import universalelectricity.core.electricity.ElectricityConnections;
@ -46,6 +46,41 @@ public class Vector3 extends Vector2 implements Cloneable
this.z = z;
}
public Vector3(Entity par1)
{
this.x = par1.posX;
this.y = par1.posY;
this.z = par1.posZ;
}
public Vector3(TileEntity par1)
{
this.x = par1.xCoord;
this.y = par1.yCoord;
this.z = par1.zCoord;
}
public Vector3(Vec3 par1)
{
this.x = par1.xCoord;
this.y = par1.yCoord;
this.z = par1.zCoord;
}
public Vector3(MovingObjectPosition par1)
{
this.x = par1.blockX;
this.y = par1.blockY;
this.z = par1.blockZ;
}
public Vector3(ChunkCoordinates par1)
{
this.x = par1.posX;
this.y = par1.posY;
this.z = par1.posZ;
}
/**
* Returns the coordinates as integers
*/
@ -64,6 +99,11 @@ public class Vector3 extends Vector2 implements Cloneable
return (int) Math.floor(this.z);
}
public boolean isEquals(Vector3 vector)
{
return this.x == vector.x && this.y == vector.y && this.z == vector.z;
}
/**
* Makes a new copy of this Vector. Prevents variable referencing problems.
*/
@ -73,33 +113,34 @@ public class Vector3 extends Vector2 implements Cloneable
return new Vector3(this.x, this.y, this.z);
}
/**
* Vector3 Shortcut Functions
*/
@Deprecated
public static Vector3 get(Entity par1)
{
return new Vector3(par1.posX, par1.posY, par1.posZ);
return new Vector3(par1);
}
@Deprecated
public static Vector3 get(TileEntity par1)
{
return new Vector3(par1.xCoord, par1.yCoord, par1.zCoord);
return new Vector3(par1);
}
@Deprecated
public static Vector3 get(Vec3 par1)
{
return new Vector3(par1.xCoord, par1.yCoord, par1.zCoord);
return new Vector3(par1);
}
@Deprecated
public static Vector3 get(MovingObjectPosition par1)
{
return new Vector3(par1.blockX, par1.blockY, par1.blockZ);
return new Vector3(par1);
}
@Deprecated
public static Vector3 get(ChunkCoordinates par1)
{
return new Vector3(par1.posX, par1.posY, par1.posZ);
return new Vector3(par1);
}
public int getBlockID(IBlockAccess world)

View file

@ -1,9 +1,9 @@
package universalelectricity.prefab;
import net.minecraft.src.BlockContainer;
import net.minecraft.src.Material;
import net.minecraft.src.TileEntity;
import net.minecraft.src.World;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import universalelectricity.core.implement.IConductor;
public abstract class BlockConductor extends BlockContainer
@ -30,8 +30,6 @@ public abstract class BlockConductor extends BlockContainer
((IConductor) tileEntity).refreshConnectedBlocks();
}
}
world.scheduleBlockUpdate(x, y, z, this.blockID, this.tickRate());
}
/**
@ -50,7 +48,5 @@ public abstract class BlockConductor extends BlockContainer
((IConductor) tileEntity).refreshConnectedBlocks();
}
}
world.markBlockForUpdate(x, y, z);
}
}

View file

@ -2,16 +2,16 @@ package universalelectricity.prefab;
import java.util.Random;
import net.minecraft.src.BlockContainer;
import net.minecraft.src.CreativeTabs;
import net.minecraft.src.EntityItem;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.IInventory;
import net.minecraft.src.ItemStack;
import net.minecraft.src.Material;
import net.minecraft.src.NBTTagCompound;
import net.minecraft.src.TileEntity;
import net.minecraft.src.World;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import universalelectricity.core.implement.IItemElectric;
import universalelectricity.prefab.implement.IToolConfigurator;

View file

@ -2,14 +2,14 @@ package universalelectricity.prefab;
import java.util.List;
import net.minecraft.src.CreativeTabs;
import net.minecraft.src.Entity;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.Item;
import net.minecraft.src.ItemStack;
import net.minecraft.src.NBTTagCompound;
import net.minecraft.src.NBTTagFloat;
import net.minecraft.src.World;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagFloat;
import net.minecraft.world.World;
import universalelectricity.core.electricity.ElectricInfo;
import universalelectricity.core.electricity.ElectricInfo.ElectricUnit;
import universalelectricity.core.implement.IItemElectric;

View file

@ -4,9 +4,9 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.minecraft.src.CraftingManager;
import net.minecraft.src.IRecipe;
import net.minecraft.src.ItemStack;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.IRecipe;
import net.minecraftforge.common.Configuration;
import cpw.mods.fml.common.registry.GameRegistry;

View file

@ -1,8 +1,8 @@
package universalelectricity.prefab;
import net.minecraft.src.IInventory;
import net.minecraft.src.ItemStack;
import net.minecraft.src.Slot;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
import universalelectricity.core.implement.IItemElectric;
/**

View file

@ -3,7 +3,7 @@ package universalelectricity.prefab;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.src.DamageSource;
import net.minecraft.util.DamageSource;
import cpw.mods.fml.common.registry.LanguageRegistry;
public class UEDamageSource extends DamageSource

View file

@ -1,8 +1,8 @@
package universalelectricity.prefab;
import net.minecraft.src.Block;
import net.minecraft.src.CreativeTabs;
import net.minecraft.src.ItemStack;
import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemStack;
import cpw.mods.fml.common.registry.LanguageRegistry;
public class UETab extends CreativeTabs

View file

@ -7,7 +7,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import net.minecraft.src.EntityPlayer;
import net.minecraft.entity.player.EntityPlayer;
import cpw.mods.fml.common.FMLLog;
import cpw.mods.fml.common.IPlayerTracker;
import cpw.mods.fml.common.registry.GameRegistry;

View file

@ -1,6 +1,6 @@
package universalelectricity.prefab.implement;
import net.minecraft.src.EntityPlayer;
import net.minecraft.entity.player.EntityPlayer;
/**
* Code written by Buildcraft. Applied to items that acts as a block configurator such as wrenches,

View file

@ -3,11 +3,11 @@ package universalelectricity.prefab.network;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.NetLoginHandler;
import net.minecraft.network.packet.NetHandler;
import net.minecraft.network.packet.Packet1Login;
import net.minecraft.server.MinecraftServer;
import net.minecraft.src.INetworkManager;
import net.minecraft.src.NetHandler;
import net.minecraft.src.NetLoginHandler;
import net.minecraft.src.Packet1Login;
import cpw.mods.fml.common.network.IConnectionHandler;
import cpw.mods.fml.common.network.Player;

View file

@ -1,8 +1,8 @@
package universalelectricity.prefab.network;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.INetworkManager;
import net.minecraft.src.Packet250CustomPayload;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.packet.Packet250CustomPayload;
import com.google.common.io.ByteArrayDataInput;

View file

@ -4,12 +4,12 @@ import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.INetworkManager;
import net.minecraft.src.Packet;
import net.minecraft.src.Packet250CustomPayload;
import net.minecraft.src.TileEntity;
import net.minecraft.src.World;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.packet.Packet;
import net.minecraft.network.packet.Packet250CustomPayload;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import universalelectricity.core.vector.Vector3;
import com.google.common.io.ByteArrayDataInput;

View file

@ -1,7 +1,7 @@
package universalelectricity.prefab.tile;
import net.minecraft.src.Block;
import net.minecraft.src.TileEntity;
import net.minecraft.block.Block;
import net.minecraft.tileentity.TileEntity;
/**
* A TileEntity with some pre-added functionalities.
@ -32,7 +32,7 @@ public abstract class TileEntityAdvanced extends TileEntity
/**
* Called on the TileEntity's first tick.
*/
protected void initiate()
public void initiate()
{
}

View file

@ -0,0 +1,181 @@
package universalelectricity.prefab.tile;
import java.util.EnumSet;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.packet.Packet;
import net.minecraft.network.packet.Packet250CustomPayload;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.ForgeDirection;
import universalelectricity.core.electricity.Electricity;
import universalelectricity.core.electricity.ElectricityConnections;
import universalelectricity.core.electricity.ElectricityNetwork;
import universalelectricity.core.implement.IConductor;
import universalelectricity.core.vector.Vector3;
import universalelectricity.prefab.network.IPacketReceiver;
import universalelectricity.prefab.network.PacketManager;
import com.google.common.io.ByteArrayDataInput;
/**
* This tile entity pre-fabricated for all conductors.
*
* @author Calclavia
*
*/
public abstract class TileEntityConductor extends TileEntityAdvanced implements IConductor, IPacketReceiver
{
private ElectricityNetwork network;
/**
* Used client side to render.
*/
public boolean[] visuallyConnected = { false, false, false, false, false, false };
/**
* Stores information on the blocks that this conductor is connected to.
*/
public TileEntity[] connectedBlocks = { null, null, null, null, null, null };
protected String channel = "";
public TileEntityConductor()
{
ElectricityConnections.registerConnector(this, EnumSet.range(ForgeDirection.DOWN, ForgeDirection.EAST));
this.reset();
}
@Override
public ElectricityNetwork getNetwork()
{
return this.network;
}
@Override
public void setNetwork(ElectricityNetwork network)
{
this.network = network;
}
@Override
public TileEntity[] getConnectedBlocks()
{
return this.connectedBlocks;
}
@Override
public void updateConnection(TileEntity tileEntity, ForgeDirection side)
{
if (!this.worldObj.isRemote)
{
if (tileEntity != null)
{
if (ElectricityConnections.canConnect(tileEntity, side.getOpposite()))
{
this.connectedBlocks[side.ordinal()] = tileEntity;
this.visuallyConnected[side.ordinal()] = true;
if (tileEntity.getClass() == this.getClass())
{
Electricity.instance.mergeConnection(this.getNetwork(), ((IConductor) tileEntity).getNetwork());
}
return;
}
}
if (this.connectedBlocks[side.ordinal()] != null)
{
if (this.connectedBlocks[side.ordinal()] instanceof IConductor)
{
Electricity.instance.splitConnection(this, (IConductor) this.getConnectedBlocks()[side.ordinal()]);
}
}
this.connectedBlocks[side.ordinal()] = null;
this.visuallyConnected[side.ordinal()] = false;
}
}
@Override
public void updateConnectionWithoutSplit(TileEntity tileEntity, ForgeDirection side)
{
if (!this.worldObj.isRemote)
{
if (tileEntity != null)
{
if (ElectricityConnections.canConnect(tileEntity, side.getOpposite()))
{
this.connectedBlocks[side.ordinal()] = tileEntity;
this.visuallyConnected[side.ordinal()] = true;
if (tileEntity.getClass() == this.getClass())
{
Electricity.instance.mergeConnection(this.getNetwork(), ((IConductor) tileEntity).getNetwork());
}
return;
}
}
this.connectedBlocks[side.ordinal()] = null;
this.visuallyConnected[side.ordinal()] = false;
}
}
@Override
public void handlePacketData(INetworkManager network, int type, Packet250CustomPayload packet, EntityPlayer player, ByteArrayDataInput dataStream)
{
if (this.worldObj.isRemote)
{
this.visuallyConnected[0] = dataStream.readBoolean();
this.visuallyConnected[1] = dataStream.readBoolean();
this.visuallyConnected[2] = dataStream.readBoolean();
this.visuallyConnected[3] = dataStream.readBoolean();
this.visuallyConnected[4] = dataStream.readBoolean();
this.visuallyConnected[5] = dataStream.readBoolean();
}
}
@Override
public void initiate()
{
this.refreshConnectedBlocks();
}
@Override
public void reset()
{
this.network = null;
if (Electricity.instance != null)
{
Electricity.instance.registerConductor(this);
}
}
@Override
public void refreshConnectedBlocks()
{
if (this.worldObj != null)
{
if (!this.worldObj.isRemote)
{
for (byte i = 0; i < 6; i++)
{
this.updateConnection(Vector3.getConnectorFromSide(this.worldObj, new Vector3(this), ForgeDirection.getOrientation(i)), ForgeDirection.getOrientation(i));
}
this.worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord);
}
}
}
@Override
public Packet getDescriptionPacket()
{
return PacketManager.getPacket(this.channel, this, this.visuallyConnected[0], this.visuallyConnected[1], this.visuallyConnected[2], this.visuallyConnected[3], this.visuallyConnected[4], this.visuallyConnected[5]);
}
}

View file

@ -25,7 +25,7 @@ public abstract class TileEntityElectricityReceiver extends TileEntityDisableabl
{
super.updateEntity();
}
@Override
public double getVoltage()
{

View file

@ -3,9 +3,9 @@ package universalelectricity.prefab.vector;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.src.AxisAlignedBB;
import net.minecraft.src.Entity;
import net.minecraft.src.World;
import net.minecraft.entity.Entity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import universalelectricity.core.vector.Vector3;
/**