Here you go, elusivehawk.

changelog later.
This commit is contained in:
Aidan Brady 2012-11-01 21:30:40 -04:00
parent d7782bcdec
commit 8b2a156f79
40 changed files with 1960 additions and 291 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

BIN
bin/minecraft/gui/GuiWasher.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 820 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View file

@ -0,0 +1,105 @@
package hawk.api;
/**
*
* Used in order to store Endium Teleporter coordinates.
*
* @author Elusivehawk
*/
public class EndiumTeleporterCoords
{
private int xCoord;
private int yCoord;
private int zCoord;
private int dimensionID;
private int symbolA;
private int symbolB;
private int symbolC;
public EndiumTeleporterCoords(int x, int y, int z, int dimension, int symbol1, int symbol2, int symbol3)
{
if (symbol1 != 0 && symbol2 != 0 && symbol3 != 0)
{
this.xCoord = x;
this.yCoord = y;
this.zCoord = z;
this.dimensionID = dimension;
this.symbolA = symbol1;
this.symbolB = symbol2;
this.symbolC = symbol3;
}
else
{
throw new RuntimeException("Hawk's Machinery: Symbol cannot be 0!");
}
}
public boolean isEqual(int symbol1, int symbol2, int symbol3)
{
return this.symbolA == symbol1 && this.symbolB == symbol2 && this.symbolC == symbol3;
}
public boolean isEqualXYZ(int x, int y, int z)
{
return this.xCoord == x && this.yCoord == y && this.zCoord == z;
}
public int x()
{
return this.xCoord;
}
public int y()
{
return this.yCoord;
}
public int z()
{
return this.zCoord;
}
public int symA()
{
return this.symbolA;
}
public int symB()
{
return this.symbolB;
}
public int symC()
{
return this.symbolC;
}
public int dimension()
{
return this.dimensionID;
}
public void setSymbolA(int symbol)
{
this.symbolA = symbol;
}
public void setSymbolB(int symbol)
{
this.symbolB = symbol;
}
public void setSymbolC(int symbol)
{
this.symbolC = symbol;
}
public void setDimension(int dimension)
{
this.dimensionID = dimension;
}
}

View file

@ -0,0 +1,201 @@
package hawk.api;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import net.minecraft.src.Block;
import net.minecraft.src.Item;
import net.minecraft.src.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
/**
*
*
*
* @author Elusivehawk
*/
public class ProcessingRecipes
{
private static Map washerSecondaries = new HashMap();
private static Map washerRarities = new HashMap();
private static Map quantityMapping = new HashMap();
/**
*
* Instead of IDs, processing now uses enums.
*
* @author Elusivehawk
*/
public enum EnumProcessing
{
CRUSHING_EXPLOSIVES(new HashMap()),
WASHING(new HashMap()),
STAR_FORGE(new HashMap()),
ENDIUM_FORGE(new HashMap()),
HM_E2MM(new HashMap());
private Map processingList;
EnumProcessing(Map recipeList)
{
processingList = recipeList;
}
public Map getRecipeList()
{
return processingList;
}
}
/**
*
* Adds a processing recipe.
*
* @param input The input.
* @param output The output.
* @param processType What type of processing this recipe is for.
*/
public static void addHMProcessingRecipe(ItemStack input, ItemStack output, EnumProcessing processType)
{
processType.getRecipeList().put(Arrays.asList(input.getItem(), input.isItemStackDamageable() ? 0 : input.getItemDamage(), input.isItemEnchanted(), input.stackTagCompound != null), output);
quantityMapping.put(Arrays.asList(input.getItem(), input.getItemDamage(), processType), (Integer)input.stackSize);
}
public static void addHMProcessingRecipe(Item input, ItemStack output, EnumProcessing processType)
{
addHMProcessingRecipe(new ItemStack(input), output, processType);
}
public static void addHMProcessingRecipe(Item input, Item output, EnumProcessing processType)
{
addHMProcessingRecipe(new ItemStack(input), new ItemStack(output), processType);
}
public static void addHMProcessingRecipe(Item input, Block output, EnumProcessing processType)
{
addHMProcessingRecipe(new ItemStack(input), new ItemStack(output), processType);
}
public static void addHMProcessingRecipe(Block input, ItemStack output, EnumProcessing processType)
{
addHMProcessingRecipe(new ItemStack(input), output, processType);
}
public static void addHMProcessingRecipe(Block input, Item output, EnumProcessing processType)
{
addHMProcessingRecipe(new ItemStack(input), new ItemStack(output), processType);
}
public static void addHMProcessingRecipe(Block input, Block output, EnumProcessing processType)
{
addHMProcessingRecipe(new ItemStack(input), new ItemStack(output), processType);
}
/**
*
* Forge Ore Dictionary supported version.
*
* @param input
* @param output
* @param processingType
*/
public static void addHMFoDProcessingRecipe(String input, ItemStack output, EnumProcessing processType)
{
for (ItemStack ore : OreDictionary.getOres(input))
{
if (ore != null)
{
addHMProcessingRecipe(ore, output, processType);
}
}
}
public static void addHMWashingSecondary(ItemStack input, Object output, boolean isCommon)
{
if (isCommon)
{
washerSecondaries.put(Arrays.asList(input.getItem(), input.getItemDamage()), output);
}
else
{
washerRarities.put(Arrays.asList(input.getItem(), input.getItemDamage()), output);
}
}
public static ItemStack getResult(ItemStack input, EnumProcessing processType)
{
if (input == null)
{
return null;
}
else
{
ItemStack output = (ItemStack)processType.getRecipeList().get(Arrays.asList(input.getItem(), input.isItemStackDamageable() ? 0 : input.getItemDamage(), input.isItemEnchanted(), input.stackTagCompound != null));
if (output != null)
{
if (input.isItemEqual(output) && input.isItemStackDamageable() && output.isItemStackDamageable())
{
output.setItemDamage(input.getItemDamage());
}
}
return output;
}
}
public static int getQuantity(ItemStack item, EnumProcessing processType)
{
return (Integer)quantityMapping.get(Arrays.asList(item.getItem(), item.getItemDamage(), processType));
}
public static ItemStack getWashingSecondaryResult(ItemStack item, Random random)
{
int secondaryChance = random.nextInt(100);
if (item == null)
{
return null;
}
else
{
if (secondaryChance < 5)
{
ItemStack ret = (ItemStack)washerRarities.get(Arrays.asList(item.getItem(), item.getItemDamage()));
if (ret != null)
{
return ret;
}
}
else if (secondaryChance < 10)
{
ItemStack ret = (ItemStack)washerSecondaries.get(Arrays.asList(item.getItem(), item.getItemDamage()));
if (ret != null)
{
return ret;
}
}
return null;
}
}
}

View file

@ -0,0 +1,106 @@
package hawk.api;
import java.util.List;
import java.util.Random;
import net.minecraft.server.MinecraftServer;
import net.minecraft.src.Entity;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.EntityPlayerMP;
import net.minecraft.src.ServerConfigurationManager;
import net.minecraft.src.World;
import net.minecraftforge.common.DimensionManager;
/**
*
*
*
* @author Elusivehawk
*/
public class TeleportationHelper
{
private List<EndiumTeleporterCoords> coordsList;
private static TeleportationHelper INSTANCE;
public TeleportationHelper()
{
INSTANCE = this;
}
public boolean registerCoords(EndiumTeleporterCoords coords)
{
for (EndiumTeleporterCoords otherCoords : this.coordsList)
{
if (otherCoords.isEqual(coords.symA(), coords.symB(), coords.symC()))
{
return false;
}
else
{
continue;
}
}
this.coordsList.add(coords);
return true;
}
public boolean removeCoords(EndiumTeleporterCoords coords)
{
return this.coordsList.remove(coords);
}
public EndiumTeleporterCoords getCoordsFromSymbols(int sym1, int sym2, int sym3)
{
for (EndiumTeleporterCoords coords : this.coordsList)
{
if (coords.isEqual(sym1, sym2, sym3))
{
return coords;
}
}
return null;
}
public void teleportEntity(Entity entity, EndiumTeleporterCoords coords)
{
if (new Random().nextInt(100) > 10)
{
entity.travelToTheEnd(entity.dimension);
return;
}
if (!entity.worldObj.isRemote)
{
if (coords.dimension() != entity.dimension)
{
ServerConfigurationManager manager = MinecraftServer.getServer().getConfigurationManager();
if (entity instanceof EntityPlayerMP)
{
manager.transferPlayerToDimension(((EntityPlayerMP)entity), coords.dimension());
}
else
{
manager.func_82448_a(entity, coords.dimension(), DimensionManager.getWorld(entity.dimension), DimensionManager.getWorld(coords.dimension()));
}
}
entity.setPosition(coords.x() - 0.5, coords.y(), coords.z() - 0.5);
}
}
public static TeleportationHelper instance()
{
return INSTANCE;
}
}

View file

@ -7,6 +7,9 @@ import cpw.mods.fml.common.Side;
import cpw.mods.fml.common.asm.SideOnly; import cpw.mods.fml.common.asm.SideOnly;
import net.minecraft.src.*; import net.minecraft.src.*;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
import net.uberkat.obsidian.hawk.common.TileEntityDamagableMachine;
import net.uberkat.obsidian.hawk.common.TileEntityTeleporter;
import net.uberkat.obsidian.hawk.common.TileEntityWasher;
/** /**
* Block class for handling multiple machine block IDs. * Block class for handling multiple machine block IDs.
@ -15,6 +18,8 @@ import net.minecraftforge.common.ForgeDirection;
* 2: Combiner * 2: Combiner
* 3: Crusher * 3: Crusher
* 4: Theoretical Elementizer * 4: Theoretical Elementizer
* 5: Washer
* 6: Teleporter
* @author AidanBrady * @author AidanBrady
* *
*/ */
@ -33,54 +38,62 @@ public class BlockMachine extends BlockContainer
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLiving entityliving) public void onBlockPlacedBy(World world, int x, int y, int z, EntityLiving entityliving)
{ {
TileEntityBasicMachine tileEntity = (TileEntityBasicMachine)world.getBlockTileEntity(x, y, z); if(!(world.getBlockMetadata(x, y, z) == 6))
int side = MathHelper.floor_double((double)(entityliving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; {
int change = 3; TileEntityBasicMachine tileEntity = (TileEntityBasicMachine)world.getBlockTileEntity(x, y, z);
int side = MathHelper.floor_double((double)(entityliving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
switch(side) int change = 3;
{
case 0: change = 2; break; switch(side)
case 1: change = 5; break; {
case 2: change = 3; break; case 0: change = 2; break;
case 3: change = 4; break; case 1: change = 5; break;
} case 2: change = 3; break;
case 3: change = 4; break;
tileEntity.setFacing((short)change); }
tileEntity.setFacing((short)change);
}
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void randomDisplayTick(World world, int x, int y, int z, Random random) public void randomDisplayTick(World world, int x, int y, int z, Random random)
{ {
TileEntityBasicMachine tileEntity = (TileEntityBasicMachine)world.getBlockTileEntity(x, y, z); int meta = world.getBlockMetadata(x, y, z);
if (isActive(world, x, y, z))
{ if(meta != 5 && meta != 6)
float xRandom = (float)x + 0.5F; {
float yRandom = (float)y + 0.0F + random.nextFloat() * 6.0F / 16.0F; TileEntityBasicMachine tileEntity = (TileEntityBasicMachine)world.getBlockTileEntity(x, y, z);
float zRandom = (float)z + 0.5F; if (isActive(world, x, y, z))
float iRandom = 0.52F; {
float jRandom = random.nextFloat() * 0.6F - 0.3F; float xRandom = (float)x + 0.5F;
float yRandom = (float)y + 0.0F + random.nextFloat() * 6.0F / 16.0F;
if (tileEntity.facing == 4) float zRandom = (float)z + 0.5F;
{ float iRandom = 0.52F;
world.spawnParticle("smoke", (double)(xRandom - iRandom), (double)yRandom, (double)(zRandom + jRandom), 0.0D, 0.0D, 0.0D); float jRandom = random.nextFloat() * 0.6F - 0.3F;
world.spawnParticle("reddust", (double)(xRandom - iRandom), (double)yRandom, (double)(zRandom + jRandom), 0.0D, 0.0D, 0.0D);
} if (tileEntity.facing == 4)
else if (tileEntity.facing == 5) {
{ world.spawnParticle("smoke", (double)(xRandom - iRandom), (double)yRandom, (double)(zRandom + jRandom), 0.0D, 0.0D, 0.0D);
world.spawnParticle("smoke", (double)(xRandom + iRandom), (double)yRandom, (double)(zRandom + jRandom), 0.0D, 0.0D, 0.0D); world.spawnParticle("reddust", (double)(xRandom - iRandom), (double)yRandom, (double)(zRandom + jRandom), 0.0D, 0.0D, 0.0D);
world.spawnParticle("reddust", (double)(xRandom + iRandom), (double)yRandom, (double)(zRandom + jRandom), 0.0D, 0.0D, 0.0D); }
} else if (tileEntity.facing == 5)
else if (tileEntity.facing == 2) {
{ world.spawnParticle("smoke", (double)(xRandom + iRandom), (double)yRandom, (double)(zRandom + jRandom), 0.0D, 0.0D, 0.0D);
world.spawnParticle("smoke", (double)(xRandom + jRandom), (double)yRandom, (double)(zRandom - iRandom), 0.0D, 0.0D, 0.0D); world.spawnParticle("reddust", (double)(xRandom + iRandom), (double)yRandom, (double)(zRandom + jRandom), 0.0D, 0.0D, 0.0D);
world.spawnParticle("reddust", (double)(xRandom + jRandom), (double)yRandom, (double)(zRandom - iRandom), 0.0D, 0.0D, 0.0D); }
} else if (tileEntity.facing == 2)
else if (tileEntity.facing == 3) {
{ world.spawnParticle("smoke", (double)(xRandom + jRandom), (double)yRandom, (double)(zRandom - iRandom), 0.0D, 0.0D, 0.0D);
world.spawnParticle("smoke", (double)(xRandom + jRandom), (double)yRandom, (double)(zRandom + iRandom), 0.0D, 0.0D, 0.0D); world.spawnParticle("reddust", (double)(xRandom + jRandom), (double)yRandom, (double)(zRandom - iRandom), 0.0D, 0.0D, 0.0D);
world.spawnParticle("reddust", (double)(xRandom + jRandom), (double)yRandom, (double)(zRandom + iRandom), 0.0D, 0.0D, 0.0D); }
} else if (tileEntity.facing == 3)
} {
world.spawnParticle("smoke", (double)(xRandom + jRandom), (double)yRandom, (double)(zRandom + iRandom), 0.0D, 0.0D, 0.0D);
world.spawnParticle("reddust", (double)(xRandom + jRandom), (double)yRandom, (double)(zRandom + iRandom), 0.0D, 0.0D, 0.0D);
}
}
}
} }
public int getBlockTextureFromSideAndMetadata(int side, int meta) public int getBlockTextureFromSideAndMetadata(int side, int meta)
@ -139,6 +152,34 @@ public class BlockMachine extends BlockContainer
return 19; return 19;
} }
} }
else if(meta == 5)
{
if(side == 1)
{
return 29;
}
else if(side == 3)
{
return 30;
}
else {
return 31;
}
}
else if(meta == 6)
{
if(side == 0)
{
return 34;
}
else if(side == 1)
{
return 32;
}
else {
return 33;
}
}
else { else {
return 0; return 0;
} }
@ -211,6 +252,34 @@ public class BlockMachine extends BlockContainer
} }
} }
} }
else if(metadata == 5)
{
if(side == 1)
{
return 29;
}
else if(side == tileEntity.facing)
{
return 30;
}
else {
return 31;
}
}
else if(metadata == 6)
{
if(side == 0)
{
return 34;
}
else if(side == 1)
{
return 32;
}
else {
return 33;
}
}
else { else {
return 0; return 0;
} }
@ -229,6 +298,8 @@ public class BlockMachine extends BlockContainer
list.add(new ItemStack(i, 1, 2)); list.add(new ItemStack(i, 1, 2));
list.add(new ItemStack(i, 1, 3)); list.add(new ItemStack(i, 1, 3));
list.add(new ItemStack(i, 1, 4)); list.add(new ItemStack(i, 1, 4));
list.add(new ItemStack(i, 1, 5));
list.add(new ItemStack(i, 1, 6));
} }
/** /**
@ -298,12 +369,13 @@ public class BlockMachine extends BlockContainer
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityplayer, int facing, float playerX, float playerY, float playerZ) public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityplayer, int facing, float playerX, float playerY, float playerZ)
{ {
if (world.isRemote) if(world.isRemote)
{ {
return true; return false;
} }
else
{ //If the block isn't a washer
else {
TileEntityBasicMachine tileEntity = (TileEntityBasicMachine)world.getBlockTileEntity(x, y, z); TileEntityBasicMachine tileEntity = (TileEntityBasicMachine)world.getBlockTileEntity(x, y, z);
int metadata = world.getBlockMetadata(x, y, z); int metadata = world.getBlockMetadata(x, y, z);
@ -318,15 +390,16 @@ public class BlockMachine extends BlockContainer
else if(metadata == 2) id = 5; else if(metadata == 2) id = 5;
else if(metadata == 3) id = 6; else if(metadata == 3) id = 6;
else if(metadata == 4) id = 7; else if(metadata == 4) id = 7;
else if(metadata == 5) id = 10;
else if(metadata == 6) id = 11;
entityplayer.openGui(ObsidianIngots.instance, id, world, x, y, z); entityplayer.openGui(ObsidianIngots.instance, id, world, x, y, z);
return true;
} }
else { return false;
return false;
}
} }
return true; return true;
} }
} }
public String getTextureFile() public String getTextureFile()
@ -356,6 +429,14 @@ public class BlockMachine extends BlockContainer
{ {
return new TileEntityTheoreticalElementizer(); return new TileEntityTheoreticalElementizer();
} }
else if(metadata == MachineType.WASHER.index)
{
return new TileEntityWasher();
}
else if(metadata == MachineType.TELEPORTER.index)
{
return new TileEntityTeleporter();
}
else { else {
return null; return null;
} }
@ -373,7 +454,9 @@ public class BlockMachine extends BlockContainer
PLATINUM_COMPRESSOR(1), PLATINUM_COMPRESSOR(1),
COMBINER(2), COMBINER(2),
CRUSHER(3), CRUSHER(3),
THEORETICAL_ELEMENTIZER(4); THEORETICAL_ELEMENTIZER(4),
WASHER(5),
TELEPORTER(6);
private int index; private int index;
@ -381,5 +464,10 @@ public class BlockMachine extends BlockContainer
{ {
index = i; index = i;
} }
public String toString()
{
return Integer.toString(index);
}
} }
} }

View file

@ -7,6 +7,8 @@ import cpw.mods.fml.common.Side;
import cpw.mods.fml.common.asm.SideOnly; import cpw.mods.fml.common.asm.SideOnly;
import net.minecraft.src.*; import net.minecraft.src.*;
import net.minecraftforge.common.ForgeChunkManager;
import net.uberkat.obsidian.hawk.common.TileEntityEndiumChunkloader;
/** /**
* Block class for handling multiple metal block IDs. * Block class for handling multiple metal block IDs.
@ -15,11 +17,14 @@ import net.minecraft.src.*;
* 2: Refined Obsidian * 2: Refined Obsidian
* 3: Coal Block * 3: Coal Block
* 4: Refined Glowstone * 4: Refined Glowstone
* 5: Endium Chunkloader
* @author AidanBrady * @author AidanBrady
* *
*/ */
public class BlockMulti extends Block public class BlockMulti extends Block
{ {
public TileEntityEndiumChunkloader tileChunkloader;
public BlockMulti(int i) public BlockMulti(int i)
{ {
super(i, Material.iron); super(i, Material.iron);
@ -60,6 +65,7 @@ public class BlockMulti extends Block
list.add(new ItemStack(i, 1, 2)); list.add(new ItemStack(i, 1, 2));
list.add(new ItemStack(i, 1, 3)); list.add(new ItemStack(i, 1, 3));
list.add(new ItemStack(i, 1, 4)); list.add(new ItemStack(i, 1, 4));
list.add(new ItemStack(i, 1, 5));
} }
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityplayer, int i1, float f1, float f2, float f3) public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityplayer, int i1, float f1, float f2, float f3)
@ -86,9 +92,78 @@ public class BlockMulti extends Block
return 8; return 8;
case 4: case 4:
return 15; return 15;
case 5:
return 15;
} }
return 0; return 0;
} }
public boolean hasTileEntity(int metadata)
{
return metadata == 5;
}
public TileEntity createTileEntity(World world, int metadata)
{
if(metadata == 5)
{
tileChunkloader = new TileEntityEndiumChunkloader();
return tileChunkloader;
}
return null;
}
public void randomDisplayTick(World world, int x, int y, int z, Random random)
{
if (world.isBlockIndirectlyGettingPowered(x, y + 1, z) && world.getBlockMetadata(z, y, z) == 5)
{
Chunk chunkInside = world.getChunkFromBlockCoords(x, z);
int xPosMax = chunkInside.xPosition << 4;
int zPosMax = chunkInside.zPosition << 4;
int xPosMin = xPosMax + 16;
int zPosMin = zPosMax + 16;
world.spawnParticle("portal", xPosMax + 0.5, y + 1, zPosMax + 0.5, 0, 0, 0);
world.spawnParticle("portal", xPosMax + 1.5, y + 1, zPosMax + 0.5, 0, 0, 0);
world.spawnParticle("portal", xPosMax + 2.5, y + 1, zPosMax + 0.5, 0, 0, 0);
world.spawnParticle("portal", xPosMax + 3.5, y + 1, zPosMax + 0.5, 0, 0, 0);
world.spawnParticle("portal", xPosMax + 4.5, y + 1, zPosMax + 0.5, 0, 0, 0);
world.spawnParticle("portal", xPosMax + 0.5, y + 1, zPosMax + 1.5, 0, 0, 0);
world.spawnParticle("portal", xPosMax + 0.5, y + 1, zPosMax + 2.5, 0, 0, 0);
world.spawnParticle("portal", xPosMax + 0.5, y + 1, zPosMax + 3.5, 0, 0, 0);
world.spawnParticle("portal", xPosMax + 0.5, y + 1, zPosMax + 4.5, 0, 0, 0);
world.spawnParticle("portal", xPosMin - 0.5, y + 1, zPosMax + 0.5, 0, 0, 0);
world.spawnParticle("portal", xPosMin - 1.5, y + 1, zPosMax + 0.5, 0, 0, 0);
world.spawnParticle("portal", xPosMin - 2.5, y + 1, zPosMax + 0.5, 0, 0, 0);
world.spawnParticle("portal", xPosMin - 3.5, y + 1, zPosMax + 0.5, 0, 0, 0);
world.spawnParticle("portal", xPosMin - 4.5, y + 1, zPosMax + 0.5, 0, 0, 0);
world.spawnParticle("portal", xPosMin - 0.5, y + 1, zPosMax + 1.5, 0, 0, 0);
world.spawnParticle("portal", xPosMin - 0.5, y + 1, zPosMax + 2.5, 0, 0, 0);
world.spawnParticle("portal", xPosMin - 0.5, y + 1, zPosMax + 3.5, 0, 0, 0);
world.spawnParticle("portal", xPosMin - 0.5, y + 1, zPosMax + 4.5, 0, 0, 0);
world.spawnParticle("portal", xPosMax + 0.5, y + 1, zPosMin - 0.5, 0, 0, 0);
world.spawnParticle("portal", xPosMax + 1.5, y + 1, zPosMin - 0.5, 0, 0, 0);
world.spawnParticle("portal", xPosMax + 2.5, y + 1, zPosMin - 0.5, 0, 0, 0);
world.spawnParticle("portal", xPosMax + 3.5, y + 1, zPosMin - 0.5, 0, 0, 0);
world.spawnParticle("portal", xPosMax + 4.5, y + 1, zPosMin - 0.5, 0, 0, 0);
world.spawnParticle("portal", xPosMax + 0.5, y + 1, zPosMin - 1.5, 0, 0, 0);
world.spawnParticle("portal", xPosMax + 0.5, y + 1, zPosMin - 2.5, 0, 0, 0);
world.spawnParticle("portal", xPosMax + 0.5, y + 1, zPosMin - 3.5, 0, 0, 0);
world.spawnParticle("portal", xPosMax + 0.5, y + 1, zPosMin - 4.5, 0, 0, 0);
world.spawnParticle("portal", xPosMin - 0.5, y + 1, zPosMin - 0.5, 0, 0, 0);
world.spawnParticle("portal", xPosMin - 1.5, y + 1, zPosMin - 0.5, 0, 0, 0);
world.spawnParticle("portal", xPosMin - 2.5, y + 1, zPosMin - 0.5, 0, 0, 0);
world.spawnParticle("portal", xPosMin - 3.5, y + 1, zPosMin - 0.5, 0, 0, 0);
world.spawnParticle("portal", xPosMin - 4.5, y + 1, zPosMin - 0.5, 0, 0, 0);
world.spawnParticle("portal", xPosMin - 0.5, y + 1, zPosMin - 1.5, 0, 0, 0);
world.spawnParticle("portal", xPosMin - 0.5, y + 1, zPosMin - 2.5, 0, 0, 0);
world.spawnParticle("portal", xPosMin - 0.5, y + 1, zPosMin - 3.5, 0, 0, 0);
world.spawnParticle("portal", xPosMin - 0.5, y + 1, zPosMin - 4.5, 0, 0, 0);
}
}
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLiving entityliving) public void onBlockPlacedBy(World world, int x, int y, int z, EntityLiving entityliving)
{ {
@ -96,6 +171,11 @@ public class BlockMulti extends Block
world.updateAllLightTypes(x, y, z); world.updateAllLightTypes(x, y, z);
} }
public void onBlockHarvested(World par1World, int par2, int par3, int par4, int par5, EntityPlayer par6EntityPlayer)
{
ForgeChunkManager.releaseTicket(tileChunkloader.heldChunk);
}
public String getTextureFile() public String getTextureFile()
{ {
return "/textures/terrain.png"; return "/textures/terrain.png";

View file

@ -9,6 +9,7 @@ import net.minecraft.src.*;
/** /**
* Block class for handling multiple ore block IDs. * Block class for handling multiple ore block IDs.
* 0: Platinum Ore * 0: Platinum Ore
* 1: Endium Ore
* @author AidanBrady * @author AidanBrady
* *
*/ */
@ -23,12 +24,19 @@ public class BlockOre extends Block
setRequiresSelfNotify(); setRequiresSelfNotify();
} }
public boolean canDragonDestroy(World world, int x, int y, int z)
{
return world.getBlockMetadata(x, y, z) != 1;
}
public int getBlockTextureFromSideAndMetadata(int side, int meta) public int getBlockTextureFromSideAndMetadata(int side, int meta)
{ {
switch(meta) switch(meta)
{ {
case 0: case 0:
return 3; return 3;
case 1:
return 28;
} }
return 0; return 0;
} }
@ -42,6 +50,7 @@ public class BlockOre extends Block
public void getSubBlocks(int i, CreativeTabs creativetabs, List list) public void getSubBlocks(int i, CreativeTabs creativetabs, List list)
{ {
list.add(new ItemStack(i, 1, 0)); list.add(new ItemStack(i, 1, 0));
list.add(new ItemStack(i, 1, 1));
} }
public String getTextureFile() public String getTextureFile()

View file

@ -11,6 +11,12 @@ import net.minecraft.src.Container;
import net.minecraft.src.EntityPlayer; import net.minecraft.src.EntityPlayer;
import net.minecraft.src.World; import net.minecraft.src.World;
import net.minecraftforge.common.Configuration; import net.minecraftforge.common.Configuration;
import net.uberkat.obsidian.hawk.client.GuiTeleporter;
import net.uberkat.obsidian.hawk.client.GuiWasher;
import net.uberkat.obsidian.hawk.common.ContainerTeleporter;
import net.uberkat.obsidian.hawk.common.ContainerWasher;
import net.uberkat.obsidian.hawk.common.TileEntityTeleporter;
import net.uberkat.obsidian.hawk.common.TileEntityWasher;
import cpw.mods.fml.common.network.IGuiHandler; import cpw.mods.fml.common.network.IGuiHandler;
/** /**
@ -121,6 +127,11 @@ public class CommonProxy
case 9: case 9:
TileEntityGenerator tileentity6 = (TileEntityGenerator)world.getBlockTileEntity(x, y, z); TileEntityGenerator tileentity6 = (TileEntityGenerator)world.getBlockTileEntity(x, y, z);
return new ContainerGenerator(player.inventory, tileentity6); return new ContainerGenerator(player.inventory, tileentity6);
case 10:
TileEntityWasher tileentity7 = (TileEntityWasher)world.getBlockTileEntity(x, y, z);
return new ContainerWasher(player.inventory, tileentity7);
case 11:
return new ContainerTeleporter(player.inventory);
} }
return null; return null;
} }

View file

@ -11,6 +11,6 @@ public class CreativeTabOI extends CreativeTabs
public ItemStack getIconItemStack() public ItemStack getIconItemStack()
{ {
return new ItemStack(ObsidianIngots.ObsidianIngot); return new ItemStack(ObsidianIngots.Ingot, 1, 0);
} }
} }

View file

@ -11,6 +11,8 @@ import net.minecraft.src.ItemStack;
* 2: Combiner * 2: Combiner
* 3: Crusher * 3: Crusher
* 4: Theoretical Elementizer * 4: Theoretical Elementizer
* 5: Washer
* 6: Teleporter
* @author AidanBrady * @author AidanBrady
* *
*/ */
@ -55,6 +57,12 @@ public class ItemBlockMachine extends ItemBlock
case 4: case 4:
name = "TheoreticalElementizer"; name = "TheoreticalElementizer";
break; break;
case 5:
name = "Washer";
break;
case 6:
name = "Teleporter";
break;
default: default:
name = "Unknown"; name = "Unknown";
break; break;

View file

@ -9,6 +9,7 @@ import net.minecraft.src.*;
* 2: Refined Obsidian * 2: Refined Obsidian
* 3: Coal Block * 3: Coal Block
* 4: Refined Glowstone * 4: Refined Glowstone
* 5: Endium Chunkloader
* @author AidanBrady * @author AidanBrady
* *
*/ */
@ -33,6 +34,15 @@ public class ItemBlockMulti extends ItemBlock
return metaBlock.getBlockTextureFromSideAndMetadata(2, i); return metaBlock.getBlockTextureFromSideAndMetadata(2, i);
} }
public EnumRarity getRarity(ItemStack item)
{
if(item.getItemDamage() == 5)
{
return EnumRarity.rare;
}
return EnumRarity.common;
}
public String getItemNameIS(ItemStack itemstack) public String getItemNameIS(ItemStack itemstack)
{ {
String name = ""; String name = "";
@ -53,6 +63,9 @@ public class ItemBlockMulti extends ItemBlock
case 4: case 4:
name = "RefinedGlowstone"; name = "RefinedGlowstone";
break; break;
case 5:
name = "EndiumChunkloader";
break;
default: default:
name = "Unknown"; name = "Unknown";
break; break;

View file

@ -5,6 +5,7 @@ import net.minecraft.src.*;
/** /**
* Item class for handling multiple ore block IDs. * Item class for handling multiple ore block IDs.
* 0: Platinum Ore * 0: Platinum Ore
* 1: Endium Ore
* @author AidanBrady * @author AidanBrady
* *
*/ */
@ -37,6 +38,9 @@ public class ItemBlockOre extends ItemBlock
case 0: case 0:
name = "PlatinumOre"; name = "PlatinumOre";
break; break;
case 1:
name = "EndiumOre";
break;
default: default:
name = "Unknown"; name = "Unknown";
break; break;

View file

@ -0,0 +1,51 @@
package net.uberkat.obsidian.common;
import java.util.ArrayList;
import java.util.List;
import cpw.mods.fml.common.registry.LanguageRegistry;
import net.minecraft.src.*;
public class ItemDust extends ItemObsidian
{
public static String[] en_USNames = {"Iron", "Gold", "Platinum",
"Obsidian", "Diamond", "Glass",
"Emerald", "Star", "Endium"};
public ItemDust(int id)
{
super(id);
setHasSubtypes(true);
setCreativeTab(ObsidianIngots.tabOBSIDIAN);
}
public int getIconFromDamage(int meta)
{
switch (meta)
{
case 0: return 248;
case 1: return 250;
case 2: return 242;
case 3: return 241;
case 4: return 249;
case 5: return 251;
case 6: return 252;
case 7: return 253;
case 8: return 254;
default: return 0;
}
}
public void getSubItems(int id, CreativeTabs tabs, List itemList)
{
for (int counter = 0; counter <= 8; ++counter)
{
itemList.add(new ItemStack(this, 1, counter));
}
}
public String getItemNameIS(ItemStack item)
{
return en_USNames[item.getItemDamage()].toLowerCase() + "Dust";
}
}

View file

@ -0,0 +1,46 @@
package net.uberkat.obsidian.common;
import java.util.ArrayList;
import java.util.List;
import cpw.mods.fml.common.registry.LanguageRegistry;
import net.minecraft.src.*;
public class ItemIngot extends ItemObsidian
{
public static String[] en_USNames = {"Obsidian", "Platinum", "Redstone",
"Glowstone", "Endium"};
public ItemIngot(int id)
{
super(id);
setHasSubtypes(true);
setCreativeTab(ObsidianIngots.tabOBSIDIAN);
}
public int getIconFromDamage(int meta)
{
switch (meta)
{
case 0: return 161;
case 1: return 162;
case 2: return 163;
case 3: return 164;
case 4: return 174;
default: return 0;
}
}
public void getSubItems(int id, CreativeTabs tabs, List itemList)
{
for (int counter = 0; counter <= 4; ++counter)
{
itemList.add(new ItemStack(this, 1, counter));
}
}
public String getItemNameIS(ItemStack item)
{
return en_USNames[item.getItemDamage()].toLowerCase() + "Ingot";
}
}

View file

@ -40,6 +40,7 @@ public class ItemLightningRod extends ItemObsidian
EntityLightningBolt entitybolt = new EntityLightningBolt(world, 0D, 0D, 0D); EntityLightningBolt entitybolt = new EntityLightningBolt(world, 0D, 0D, 0D);
entitybolt.setLocationAndAngles(x, y, z, 0, 0.0F); entitybolt.setLocationAndAngles(x, y, z, 0, 0.0F);
world.spawnEntityInWorld(entitybolt); world.spawnEntityInWorld(entitybolt);
entityplayer.swingItem();
if(!entityplayer.capabilities.isCreativeMode) if(!entityplayer.capabilities.isCreativeMode)
{ {
itemstack.damageItem(99, entityplayer); itemstack.damageItem(99, entityplayer);

View file

@ -38,7 +38,7 @@ public class ObsidianHooks
IC2IronDust = getIC2Item("ironDust"); IC2IronDust = getIC2Item("ironDust");
IC2GoldDust = getIC2Item("goldDust"); IC2GoldDust = getIC2Item("goldDust");
Ic2Recipes.addMaceratorRecipe(new ItemStack(ObsidianIngots.OreBlock, 1, 0), new ItemStack(ObsidianIngots.PlatinumDust, 2)); Ic2Recipes.addMaceratorRecipe(new ItemStack(ObsidianIngots.OreBlock, 1, 0), new ItemStack(ObsidianIngots.Dust, 2, 2));
Ic2Recipes.addMatterAmplifier(ObsidianIngots.EnrichedAlloy, 100000); Ic2Recipes.addMatterAmplifier(ObsidianIngots.EnrichedAlloy, 100000);
System.out.println("[ObsidianIngots] Hooked into IC2 successfully."); System.out.println("[ObsidianIngots] Hooked into IC2 successfully.");

View file

@ -17,6 +17,9 @@ import java.util.logging.Logger;
import net.minecraftforge.common.*; import net.minecraftforge.common.*;
import net.minecraft.src.*; import net.minecraft.src.*;
import net.uberkat.obsidian.client.SoundHandler; import net.uberkat.obsidian.client.SoundHandler;
import net.uberkat.obsidian.hawk.common.TileEntityEndiumChunkloader;
import net.uberkat.obsidian.hawk.common.TileEntityTeleporter;
import net.uberkat.obsidian.hawk.common.TileEntityWasher;
import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.common.*; import cpw.mods.fml.common.*;
import cpw.mods.fml.common.Mod.Init; import cpw.mods.fml.common.Mod.Init;
@ -122,11 +125,8 @@ public class ObsidianIngots
public static Item IronKnife; public static Item IronKnife;
public static Item DiamondKnife; public static Item DiamondKnife;
public static Item GoldKnife; public static Item GoldKnife;
public static Item IronDust;
public static Item GoldDust;
//Glowstone Items //Glowstone Items
public static Item GlowstoneIngot;
public static Item GlowstonePaxel; public static Item GlowstonePaxel;
public static Item GlowstonePickaxe; public static Item GlowstonePickaxe;
public static Item GlowstoneAxe; public static Item GlowstoneAxe;
@ -140,7 +140,6 @@ public class ObsidianIngots
public static Item GlowstoneKnife; public static Item GlowstoneKnife;
//Redstone Items //Redstone Items
public static Item RedstoneIngot;
public static Item RedstonePaxel; public static Item RedstonePaxel;
public static Item RedstonePickaxe; public static Item RedstonePickaxe;
public static Item RedstoneAxe; public static Item RedstoneAxe;
@ -154,8 +153,6 @@ public class ObsidianIngots
public static Item RedstoneKnife; public static Item RedstoneKnife;
//Platinum Items //Platinum Items
public static Item PlatinumDust;
public static Item PlatinumIngot;
public static Item PlatinumPaxel; public static Item PlatinumPaxel;
public static Item PlatinumPickaxe; public static Item PlatinumPickaxe;
public static Item PlatinumAxe; public static Item PlatinumAxe;
@ -169,12 +166,10 @@ public class ObsidianIngots
public static Item PlatinumKnife; public static Item PlatinumKnife;
//Obsidian Items //Obsidian Items
public static Item ObsidianDust;
public static Item ObsidianHelmet; public static Item ObsidianHelmet;
public static Item ObsidianBody; public static Item ObsidianBody;
public static Item ObsidianLegs; public static Item ObsidianLegs;
public static Item ObsidianBoots; public static Item ObsidianBoots;
public static Item ObsidianIngot;
public static Item ObsidianPaxel; public static Item ObsidianPaxel;
public static Item ObsidianPickaxe; public static Item ObsidianPickaxe;
public static Item ObsidianAxe; public static Item ObsidianAxe;
@ -217,6 +212,10 @@ public class ObsidianIngots
public static Block PowerUnit; public static Block PowerUnit;
public static Block Generator; public static Block Generator;
//MultiID Items
public static Item Dust;
public static Item Ingot;
//Boolean Values //Boolean Values
public static boolean extrasEnabled = true; public static boolean extrasEnabled = true;
public static boolean oreGenerationEnabled = true; public static boolean oreGenerationEnabled = true;
@ -277,84 +276,84 @@ public class ObsidianIngots
//Obsidian //Obsidian
GameRegistry.addRecipe(new ItemStack(MultiBlock, 1, 2), new Object[] { GameRegistry.addRecipe(new ItemStack(MultiBlock, 1, 2), new Object[] {
"***", "***", "***", Character.valueOf('*'), ObsidianIngot "***", "***", "***", Character.valueOf('*'), new ItemStack(Ingot, 1, 0)
}); });
GameRegistry.addRecipe(new ItemStack(ObsidianIngot, 9), new Object[] { GameRegistry.addRecipe(new ItemStack(Ingot, 9, 0), new Object[] {
"*", Character.valueOf('*'), new ItemStack(MultiBlock, 1, 2) "*", Character.valueOf('*'), new ItemStack(MultiBlock, 1, 2)
}); });
GameRegistry.addRecipe(new ItemStack(ObsidianHelmet, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(ObsidianHelmet, 1), new Object[] {
"***", "* *", Character.valueOf('*'), ObsidianIngot "***", "* *", Character.valueOf('*'), new ItemStack(Ingot, 1, 0)
}); });
GameRegistry.addRecipe(new ItemStack(ObsidianBody, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(ObsidianBody, 1), new Object[] {
"* *", "***", "***", Character.valueOf('*'), ObsidianIngot "* *", "***", "***", Character.valueOf('*'), new ItemStack(Ingot, 1, 0)
}); });
GameRegistry.addRecipe(new ItemStack(ObsidianLegs, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(ObsidianLegs, 1), new Object[] {
"***", "* *", "* *", Character.valueOf('*'), ObsidianIngot "***", "* *", "* *", Character.valueOf('*'), new ItemStack(Ingot, 1, 0)
}); });
GameRegistry.addRecipe(new ItemStack(ObsidianBoots, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(ObsidianBoots, 1), new Object[] {
"* *", "* *", Character.valueOf('*'), ObsidianIngot "* *", "* *", Character.valueOf('*'), new ItemStack(Ingot, 1, 0)
}); });
GameRegistry.addRecipe(new ItemStack(ObsidianPaxel, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(ObsidianPaxel, 1), new Object[] {
"XYZ", " T ", " T ", Character.valueOf('X'), ObsidianAxe, Character.valueOf('Y'), ObsidianPickaxe, Character.valueOf('Z'), ObsidianSpade, Character.valueOf('T'), Item.stick "XYZ", " T ", " T ", Character.valueOf('X'), ObsidianAxe, Character.valueOf('Y'), ObsidianPickaxe, Character.valueOf('Z'), ObsidianSpade, Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(ObsidianPickaxe, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(ObsidianPickaxe, 1), new Object[] {
"XXX", " T ", " T ", Character.valueOf('X'), ObsidianIngot, Character.valueOf('T'), Item.stick "XXX", " T ", " T ", Character.valueOf('X'), new ItemStack(Ingot, 1, 0), Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(ObsidianAxe, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(ObsidianAxe, 1), new Object[] {
"XX", "XT", " T", Character.valueOf('X'), ObsidianIngot, Character.valueOf('T'), Item.stick "XX", "XT", " T", Character.valueOf('X'), new ItemStack(Ingot, 1, 0), Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(ObsidianSpade, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(ObsidianSpade, 1), new Object[] {
"X", "T", "T", Character.valueOf('X'), ObsidianIngot, Character.valueOf('T'), Item.stick "X", "T", "T", Character.valueOf('X'), new ItemStack(Ingot, 1, 0), Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(ObsidianHoe, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(ObsidianHoe, 1), new Object[] {
"XX", " T", " T", Character.valueOf('X'), ObsidianIngot, Character.valueOf('T'), Item.stick "XX", " T", " T", Character.valueOf('X'), new ItemStack(Ingot, 1, 0), Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(ObsidianSword, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(ObsidianSword, 1), new Object[] {
"X", "X", "T", Character.valueOf('X'), ObsidianIngot, Character.valueOf('T'), Item.stick "X", "X", "T", Character.valueOf('X'), new ItemStack(Ingot, 1, 0), Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(ObsidianKnife, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(ObsidianKnife, 1), new Object[] {
" ^", "I ", Character.valueOf('^'), ObsidianIngot, Character.valueOf('I'), Item.stick " ^", "I ", Character.valueOf('^'), new ItemStack(Ingot, 1, 0), Character.valueOf('I'), Item.stick
}); });
//Glowstone //Glowstone
GameRegistry.addRecipe(new ItemStack(MultiBlock, 1, 4), new Object[] { GameRegistry.addRecipe(new ItemStack(MultiBlock, 1, 4), new Object[] {
"***", "***", "***", Character.valueOf('*'), GlowstoneIngot "***", "***", "***", Character.valueOf('*'), new ItemStack(Ingot, 1, 3)
}); });
GameRegistry.addRecipe(new ItemStack(GlowstoneIngot, 9), new Object[] { GameRegistry.addRecipe(new ItemStack(Ingot, 9, 3), new Object[] {
"*", Character.valueOf('*'), new ItemStack(MultiBlock, 1, 4) "*", Character.valueOf('*'), new ItemStack(MultiBlock, 1, 4)
}); });
GameRegistry.addRecipe(new ItemStack(GlowstonePaxel, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(GlowstonePaxel, 1), new Object[] {
"XYZ", " T ", " T ", Character.valueOf('X'), GlowstoneAxe, Character.valueOf('Y'), GlowstonePickaxe, Character.valueOf('Z'), GlowstoneSpade, Character.valueOf('T'), Item.stick "XYZ", " T ", " T ", Character.valueOf('X'), GlowstoneAxe, Character.valueOf('Y'), GlowstonePickaxe, Character.valueOf('Z'), GlowstoneSpade, Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(GlowstonePickaxe, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(GlowstonePickaxe, 1), new Object[] {
"XXX", " T ", " T ", Character.valueOf('X'), GlowstoneIngot, Character.valueOf('T'), Item.stick "XXX", " T ", " T ", Character.valueOf('X'), new ItemStack(Ingot, 1, 3), Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(GlowstoneAxe, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(GlowstoneAxe, 1), new Object[] {
"XX", "XT", " T", Character.valueOf('X'), GlowstoneIngot, Character.valueOf('T'), Item.stick "XX", "XT", " T", Character.valueOf('X'), new ItemStack(Ingot, 1, 3), Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(GlowstoneSpade, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(GlowstoneSpade, 1), new Object[] {
"X", "T", "T", Character.valueOf('X'), GlowstoneIngot, Character.valueOf('T'), Item.stick "X", "T", "T", Character.valueOf('X'), new ItemStack(Ingot, 1, 3), Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(GlowstoneHoe, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(GlowstoneHoe, 1), new Object[] {
"XX", " T", " T", Character.valueOf('X'), GlowstoneIngot, Character.valueOf('T'), Item.stick "XX", " T", " T", Character.valueOf('X'), new ItemStack(Ingot, 1, 3), Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(GlowstoneSword, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(GlowstoneSword, 1), new Object[] {
"X", "X", "T", Character.valueOf('X'), GlowstoneIngot, Character.valueOf('T'), Item.stick "X", "X", "T", Character.valueOf('X'), new ItemStack(Ingot, 1, 3), Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(GlowstoneHelmet, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(GlowstoneHelmet, 1), new Object[] {
"***", "* *", Character.valueOf('*'), GlowstoneIngot "***", "* *", Character.valueOf('*'), new ItemStack(Ingot, 1, 3)
}); });
GameRegistry.addRecipe(new ItemStack(GlowstoneBody, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(GlowstoneBody, 1), new Object[] {
"* *", "***", "***", Character.valueOf('*'), GlowstoneIngot "* *", "***", "***", Character.valueOf('*'), new ItemStack(Ingot, 1, 3)
}); });
GameRegistry.addRecipe(new ItemStack(GlowstoneLegs, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(GlowstoneLegs, 1), new Object[] {
"***", "* *", "* *", Character.valueOf('*'), GlowstoneIngot "***", "* *", "* *", Character.valueOf('*'), new ItemStack(Ingot, 1, 3)
}); });
GameRegistry.addRecipe(new ItemStack(GlowstoneBoots, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(GlowstoneBoots, 1), new Object[] {
"* *", "* *", Character.valueOf('*'), GlowstoneIngot "* *", "* *", Character.valueOf('*'), new ItemStack(Ingot, 1, 3)
}); });
GameRegistry.addRecipe(new ItemStack(GlowstoneKnife, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(GlowstoneKnife, 1), new Object[] {
" ^", "I ", Character.valueOf('^'), GlowstoneIngot, Character.valueOf('I'), Item.stick " ^", "I ", Character.valueOf('^'), new ItemStack(Ingot, 1, 3), Character.valueOf('I'), Item.stick
}); });
//Lazuli //Lazuli
@ -394,84 +393,84 @@ public class ObsidianIngots
//Platinum //Platinum
GameRegistry.addRecipe(new ItemStack(MultiBlock, 1, 0), new Object[] { GameRegistry.addRecipe(new ItemStack(MultiBlock, 1, 0), new Object[] {
"XXX", "XXX", "XXX", Character.valueOf('X'), PlatinumIngot "XXX", "XXX", "XXX", Character.valueOf('X'), new ItemStack(Ingot, 1, 1)
}); });
GameRegistry.addRecipe(new ItemStack(PlatinumPaxel, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(PlatinumPaxel, 1), new Object[] {
"XYZ", " T ", " T ", Character.valueOf('X'), PlatinumAxe, Character.valueOf('Y'), PlatinumPickaxe, Character.valueOf('Z'), PlatinumSpade, Character.valueOf('T'), Item.stick "XYZ", " T ", " T ", Character.valueOf('X'), PlatinumAxe, Character.valueOf('Y'), PlatinumPickaxe, Character.valueOf('Z'), PlatinumSpade, Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(PlatinumPickaxe, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(PlatinumPickaxe, 1), new Object[] {
"XXX", " T ", " T ", Character.valueOf('X'), PlatinumIngot, Character.valueOf('T'), Item.stick "XXX", " T ", " T ", Character.valueOf('X'), new ItemStack(Ingot, 1, 1), Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(PlatinumAxe, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(PlatinumAxe, 1), new Object[] {
"XX", "XT", " T", Character.valueOf('X'), PlatinumIngot, Character.valueOf('T'), Item.stick "XX", "XT", " T", Character.valueOf('X'), new ItemStack(Ingot, 1, 1), Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(PlatinumSpade, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(PlatinumSpade, 1), new Object[] {
"X", "T", "T", Character.valueOf('X'), PlatinumIngot, Character.valueOf('T'), Item.stick "X", "T", "T", Character.valueOf('X'), new ItemStack(Ingot, 1, 1), Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(PlatinumHoe, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(PlatinumHoe, 1), new Object[] {
"XX", " T", " T", Character.valueOf('X'), PlatinumIngot, Character.valueOf('T'), Item.stick "XX", " T", " T", Character.valueOf('X'), new ItemStack(Ingot, 1, 1), Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(PlatinumSword, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(PlatinumSword, 1), new Object[] {
"X", "X", "T", Character.valueOf('X'), PlatinumIngot, Character.valueOf('T'), Item.stick "X", "X", "T", Character.valueOf('X'), new ItemStack(Ingot, 1, 1), Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(PlatinumHelmet, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(PlatinumHelmet, 1), new Object[] {
"***", "* *", Character.valueOf('*'), PlatinumIngot "***", "* *", Character.valueOf('*'), new ItemStack(Ingot, 1, 1)
}); });
GameRegistry.addRecipe(new ItemStack(PlatinumBody, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(PlatinumBody, 1), new Object[] {
"* *", "***", "***", Character.valueOf('*'), PlatinumIngot "* *", "***", "***", Character.valueOf('*'), new ItemStack(Ingot, 1, 1)
}); });
GameRegistry.addRecipe(new ItemStack(PlatinumLegs, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(PlatinumLegs, 1), new Object[] {
"***", "* *", "* *", Character.valueOf('*'), PlatinumIngot "***", "* *", "* *", Character.valueOf('*'), new ItemStack(Ingot, 1, 1)
}); });
GameRegistry.addRecipe(new ItemStack(PlatinumBoots, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(PlatinumBoots, 1), new Object[] {
"* *", "* *", Character.valueOf('*'), PlatinumIngot "* *", "* *", Character.valueOf('*'), new ItemStack(Ingot, 1, 1)
}); });
GameRegistry.addRecipe(new ItemStack(PlatinumIngot, 9), new Object[] { GameRegistry.addRecipe(new ItemStack(Ingot, 9, 1), new Object[] {
"*", Character.valueOf('*'), new ItemStack(MultiBlock, 1, 0) "*", Character.valueOf('*'), new ItemStack(MultiBlock, 1, 0)
}); });
GameRegistry.addRecipe(new ItemStack(PlatinumKnife, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(PlatinumKnife, 1), new Object[] {
" ^", "I ", Character.valueOf('^'), PlatinumIngot, Character.valueOf('I'), Item.stick " ^", "I ", Character.valueOf('^'), new ItemStack(Ingot, 1, 1), Character.valueOf('I'), Item.stick
}); });
//Redstone //Redstone
GameRegistry.addRecipe(new ItemStack(MultiBlock, 1, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(MultiBlock, 1, 1), new Object[] {
"***", "***", "***", Character.valueOf('*'), RedstoneIngot "***", "***", "***", Character.valueOf('*'), new ItemStack(Ingot, 1, 2)
}); });
GameRegistry.addRecipe(new ItemStack(RedstoneIngot, 9), new Object[] { GameRegistry.addRecipe(new ItemStack(Ingot, 9, 2), new Object[] {
"*", Character.valueOf('*'), new ItemStack(MultiBlock, 1, 1) "*", Character.valueOf('*'), new ItemStack(MultiBlock, 1, 1)
}); });
GameRegistry.addRecipe(new ItemStack(RedstonePaxel, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(RedstonePaxel, 1), new Object[] {
"XYZ", " T ", " T ", Character.valueOf('X'), RedstoneAxe, Character.valueOf('Y'), RedstonePickaxe, Character.valueOf('Z'), RedstoneSpade, Character.valueOf('T'), Item.stick "XYZ", " T ", " T ", Character.valueOf('X'), RedstoneAxe, Character.valueOf('Y'), RedstonePickaxe, Character.valueOf('Z'), RedstoneSpade, Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(RedstonePickaxe, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(RedstonePickaxe, 1), new Object[] {
"XXX", " T ", " T ", Character.valueOf('X'), RedstoneIngot, Character.valueOf('T'), Item.stick "XXX", " T ", " T ", Character.valueOf('X'), new ItemStack(Ingot, 1, 2), Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(RedstoneAxe, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(RedstoneAxe, 1), new Object[] {
"XX", "XT", " T", Character.valueOf('X'), RedstoneIngot, Character.valueOf('T'), Item.stick "XX", "XT", " T", Character.valueOf('X'), new ItemStack(Ingot, 1, 2), Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(RedstoneSpade, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(RedstoneSpade, 1), new Object[] {
"X", "T", "T", Character.valueOf('X'), RedstoneIngot, Character.valueOf('T'), Item.stick "X", "T", "T", Character.valueOf('X'), new ItemStack(Ingot, 1, 2), Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(RedstoneHoe, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(RedstoneHoe, 1), new Object[] {
"XX", " T", " T", Character.valueOf('X'), RedstoneIngot, Character.valueOf('T'), Item.stick "XX", " T", " T", Character.valueOf('X'), new ItemStack(Ingot, 1, 2), Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(RedstoneSword, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(RedstoneSword, 1), new Object[] {
"X", "X", "T", Character.valueOf('X'), RedstoneIngot, Character.valueOf('T'), Item.stick "X", "X", "T", Character.valueOf('X'), new ItemStack(Ingot, 1, 2), Character.valueOf('T'), Item.stick
}); });
GameRegistry.addRecipe(new ItemStack(RedstoneHelmet, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(RedstoneHelmet, 1), new Object[] {
"***", "* *", Character.valueOf('*'), RedstoneIngot "***", "* *", Character.valueOf('*'), new ItemStack(Ingot, 1, 2)
}); });
GameRegistry.addRecipe(new ItemStack(RedstoneBody, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(RedstoneBody, 1), new Object[] {
"* *", "***", "***", Character.valueOf('*'), RedstoneIngot "* *", "***", "***", Character.valueOf('*'), new ItemStack(Ingot, 1, 2)
}); });
GameRegistry.addRecipe(new ItemStack(RedstoneLegs, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(RedstoneLegs, 1), new Object[] {
"***", "* *", "* *", Character.valueOf('*'), RedstoneIngot "***", "* *", "* *", Character.valueOf('*'), new ItemStack(Ingot, 1, 2)
}); });
GameRegistry.addRecipe(new ItemStack(RedstoneBoots, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(RedstoneBoots, 1), new Object[] {
"* *", "* *", Character.valueOf('*'), RedstoneIngot "* *", "* *", Character.valueOf('*'), new ItemStack(Ingot, 1, 2)
}); });
GameRegistry.addRecipe(new ItemStack(RedstoneKnife, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(RedstoneKnife, 1), new Object[] {
" ^", "I ", Character.valueOf('^'), RedstoneIngot, Character.valueOf('I'), Item.stick " ^", "I ", Character.valueOf('^'), new ItemStack(Ingot, 1, 2), Character.valueOf('I'), Item.stick
}); });
//Extra //Extra
@ -479,10 +478,10 @@ public class ObsidianIngots
"***", "XXX", "***", Character.valueOf('*'), Block.obsidian, Character.valueOf('X'), Block.tnt "***", "XXX", "***", Character.valueOf('*'), Block.obsidian, Character.valueOf('X'), Block.tnt
}); });
GameRegistry.addRecipe(new ItemStack(ObsidianBow, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(ObsidianBow, 1), new Object[] {
" AB", "A B", " AB", Character.valueOf('A'), ObsidianIngot, Character.valueOf('B'), Item.silk " AB", "A B", " AB", Character.valueOf('A'), new ItemStack(Ingot, 1, 0), Character.valueOf('B'), Item.silk
}); });
GameRegistry.addRecipe(EnergyCube.getUnchargedItem(), new Object[] { GameRegistry.addRecipe(EnergyCube.getUnchargedItem(), new Object[] {
"RAR", "APA", "RAR", Character.valueOf('R'), Item.redstone, Character.valueOf('A'), EnrichedAlloy, Character.valueOf('P'), PlatinumDust "RAR", "APA", "RAR", Character.valueOf('R'), Item.redstone, Character.valueOf('A'), EnrichedAlloy, Character.valueOf('P'), new ItemStack(Dust, 1, 2)
}); });
GameRegistry.addRecipe(EnergyTablet.getUnchargedItem(), new Object[] { GameRegistry.addRecipe(EnergyTablet.getUnchargedItem(), new Object[] {
"RCR", "ECE", "RCR", Character.valueOf('C'), EnergyCube.getUnchargedItem(), Character.valueOf('R'), Item.redstone, Character.valueOf('E'), EnrichedAlloy "RCR", "ECE", "RCR", Character.valueOf('C'), EnergyCube.getUnchargedItem(), Character.valueOf('R'), Item.redstone, Character.valueOf('E'), EnrichedAlloy
@ -497,7 +496,7 @@ public class ObsidianIngots
"ECE", "CPC", "ECE", Character.valueOf('E'), EnrichedAlloy, Character.valueOf('C'), EnergyCube.getUnchargedItem(), Character.valueOf('P'), new ItemStack(PowerUnit, 1, 0) "ECE", "CPC", "ECE", Character.valueOf('E'), EnrichedAlloy, Character.valueOf('C'), EnergyCube.getUnchargedItem(), Character.valueOf('P'), new ItemStack(PowerUnit, 1, 0)
}); });
GameRegistry.addRecipe(new ItemStack(MachineBlock, 1, 0), new Object[] { GameRegistry.addRecipe(new ItemStack(MachineBlock, 1, 0), new Object[] {
"***", "*R*", "***", Character.valueOf('*'), PlatinumIngot, Character.valueOf('R'), Item.redstone "***", "*R*", "***", Character.valueOf('*'), new ItemStack(Ingot, 1, 1), Character.valueOf('R'), Item.redstone
}); });
GameRegistry.addRecipe(new ItemStack(MachineBlock, 1, 1), new Object[] { GameRegistry.addRecipe(new ItemStack(MachineBlock, 1, 1), new Object[] {
"***", "*P*", "***", Character.valueOf('*'), Item.redstone, Character.valueOf('P'), new ItemStack(MultiBlock, 1, 0) "***", "*P*", "***", Character.valueOf('*'), Item.redstone, Character.valueOf('P'), new ItemStack(MultiBlock, 1, 0)
@ -506,10 +505,10 @@ public class ObsidianIngots
"***", "*P*", "***", Character.valueOf('*'), Block.cobblestone, Character.valueOf('P'), new ItemStack(MultiBlock, 1, 0) "***", "*P*", "***", Character.valueOf('*'), Block.cobblestone, Character.valueOf('P'), new ItemStack(MultiBlock, 1, 0)
}); });
GameRegistry.addRecipe(new ItemStack(MachineBlock, 1, 3), new Object[] { GameRegistry.addRecipe(new ItemStack(MachineBlock, 1, 3), new Object[] {
"***", "*L*", "***", Character.valueOf('*'), PlatinumIngot, Character.valueOf('L'), Item.bucketLava "***", "*L*", "***", Character.valueOf('*'), new ItemStack(Ingot, 1, 1), Character.valueOf('L'), Item.bucketLava
}); });
GameRegistry.addRecipe(new ItemStack(SpeedUpgrade), new Object[] { GameRegistry.addRecipe(new ItemStack(SpeedUpgrade), new Object[] {
"PAP", "ARA", "PAP", Character.valueOf('P'), PlatinumDust, Character.valueOf('A'), EnrichedAlloy, Character.valueOf('E'), Item.emerald "PAP", "ARA", "PAP", Character.valueOf('P'), new ItemStack(Dust, 1, 2), Character.valueOf('A'), EnrichedAlloy, Character.valueOf('E'), Item.emerald
}); });
GameRegistry.addRecipe(new ItemStack(EnergyUpgrade), new Object[] { GameRegistry.addRecipe(new ItemStack(EnergyUpgrade), new Object[] {
"RAR", "AEA", "RAR", Character.valueOf('R'), Item.redstone, Character.valueOf('A'), EnrichedAlloy, Character.valueOf('E'), Item.emerald "RAR", "AEA", "RAR", Character.valueOf('R'), Item.redstone, Character.valueOf('A'), EnrichedAlloy, Character.valueOf('E'), Item.emerald
@ -526,28 +525,28 @@ public class ObsidianIngots
} }
//Furnace Recipes //Furnace Recipes
GameRegistry.addSmelting(new ItemStack(OreBlock, 1, 0).itemID, new ItemStack(PlatinumIngot, 2), 1.0F); GameRegistry.addSmelting(new ItemStack(OreBlock, 1, 0).itemID, new ItemStack(Ingot, 2, 1), 1.0F);
GameRegistry.addSmelting(PlatinumDust.shiftedIndex, new ItemStack(PlatinumIngot, 1), 1.0F); GameRegistry.addSmelting(new ItemStack(Dust, 1, 2).itemID, new ItemStack(Ingot, 1, 1), 1.0F);
//Enrichment Chamber Recipes //Enrichment Chamber Recipes
RecipeHandler.addEnrichmentChamberRecipe(new ItemStack(OreBlock, 1, 0), new ItemStack(PlatinumDust, 2)); RecipeHandler.addEnrichmentChamberRecipe(new ItemStack(OreBlock, 1, 0), new ItemStack(Dust, 2, 2));
RecipeHandler.addEnrichmentChamberRecipe(new ItemStack(Block.oreRedstone), new ItemStack(Item.redstone, 2)); RecipeHandler.addEnrichmentChamberRecipe(new ItemStack(Block.oreRedstone), new ItemStack(Item.redstone, 2));
//Platinum Compressor Recipes //Platinum Compressor Recipes
RecipeHandler.addPlatinumCompressorRecipe(new ItemStack(Item.redstone), new ItemStack(RedstoneIngot)); RecipeHandler.addPlatinumCompressorRecipe(new ItemStack(Item.redstone), new ItemStack(Ingot, 1, 2));
RecipeHandler.addPlatinumCompressorRecipe(new ItemStack(Item.lightStoneDust), new ItemStack(GlowstoneIngot)); RecipeHandler.addPlatinumCompressorRecipe(new ItemStack(Item.lightStoneDust), new ItemStack(Ingot, 1, 3));
//Combiner Recipes //Combiner Recipes
RecipeHandler.addCombinerRecipe(new ItemStack(Item.redstone, 4), new ItemStack(Block.oreRedstone)); RecipeHandler.addCombinerRecipe(new ItemStack(Item.redstone, 4), new ItemStack(Block.oreRedstone));
RecipeHandler.addCombinerRecipe(new ItemStack(Item.redstone), new ItemStack(RedstoneIngot)); RecipeHandler.addCombinerRecipe(new ItemStack(Item.redstone), new ItemStack(Ingot, 1, 2));
RecipeHandler.addCombinerRecipe(new ItemStack(PlatinumDust, 2), new ItemStack(OreBlock, 1, 0)); RecipeHandler.addCombinerRecipe(new ItemStack(Dust, 2, 2), new ItemStack(OreBlock, 1, 0));
RecipeHandler.addCombinerRecipe(new ItemStack(Item.diamond), new ItemStack(Block.oreDiamond)); RecipeHandler.addCombinerRecipe(new ItemStack(Item.diamond), new ItemStack(Block.oreDiamond));
RecipeHandler.addCombinerRecipe(new ItemStack(Item.dyePowder, 4, 4), new ItemStack(Block.oreLapis)); RecipeHandler.addCombinerRecipe(new ItemStack(Item.dyePowder, 4, 4), new ItemStack(Block.oreLapis));
//Crusher Recipes //Crusher Recipes
RecipeHandler.addCrusherRecipe(new ItemStack(RedstoneIngot), new ItemStack(Item.redstone)); RecipeHandler.addCrusherRecipe(new ItemStack(Ingot, 1, 2), new ItemStack(Item.redstone));
RecipeHandler.addCrusherRecipe(new ItemStack(PlatinumIngot), new ItemStack(PlatinumDust)); RecipeHandler.addCrusherRecipe(new ItemStack(Ingot, 1, 1), new ItemStack(Dust, 1, 2));
RecipeHandler.addCrusherRecipe(new ItemStack(GlowstoneIngot), new ItemStack(Item.lightStoneDust)); RecipeHandler.addCrusherRecipe(new ItemStack(Ingot, 1, 3), new ItemStack(Item.lightStoneDust));
//Theoretical Elementizer Recipes //Theoretical Elementizer Recipes
RecipeHandler.addTheoreticalElementizerRecipe(new ItemStack(EnrichedAlloy), new ItemStack(TileEntityTheoreticalElementizer.getRandomMagicItem())); RecipeHandler.addTheoreticalElementizerRecipe(new ItemStack(EnrichedAlloy), new ItemStack(TileEntityTheoreticalElementizer.getRandomMagicItem()));
@ -575,7 +574,6 @@ public class ObsidianIngots
LanguageRegistry.addName(ObsidianBody, "Obsidian Chestplate"); LanguageRegistry.addName(ObsidianBody, "Obsidian Chestplate");
LanguageRegistry.addName(ObsidianLegs, "Obsidian Leggings"); LanguageRegistry.addName(ObsidianLegs, "Obsidian Leggings");
LanguageRegistry.addName(ObsidianBoots, "Obsidian Boots"); LanguageRegistry.addName(ObsidianBoots, "Obsidian Boots");
LanguageRegistry.addName(ObsidianIngot, "Obsidian Ingot");
LanguageRegistry.addName(ObsidianPaxel, "Obsidian Paxel"); LanguageRegistry.addName(ObsidianPaxel, "Obsidian Paxel");
LanguageRegistry.addName(ObsidianPickaxe, "Obsidian Pickaxe"); LanguageRegistry.addName(ObsidianPickaxe, "Obsidian Pickaxe");
LanguageRegistry.addName(ObsidianAxe, "Obsidian Axe"); LanguageRegistry.addName(ObsidianAxe, "Obsidian Axe");
@ -598,12 +596,10 @@ public class ObsidianIngots
LanguageRegistry.addName(LazuliKnife, "Lazuli Knife"); LanguageRegistry.addName(LazuliKnife, "Lazuli Knife");
//Platinum //Platinum
LanguageRegistry.addName(PlatinumDust, "Platinum Dust");
LanguageRegistry.addName(PlatinumHelmet, "Platinum Helmet"); LanguageRegistry.addName(PlatinumHelmet, "Platinum Helmet");
LanguageRegistry.addName(PlatinumBody, "Platinum Chestplate"); LanguageRegistry.addName(PlatinumBody, "Platinum Chestplate");
LanguageRegistry.addName(PlatinumLegs, "Platinum Leggings"); LanguageRegistry.addName(PlatinumLegs, "Platinum Leggings");
LanguageRegistry.addName(PlatinumBoots, "Platinum Boots"); LanguageRegistry.addName(PlatinumBoots, "Platinum Boots");
LanguageRegistry.addName(PlatinumIngot, "Platinum Ingot");
LanguageRegistry.addName(PlatinumPaxel, "Platinum Paxel"); LanguageRegistry.addName(PlatinumPaxel, "Platinum Paxel");
LanguageRegistry.addName(PlatinumPickaxe, "Platinum Pickaxe"); LanguageRegistry.addName(PlatinumPickaxe, "Platinum Pickaxe");
LanguageRegistry.addName(PlatinumAxe, "Platinum Axe"); LanguageRegistry.addName(PlatinumAxe, "Platinum Axe");
@ -617,7 +613,6 @@ public class ObsidianIngots
LanguageRegistry.addName(RedstoneBody, "Redstone Chestplate"); LanguageRegistry.addName(RedstoneBody, "Redstone Chestplate");
LanguageRegistry.addName(RedstoneLegs, "Redstone Leggings"); LanguageRegistry.addName(RedstoneLegs, "Redstone Leggings");
LanguageRegistry.addName(RedstoneBoots, "Redstone Boots"); LanguageRegistry.addName(RedstoneBoots, "Redstone Boots");
LanguageRegistry.addName(RedstoneIngot, "Redstone Ingot");
LanguageRegistry.addName(RedstonePaxel, "Redstone Paxel"); LanguageRegistry.addName(RedstonePaxel, "Redstone Paxel");
LanguageRegistry.addName(RedstonePickaxe, "Redstone Pickaxe"); LanguageRegistry.addName(RedstonePickaxe, "Redstone Pickaxe");
LanguageRegistry.addName(RedstoneAxe, "Redstone Axe"); LanguageRegistry.addName(RedstoneAxe, "Redstone Axe");
@ -627,7 +622,6 @@ public class ObsidianIngots
LanguageRegistry.addName(RedstoneKnife, "Redstone Knife"); LanguageRegistry.addName(RedstoneKnife, "Redstone Knife");
//Glowstone //Glowstone
LanguageRegistry.addName(GlowstoneIngot, "Glowstone Ingot");
LanguageRegistry.addName(GlowstonePaxel, "Glowstone Paxel"); LanguageRegistry.addName(GlowstonePaxel, "Glowstone Paxel");
LanguageRegistry.addName(GlowstonePickaxe, "Glowstone Pickaxe"); LanguageRegistry.addName(GlowstonePickaxe, "Glowstone Pickaxe");
LanguageRegistry.addName(GlowstoneAxe, "Glowstone Axe"); LanguageRegistry.addName(GlowstoneAxe, "Glowstone Axe");
@ -665,15 +659,20 @@ public class ObsidianIngots
LanguageRegistry.instance().addStringLocalization("tile.MultiBlock.RefinedObsidian.name", "Refined Obsidian"); LanguageRegistry.instance().addStringLocalization("tile.MultiBlock.RefinedObsidian.name", "Refined Obsidian");
LanguageRegistry.instance().addStringLocalization("tile.MultiBlock.CoalBlock.name", "Coal Block"); LanguageRegistry.instance().addStringLocalization("tile.MultiBlock.CoalBlock.name", "Coal Block");
LanguageRegistry.instance().addStringLocalization("tile.MultiBlock.RefinedGlowstone.name", "Refined Glowstone Block"); LanguageRegistry.instance().addStringLocalization("tile.MultiBlock.RefinedGlowstone.name", "Refined Glowstone Block");
LanguageRegistry.instance().addStringLocalization("tile.MultiBlock.EndiumChunkloader.name", "Endium Chunkloader");
//Localization for MachineBlock //Localization for MachineBlock
LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.EnrichmentChamber.name", "Enrichment Chamber"); LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.EnrichmentChamber.name", "Enrichment Chamber");
LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.PlatinumCompressor.name", "Platinum Compressor"); LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.PlatinumCompressor.name", "Platinum Compressor");
LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.Combiner.name", "Combiner"); LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.Combiner.name", "Combiner");
LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.Crusher.name", "Crusher"); LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.Crusher.name", "Crusher");
LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.TheoreticalElementizer.name", "Theoretical Elementizer");
LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.Washer.name", "Washer");
LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.Teleporter.name", "Teleporter");
//Localization for OreBlock //Localization for OreBlock
LanguageRegistry.instance().addStringLocalization("tile.OreBlock.PlatinumOre.name", "Platinum Ore"); LanguageRegistry.instance().addStringLocalization("tile.OreBlock.PlatinumOre.name", "Platinum Ore");
LanguageRegistry.instance().addStringLocalization("tile.OreBlock.EndiumOre.name", "Endium Ore");
//Localization for PowerUnit //Localization for PowerUnit
LanguageRegistry.instance().addStringLocalization("tile.PowerUnit.PowerUnit.name", "Power Unit"); LanguageRegistry.instance().addStringLocalization("tile.PowerUnit.PowerUnit.name", "Power Unit");
@ -682,10 +681,23 @@ public class ObsidianIngots
//Localization for Generator //Localization for Generator
LanguageRegistry.instance().addStringLocalization("tile.Generator.HeatGenerator.name", "Heat Generator"); LanguageRegistry.instance().addStringLocalization("tile.Generator.HeatGenerator.name", "Heat Generator");
if(extrasEnabled == true) //Localization for Dust
{ LanguageRegistry.instance().addStringLocalization("item.ironDust.name", "Iron Dust");
LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.TheoreticalElementizer.name", "Theoretical Elementizer"); LanguageRegistry.instance().addStringLocalization("item.goldDust.name", "Gold Dust");
} LanguageRegistry.instance().addStringLocalization("item.platinumDust.name", "Platinum Dust");
LanguageRegistry.instance().addStringLocalization("item.obsidianDust.name", "Obsidian Dust");
LanguageRegistry.instance().addStringLocalization("item.diamondDust.name", "Diamond Dust");
LanguageRegistry.instance().addStringLocalization("item.glassDust.name", "Glass Dust");
LanguageRegistry.instance().addStringLocalization("item.emeraldDust.name", "Emerald Dust");
LanguageRegistry.instance().addStringLocalization("item.starDust.name", "Star Dust");
LanguageRegistry.instance().addStringLocalization("item.endiumDust.name", "Endium Dust");
//Localization for Ingot
LanguageRegistry.instance().addStringLocalization("item.obsidianIngot.name", "Obsidian Ingot");
LanguageRegistry.instance().addStringLocalization("item.platinumIngot.name", "Platinum Ingot");
LanguageRegistry.instance().addStringLocalization("item.redstoneIngot.name", "Redstone Ingot");
LanguageRegistry.instance().addStringLocalization("item.glowstoneIngot.name", "Glowstone Ingot");
LanguageRegistry.instance().addStringLocalization("item.endiumIngot.name", "Endium Ingot");
} }
/** /**
@ -710,8 +722,6 @@ public class ObsidianIngots
GlowstoneBody.setIconIndex(20); GlowstoneBody.setIconIndex(20);
GlowstoneLegs.setIconIndex(36); GlowstoneLegs.setIconIndex(36);
GlowstoneBoots.setIconIndex(52); GlowstoneBoots.setIconIndex(52);
GlowstoneIngot.setIconIndex(164);
GlowstoneIngot.setIconIndex(164);
GlowstonePaxel.setIconIndex(148); GlowstonePaxel.setIconIndex(148);
GlowstonePickaxe.setIconIndex(68); GlowstonePickaxe.setIconIndex(68);
GlowstoneAxe.setIconIndex(84); GlowstoneAxe.setIconIndex(84);
@ -725,7 +735,6 @@ public class ObsidianIngots
RedstoneBody.setIconIndex(19); RedstoneBody.setIconIndex(19);
RedstoneLegs.setIconIndex(35); RedstoneLegs.setIconIndex(35);
RedstoneBoots.setIconIndex(51); RedstoneBoots.setIconIndex(51);
RedstoneIngot.setIconIndex(163);
RedstonePaxel.setIconIndex(147); RedstonePaxel.setIconIndex(147);
RedstonePickaxe.setIconIndex(67); RedstonePickaxe.setIconIndex(67);
RedstoneAxe.setIconIndex(83); RedstoneAxe.setIconIndex(83);
@ -735,12 +744,10 @@ public class ObsidianIngots
RedstoneKnife.setIconIndex(211); RedstoneKnife.setIconIndex(211);
//Platinum //Platinum
PlatinumDust.setIconIndex(242);
PlatinumHelmet.setIconIndex(2); PlatinumHelmet.setIconIndex(2);
PlatinumBody.setIconIndex(18); PlatinumBody.setIconIndex(18);
PlatinumLegs.setIconIndex(34); PlatinumLegs.setIconIndex(34);
PlatinumBoots.setIconIndex(50); PlatinumBoots.setIconIndex(50);
PlatinumIngot.setIconIndex(162);
PlatinumPaxel.setIconIndex(146); PlatinumPaxel.setIconIndex(146);
PlatinumPickaxe.setIconIndex(66); PlatinumPickaxe.setIconIndex(66);
PlatinumAxe.setIconIndex(82); PlatinumAxe.setIconIndex(82);
@ -754,7 +761,6 @@ public class ObsidianIngots
ObsidianBody.setIconIndex(17); ObsidianBody.setIconIndex(17);
ObsidianLegs.setIconIndex(33); ObsidianLegs.setIconIndex(33);
ObsidianBoots.setIconIndex(49); ObsidianBoots.setIconIndex(49);
ObsidianIngot.setIconIndex(161);
ObsidianPaxel.setIconIndex(145); ObsidianPaxel.setIconIndex(145);
ObsidianPickaxe.setIconIndex(65); ObsidianPickaxe.setIconIndex(65);
ObsidianAxe.setIconIndex(81); ObsidianAxe.setIconIndex(81);
@ -804,7 +810,6 @@ public class ObsidianIngots
RedstoneBody = (new ItemObsidianArmor(11236, armorREDSTONE, proxy.getArmorIndex("redstone"), 1)).setItemName("RedstoneBody"); RedstoneBody = (new ItemObsidianArmor(11236, armorREDSTONE, proxy.getArmorIndex("redstone"), 1)).setItemName("RedstoneBody");
RedstoneLegs = (new ItemObsidianArmor(11237, armorREDSTONE, proxy.getArmorIndex("redstone"), 2)).setItemName("RedstoneLegs"); RedstoneLegs = (new ItemObsidianArmor(11237, armorREDSTONE, proxy.getArmorIndex("redstone"), 2)).setItemName("RedstoneLegs");
RedstoneBoots = (new ItemObsidianArmor(11238, armorREDSTONE, proxy.getArmorIndex("redstone"), 3)).setItemName("RedstoneBoots"); RedstoneBoots = (new ItemObsidianArmor(11238, armorREDSTONE, proxy.getArmorIndex("redstone"), 3)).setItemName("RedstoneBoots");
RedstoneIngot = new ItemObsidian(11239).setItemName("RedstoneIngot").setCreativeTab(tabOBSIDIAN);
RedstonePaxel = new ItemObsidianPaxel(11240, toolREDSTONE2).setItemName("RedstonePaxel"); RedstonePaxel = new ItemObsidianPaxel(11240, toolREDSTONE2).setItemName("RedstonePaxel");
RedstonePickaxe = new ItemObsidianPickaxe(11241, toolREDSTONE).setItemName("RedstonePickaxe"); RedstonePickaxe = new ItemObsidianPickaxe(11241, toolREDSTONE).setItemName("RedstonePickaxe");
RedstoneAxe = new ItemObsidianAxe(11242, toolREDSTONE).setItemName("RedstoneAxe"); RedstoneAxe = new ItemObsidianAxe(11242, toolREDSTONE).setItemName("RedstoneAxe");
@ -815,7 +820,6 @@ public class ObsidianIngots
PlatinumBody = (new ItemObsidianArmor(11247, EnumArmorMaterial.DIAMOND, proxy.getArmorIndex("platinum"), 1)).setItemName("PlatinumBody"); PlatinumBody = (new ItemObsidianArmor(11247, EnumArmorMaterial.DIAMOND, proxy.getArmorIndex("platinum"), 1)).setItemName("PlatinumBody");
PlatinumLegs = (new ItemObsidianArmor(11248, EnumArmorMaterial.DIAMOND, proxy.getArmorIndex("platinum"), 2)).setItemName("PlatinumLegs"); PlatinumLegs = (new ItemObsidianArmor(11248, EnumArmorMaterial.DIAMOND, proxy.getArmorIndex("platinum"), 2)).setItemName("PlatinumLegs");
PlatinumBoots = (new ItemObsidianArmor(11249, EnumArmorMaterial.DIAMOND, proxy.getArmorIndex("platinum"), 3)).setItemName("PlatinumBoots"); PlatinumBoots = (new ItemObsidianArmor(11249, EnumArmorMaterial.DIAMOND, proxy.getArmorIndex("platinum"), 3)).setItemName("PlatinumBoots");
PlatinumIngot = new ItemObsidian(11250).setItemName("PlatinumIngot").setCreativeTab(tabOBSIDIAN);
PlatinumPaxel = new ItemObsidianPaxel(11251, toolPLATINUM2).setItemName("PlatinumPaxel"); PlatinumPaxel = new ItemObsidianPaxel(11251, toolPLATINUM2).setItemName("PlatinumPaxel");
PlatinumPickaxe = new ItemObsidianPickaxe(11252, toolPLATINUM).setItemName("PlatinumPickaxe"); PlatinumPickaxe = new ItemObsidianPickaxe(11252, toolPLATINUM).setItemName("PlatinumPickaxe");
PlatinumAxe = new ItemObsidianAxe(11253, toolPLATINUM).setItemName("PlatinumAxe"); PlatinumAxe = new ItemObsidianAxe(11253, toolPLATINUM).setItemName("PlatinumAxe");
@ -826,7 +830,6 @@ public class ObsidianIngots
ObsidianBody = (new ItemObsidianArmor(11258, armorOBSIDIAN, proxy.getArmorIndex("obsidian"), 1)).setItemName("ObsidianBody"); ObsidianBody = (new ItemObsidianArmor(11258, armorOBSIDIAN, proxy.getArmorIndex("obsidian"), 1)).setItemName("ObsidianBody");
ObsidianLegs = (new ItemObsidianArmor(11259, armorOBSIDIAN, proxy.getArmorIndex("obsidian"), 2)).setItemName("ObsidianLegs"); ObsidianLegs = (new ItemObsidianArmor(11259, armorOBSIDIAN, proxy.getArmorIndex("obsidian"), 2)).setItemName("ObsidianLegs");
ObsidianBoots = (new ItemObsidianArmor(11260, armorOBSIDIAN, proxy.getArmorIndex("obsidian"), 3)).setItemName("ObsidianBoots"); ObsidianBoots = (new ItemObsidianArmor(11260, armorOBSIDIAN, proxy.getArmorIndex("obsidian"), 3)).setItemName("ObsidianBoots");
ObsidianIngot = new ItemObsidian(11261).setItemName("ObsidianIngot").setCreativeTab(tabOBSIDIAN);
ObsidianPaxel = new ItemObsidianPaxel(11262, toolOBSIDIAN2).setItemName("ObsidianPaxel"); ObsidianPaxel = new ItemObsidianPaxel(11262, toolOBSIDIAN2).setItemName("ObsidianPaxel");
ObsidianPickaxe = new ItemObsidianPickaxe(11263, toolOBSIDIAN).setItemName("ObsidianPickaxe"); ObsidianPickaxe = new ItemObsidianPickaxe(11263, toolOBSIDIAN).setItemName("ObsidianPickaxe");
ObsidianAxe = new ItemObsidianAxe(11264, toolOBSIDIAN).setItemName("ObsidianAxe"); ObsidianAxe = new ItemObsidianAxe(11264, toolOBSIDIAN).setItemName("ObsidianAxe");
@ -865,8 +868,8 @@ public class ObsidianIngots
LazuliKnife = new ItemObsidianKnife(11294, toolLAZULI).setItemName("LazuliKnife"); LazuliKnife = new ItemObsidianKnife(11294, toolLAZULI).setItemName("LazuliKnife");
PlatinumKnife = new ItemObsidianKnife(11295, toolPLATINUM).setItemName("PlatinumKnife"); PlatinumKnife = new ItemObsidianKnife(11295, toolPLATINUM).setItemName("PlatinumKnife");
RedstoneKnife = new ItemObsidianKnife(11296, toolREDSTONE).setItemName("RedstoneKnife"); RedstoneKnife = new ItemObsidianKnife(11296, toolREDSTONE).setItemName("RedstoneKnife");
PlatinumDust = new ItemObsidian(11300).setItemName("PlatinumDust").setCreativeTab(tabOBSIDIAN); Dust = new ItemDust(11297-256);
GlowstoneIngot = new ItemObsidian(11301).setItemName("GlowstoneIngot").setCreativeTab(tabOBSIDIAN); Ingot = new ItemIngot(11298-256);
GlowstonePaxel = new ItemObsidianPaxel(11302, toolGLOWSTONE2).setItemName("GlowstonePaxel"); GlowstonePaxel = new ItemObsidianPaxel(11302, toolGLOWSTONE2).setItemName("GlowstonePaxel");
GlowstonePickaxe = new ItemObsidianPickaxe(11303, toolGLOWSTONE).setItemName("GlowstonePickaxe"); GlowstonePickaxe = new ItemObsidianPickaxe(11303, toolGLOWSTONE).setItemName("GlowstonePickaxe");
GlowstoneAxe = new ItemObsidianAxe(11304, toolGLOWSTONE).setItemName("GlowstoneAxe"); GlowstoneAxe = new ItemObsidianAxe(11304, toolGLOWSTONE).setItemName("GlowstoneAxe");
@ -915,48 +918,24 @@ public class ObsidianIngots
*/ */
public void addIntegratedItems() public void addIntegratedItems()
{ {
if(hooks.IC2Loaded && hooks.IC2GoldDust != null && hooks.IC2IronDust != null)
{
IronDust = hooks.IC2IronDust.getItem();
GoldDust = hooks.IC2GoldDust.getItem();
}
else {
IronDust = new ItemObsidian(11298).setItemName("IronDust").setCreativeTab(tabOBSIDIAN);
GoldDust = new ItemObsidian(11299).setItemName("GoldDust").setCreativeTab(tabOBSIDIAN);
IronDust.setIconIndex(248);
GoldDust.setIconIndex(250);
LanguageRegistry.addName(IronDust, "Iron Dust");
LanguageRegistry.addName(GoldDust, "Gold Dust");
}
if(hooks.RailcraftLoaded && hooks.RailcraftObsidianDust != null)
{
ObsidianDust = hooks.RailcraftObsidianDust.getItem();
}
else {
ObsidianDust = new ItemObsidian(11297).setItemName("ObsidianDust").setCreativeTab(tabOBSIDIAN);
ObsidianDust.setIconIndex(241);
LanguageRegistry.addName(ObsidianDust, "Obsidian Dust");
}
if(!hooks.RailcraftLoaded && hooks.IC2Loaded) if(!hooks.RailcraftLoaded && hooks.IC2Loaded)
{ {
Ic2Recipes.addMaceratorRecipe(new ItemStack(Block.obsidian), new ItemStack(ObsidianIngots.ObsidianDust)); Ic2Recipes.addMaceratorRecipe(new ItemStack(Block.obsidian), new ItemStack(Dust, 1, 3));
} }
RecipeHandler.addEnrichmentChamberRecipe(new ItemStack(Block.obsidian), new ItemStack(ObsidianDust)); RecipeHandler.addEnrichmentChamberRecipe(new ItemStack(Block.obsidian), new ItemStack(Dust, 1, 3));
RecipeHandler.addEnrichmentChamberRecipe(new ItemStack(Block.oreIron), new ItemStack(IronDust, 2)); RecipeHandler.addEnrichmentChamberRecipe(new ItemStack(Block.oreIron), new ItemStack(Dust, 2, 0));
RecipeHandler.addEnrichmentChamberRecipe(new ItemStack(Block.oreGold), new ItemStack(GoldDust, 2)); RecipeHandler.addEnrichmentChamberRecipe(new ItemStack(Block.oreGold), new ItemStack(Dust, 2, 1));
RecipeHandler.addPlatinumCompressorRecipe(new ItemStack(ObsidianDust), new ItemStack(ObsidianIngot)); RecipeHandler.addPlatinumCompressorRecipe(new ItemStack(Dust, 1, 3), new ItemStack(Ingot, 1, 0));
RecipeHandler.addCombinerRecipe(new ItemStack(ObsidianDust), new ItemStack(Block.obsidian)); RecipeHandler.addCombinerRecipe(new ItemStack(Dust, 1, 3), new ItemStack(Block.obsidian));
RecipeHandler.addCombinerRecipe(new ItemStack(IronDust, 2), new ItemStack(Block.oreIron)); RecipeHandler.addCombinerRecipe(new ItemStack(Dust, 2, 0), new ItemStack(Block.oreIron));
RecipeHandler.addCombinerRecipe(new ItemStack(GoldDust, 2), new ItemStack(Block.oreGold)); RecipeHandler.addCombinerRecipe(new ItemStack(Dust, 2, 1), new ItemStack(Block.oreGold));
RecipeHandler.addCrusherRecipe(new ItemStack(ObsidianIngot), new ItemStack(ObsidianDust)); RecipeHandler.addCrusherRecipe(new ItemStack(Ingot, 1, 0), new ItemStack(Dust, 1, 3));
RecipeHandler.addCrusherRecipe(new ItemStack(Item.ingotIron), new ItemStack(IronDust)); RecipeHandler.addCrusherRecipe(new ItemStack(Item.ingotIron), new ItemStack(Dust, 1, 0));
RecipeHandler.addCrusherRecipe(new ItemStack(Item.ingotGold), new ItemStack(GoldDust)); RecipeHandler.addCrusherRecipe(new ItemStack(Item.ingotGold), new ItemStack(Dust, 1, 1));
GameRegistry.addShapelessRecipe(new ItemStack(EnrichedAlloy, 1), new Object[] { GameRegistry.addShapelessRecipe(new ItemStack(EnrichedAlloy, 1), new Object[] {
Item.redstone, Item.lightStoneDust, IronDust, GoldDust, ObsidianDust, PlatinumDust Item.redstone, Item.lightStoneDust, new ItemStack(Dust, 1, 0), new ItemStack(Dust, 1, 1), new ItemStack(Dust, 1, 3), new ItemStack(Dust, 1, 2)
}); });
} }
@ -982,6 +961,9 @@ public class ObsidianIngots
GameRegistry.registerTileEntity(TileEntityPowerUnit.class, "PowerUnit"); GameRegistry.registerTileEntity(TileEntityPowerUnit.class, "PowerUnit");
GameRegistry.registerTileEntity(TileEntityAdvancedPowerUnit.class, "AdvancedPowerUnit"); GameRegistry.registerTileEntity(TileEntityAdvancedPowerUnit.class, "AdvancedPowerUnit");
GameRegistry.registerTileEntity(TileEntityHeatGenerator.class, "HeatGenerator"); GameRegistry.registerTileEntity(TileEntityHeatGenerator.class, "HeatGenerator");
GameRegistry.registerTileEntity(TileEntityWasher.class, "Washer");
GameRegistry.registerTileEntity(TileEntityTeleporter.class, "TeleporterSender");
GameRegistry.registerTileEntity(TileEntityEndiumChunkloader.class, "EndiumChunkloader");
} }
/** /**

View file

@ -27,13 +27,20 @@ public class OreHandler implements IWorldGenerator
{ {
if(ObsidianIngots.oreGenerationEnabled == true) if(ObsidianIngots.oreGenerationEnabled == true)
{ {
for (int i=0;i<6;i++) for(int i=0;i<6;i++)
{ {
int randPosX = chunkX + random.nextInt(16); int randPosX = chunkX + random.nextInt(16);
int randPosY = random.nextInt(60); int randPosY = random.nextInt(60);
int randPosZ = chunkZ + random.nextInt(16); int randPosZ = chunkZ + random.nextInt(16);
(new WorldGenMinable(new ItemStack(ObsidianIngots.OreBlock, 1, 0).itemID, 8)).generate(world, random, randPosX, randPosY, randPosZ); (new WorldGenMinable(new ItemStack(ObsidianIngots.OreBlock, 1, 0).itemID, 8)).generate(world, random, randPosX, randPosY, randPosZ);
} }
for(int i=0;i<2;i++)
{
int randPosX = chunkX + random.nextInt(16);
int randPosY = random.nextInt(60);
int randPosZ = chunkZ + random.nextInt(16);
(new WorldGenMinable(new ItemStack(ObsidianIngots.OreBlock, 1, 1).itemID, 6)).generate(world, random, randPosX, randPosY, randPosZ);
}
} }
} }
} }

View file

@ -18,6 +18,7 @@ import net.minecraft.src.Packet;
import net.minecraft.src.Packet250CustomPayload; import net.minecraft.src.Packet250CustomPayload;
import net.minecraft.src.TileEntity; import net.minecraft.src.TileEntity;
import net.minecraft.src.World; import net.minecraft.src.World;
import net.uberkat.obsidian.hawk.common.TileEntityWasher;
import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.network.IPacketHandler; import cpw.mods.fml.common.network.IPacketHandler;
@ -384,6 +385,84 @@ public class PacketHandler implements IPacketHandler
PacketDispatcher.sendPacketToAllAround(sender.xCoord, sender.yCoord, sender.zCoord, distance, sender.worldObj.provider.dimensionId, packet); PacketDispatcher.sendPacketToAllAround(sender.xCoord, sender.yCoord, sender.zCoord, distance, sender.worldObj.provider.dimensionId, packet);
} }
/**
* Send a damagable machine update packet from server to client. This will send the data int '4,' as well as
* the machine's x, y, and z coordinates, along with it's facing, active state, operating ticks, energy stored, max energy,
* HP, and water units.
* @param sender - tile entity who is sending the packet
*/
public static void sendWasherPacket(TileEntityWasher sender)
{
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
DataOutputStream output = new DataOutputStream(bytes);
try {
output.writeInt(EnumPacketType.TILE_ENTITY.id);
output.writeInt(sender.xCoord);
output.writeInt(sender.yCoord);
output.writeInt(sender.zCoord);
output.writeInt(sender.facing);
output.writeByte(sender.isActive ? 1 : 0);
output.writeInt(sender.operatingTicks);
output.writeInt(sender.energyStored);
output.writeInt(sender.currentMaxEnergy);
output.writeInt(sender.currentTicksRequired);
output.writeFloat(sender.waterUnits);
} catch (IOException e)
{
System.err.println("[ObsidianIngots] Error while writing tile entity packet.");
e.printStackTrace();
}
Packet250CustomPayload packet = new Packet250CustomPayload();
packet.channel = "ObsidianIngots";
packet.data = bytes.toByteArray();
packet.length = packet.data.length;
if(FMLCommonHandler.instance().getMinecraftServerInstance() != null)
{
FMLCommonHandler.instance().getMinecraftServerInstance().getConfigurationManager().sendPacketToAllPlayers(packet);
}
}
/**
* Send a damagable machine update packet from server to client with a defined range. This will send the data int '4,' as well as
* the machine's x, y, and z coordinates, along with it's facing, active state, operating ticks, energy stored, max energy,
* HP, and water units.
* @param sender - tile entity who is sending the packet
* @param distance - radius to send packet in
*/
public static void sendWasherPacketWithRange(TileEntityWasher sender, double distance)
{
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
DataOutputStream output = new DataOutputStream(bytes);
try {
output.writeInt(EnumPacketType.TILE_ENTITY.id);
output.writeInt(sender.xCoord);
output.writeInt(sender.yCoord);
output.writeInt(sender.zCoord);
output.writeInt(sender.facing);
output.writeByte(sender.isActive ? 1 : 0);
output.writeInt(sender.operatingTicks);
output.writeInt(sender.energyStored);
output.writeInt(sender.currentMaxEnergy);
output.writeInt(sender.currentTicksRequired);
output.writeFloat(sender.waterUnits);
} catch (IOException e)
{
System.err.println("[ObsidianIngots] Error while writing tile entity packet.");
e.printStackTrace();
}
Packet250CustomPayload packet = new Packet250CustomPayload();
packet.channel = "ObsidianIngots";
packet.data = bytes.toByteArray();
packet.length = packet.data.length;
PacketDispatcher.sendPacketToAllAround(sender.xCoord, sender.yCoord, sender.zCoord, distance, sender.worldObj.provider.dimensionId, packet);
}
/** /**
* Sends the server the defined packet data int. * Sends the server the defined packet data int.
* @param type - packet type * @param type - packet type

View file

@ -2,6 +2,7 @@ package net.uberkat.obsidian.common;
import java.util.*; import java.util.*;
import net.minecraft.src.*; import net.minecraft.src.*;
import net.uberkat.obsidian.hawk.common.TileEntityWasher;
/** /**
* Class used to handle machine recipes. This is used for both adding recipes and checking outputs. * Class used to handle machine recipes. This is used for both adding recipes and checking outputs.

View file

@ -347,62 +347,16 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
public void readFromNBT(NBTTagCompound nbtTags) public void readFromNBT(NBTTagCompound nbtTags)
{ {
super.readFromNBT(nbtTags); super.readFromNBT(nbtTags);
if(PowerFramework.currentFramework != null)
{
PowerFramework.currentFramework.loadPowerProvider(this, nbtTags);
}
NBTTagList tagList = nbtTags.getTagList("Items");
inventory = new ItemStack[getSizeInventory()];
for (int slots = 0; slots < tagList.tagCount(); ++slots)
{
NBTTagCompound tagCompound = (NBTTagCompound)tagList.tagAt(slots);
byte slotID = tagCompound.getByte("Slot");
if (slotID >= 0 && slotID < inventory.length)
{
inventory[slotID] = ItemStack.loadItemStackFromNBT(tagCompound);
}
}
operatingTicks = nbtTags.getInteger("operatingTicks");
energyStored = nbtTags.getInteger("energyStored");
secondaryEnergyStored = nbtTags.getInteger("secondaryEnergyStored"); secondaryEnergyStored = nbtTags.getInteger("secondaryEnergyStored");
prevActive = isActive = nbtTags.getBoolean("isActive");
facing = nbtTags.getInteger("facing");
} }
public void writeToNBT(NBTTagCompound nbtTags) public void writeToNBT(NBTTagCompound nbtTags)
{ {
super.writeToNBT(nbtTags); super.writeToNBT(nbtTags);
if(PowerFramework.currentFramework != null)
{
PowerFramework.currentFramework.savePowerProvider(this, nbtTags);
}
nbtTags.setInteger("operatingTicks", operatingTicks);
nbtTags.setInteger("energyStored", energyStored);
nbtTags.setInteger("secondaryEnergyStored", secondaryEnergyStored); nbtTags.setInteger("secondaryEnergyStored", secondaryEnergyStored);
nbtTags.setBoolean("isActive", isActive);
nbtTags.setInteger("facing", facing);
NBTTagList tagList = new NBTTagList();
for (int slots = 0; slots < inventory.length; ++slots)
{
if (inventory[slots] != null)
{
NBTTagCompound tagCompound = new NBTTagCompound();
tagCompound.setByte("Slot", (byte)slots);
inventory[slots].writeToNBT(tagCompound);
tagList.appendTag(tagCompound);
}
}
nbtTags.setTag("Items", tagList);
} }
/** /**

View file

@ -108,6 +108,32 @@ public abstract class TileEntityBasicMachine extends TileEntityElectricBlock imp
} }
} }
public void readFromNBT(NBTTagCompound nbtTags)
{
super.readFromNBT(nbtTags);
if(PowerFramework.currentFramework != null)
{
PowerFramework.currentFramework.loadPowerProvider(this, nbtTags);
}
operatingTicks = nbtTags.getInteger("operatingTicks");
isActive = nbtTags.getBoolean("isActive");
}
public void writeToNBT(NBTTagCompound nbtTags)
{
super.writeToNBT(nbtTags);
if(PowerFramework.currentFramework != null)
{
PowerFramework.currentFramework.savePowerProvider(this, nbtTags);
}
nbtTags.setInteger("operatingTicks", operatingTicks);
nbtTags.setBoolean("isActive", isActive);
}
public void invalidate() public void invalidate()
{ {
super.invalidate(); super.invalidate();

View file

@ -1,5 +1,6 @@
package net.uberkat.obsidian.common; package net.uberkat.obsidian.common;
import buildcraft.api.power.PowerFramework;
import obsidian.api.ITileNetwork; import obsidian.api.ITileNetwork;
import universalelectricity.prefab.TileEntityDisableable; import universalelectricity.prefab.TileEntityDisableable;
import ic2.api.EnergyNet; import ic2.api.EnergyNet;
@ -157,6 +158,50 @@ public abstract class TileEntityElectricBlock extends TileEntityDisableable impl
} }
} }
public void readFromNBT(NBTTagCompound nbtTags)
{
super.readFromNBT(nbtTags);
NBTTagList tagList = nbtTags.getTagList("Items");
inventory = new ItemStack[getSizeInventory()];
for (int slots = 0; slots < tagList.tagCount(); ++slots)
{
NBTTagCompound tagCompound = (NBTTagCompound)tagList.tagAt(slots);
byte slotID = tagCompound.getByte("Slot");
if (slotID >= 0 && slotID < inventory.length)
{
inventory[slotID] = ItemStack.loadItemStackFromNBT(tagCompound);
}
}
energyStored = nbtTags.getInteger("energyStored");
facing = nbtTags.getInteger("facing");
}
public void writeToNBT(NBTTagCompound nbtTags)
{
super.writeToNBT(nbtTags);
nbtTags.setInteger("energyStored", energyStored);
nbtTags.setInteger("facing", facing);
NBTTagList tagList = new NBTTagList();
for (int slots = 0; slots < inventory.length; ++slots)
{
if (inventory[slots] != null)
{
NBTTagCompound tagCompound = new NBTTagCompound();
tagCompound.setByte("Slot", (byte)slots);
inventory[slots].writeToNBT(tagCompound);
tagList.appendTag(tagCompound);
}
}
nbtTags.setTag("Items", tagList);
}
public boolean isUseableByPlayer(EntityPlayer entityplayer) public boolean isUseableByPlayer(EntityPlayer entityplayer)
{ {
return worldObj.getBlockTileEntity(xCoord, yCoord, zCoord) != this ? false : entityplayer.getDistanceSq((double)xCoord + 0.5D, (double)yCoord + 0.5D, (double)zCoord + 0.5D) <= 64.0D; return worldObj.getBlockTileEntity(xCoord, yCoord, zCoord) != this ? false : entityplayer.getDistanceSq((double)xCoord + 0.5D, (double)yCoord + 0.5D, (double)zCoord + 0.5D) <= 64.0D;

View file

@ -282,64 +282,6 @@ public abstract class TileEntityElectricMachine extends TileEntityBasicMachine
e.printStackTrace(); e.printStackTrace();
} }
} }
public void readFromNBT(NBTTagCompound nbtTags)
{
super.readFromNBT(nbtTags);
if(PowerFramework.currentFramework != null)
{
PowerFramework.currentFramework.loadPowerProvider(this, nbtTags);
}
NBTTagList tagList = nbtTags.getTagList("Items");
inventory = new ItemStack[getSizeInventory()];
for (int slots = 0; slots < tagList.tagCount(); ++slots)
{
NBTTagCompound tagCompound = (NBTTagCompound)tagList.tagAt(slots);
byte slotID = tagCompound.getByte("Slot");
if (slotID >= 0 && slotID < inventory.length)
{
inventory[slotID] = ItemStack.loadItemStackFromNBT(tagCompound);
}
}
operatingTicks = nbtTags.getInteger("operatingTicks");
energyStored = nbtTags.getInteger("energyStored");
isActive = nbtTags.getBoolean("isActive");
facing = nbtTags.getInteger("facing");
}
public void writeToNBT(NBTTagCompound nbtTags)
{
super.writeToNBT(nbtTags);
if(PowerFramework.currentFramework != null)
{
PowerFramework.currentFramework.savePowerProvider(this, nbtTags);
}
nbtTags.setInteger("operatingTicks", operatingTicks);
nbtTags.setInteger("energyStored", energyStored);
nbtTags.setBoolean("isActive", isActive);
nbtTags.setInteger("facing", facing);
NBTTagList tagList = new NBTTagList();
for (int slots = 0; slots < inventory.length; ++slots)
{
if (inventory[slots] != null)
{
NBTTagCompound tagCompound = new NBTTagCompound();
tagCompound.setByte("Slot", (byte)slots);
inventory[slots].writeToNBT(tagCompound);
tagList.appendTag(tagCompound);
}
}
nbtTags.setTag("Items", tagList);
}
public String[] getMethodNames() public String[] getMethodNames()
{ {

View file

@ -27,7 +27,7 @@ public class TileEntityPlatinumCompressor extends TileEntityAdvancedElectricMach
public int getFuelTicks(ItemStack itemstack) public int getFuelTicks(ItemStack itemstack)
{ {
if (itemstack.itemID == ObsidianIngots.PlatinumIngot.shiftedIndex) return 200; if (itemstack.itemID == new ItemStack(ObsidianIngots.Ingot, 1, 1).itemID) return 200;
return 0; return 0;
} }
} }

View file

@ -0,0 +1,32 @@
package net.uberkat.obsidian.hawk.common;
import net.minecraft.src.Container;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.InventoryPlayer;
import net.minecraft.src.Slot;
public class ContainerTeleporter extends Container
{
public ContainerTeleporter(InventoryPlayer playerInv)
{
for (int counter = 0; counter < 3; ++counter)
{
for (int var4 = 0; var4 < 9; ++var4)
{
this.addSlotToContainer(new Slot(playerInv, var4 + counter * 9 + 9, 8 + var4 * 18, 84 + counter * 18));
}
}
for (int counter = 0; counter < 9; ++counter)
{
this.addSlotToContainer(new Slot(playerInv, counter, 8 + counter * 18, 142));
}
}
@Override
public boolean canInteractWith(EntityPlayer player)
{
return true;
}
}

View file

@ -0,0 +1,122 @@
package net.uberkat.obsidian.hawk.common;
import hawk.api.ProcessingRecipes;
import net.minecraft.src.Container;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.InventoryPlayer;
import net.minecraft.src.ItemStack;
import net.minecraft.src.Slot;
import net.minecraft.src.SlotFurnace;
import net.minecraft.src.TileEntity;
import universalelectricity.prefab.SlotElectricItem;
import universalelectricity.implement.IItemElectric;
public class ContainerWasher extends Container
{
private TileEntityWasher tileEntity;
public ContainerWasher(InventoryPlayer playerInventory, TileEntityWasher tentity)
{
tileEntity = tentity;
addSlotToContainer(new SlotElectricItem(tileEntity, 0, 36, 47));//Electric item
addSlotToContainer(new Slot(tileEntity, 1, 58, 52));//Water input
addSlotToContainer(new Slot(tileEntity, 2, 36, 15));//Actual input
addSlotToContainer(new SlotFurnace(playerInventory.player, tileEntity, 3, 107, 32));
addSlotToContainer(new SlotFurnace(playerInventory.player, tileEntity, 4, 125, 32));
addSlotToContainer(new SlotFurnace(playerInventory.player, tileEntity, 5, 143, 32));
for (int counter = 0; counter < 3; ++counter)
{
for (int var4 = 0; var4 < 9; ++var4)
{
addSlotToContainer(new Slot(playerInventory, var4 + counter * 9 + 9, 8 + var4 * 18, 84 + counter * 18));
}
}
for (int counter = 0; counter < 9; ++counter)
{
addSlotToContainer(new Slot(playerInventory, counter, 8 + counter * 18, 142));
}
}
@Override
public boolean canInteractWith(EntityPlayer var1)
{
return true;
}
@Override
public ItemStack func_82846_b(EntityPlayer player, int par1)
{
ItemStack var2 = null;
Slot var3 = (Slot)inventorySlots.get(par1);
if (var3 != null && var3.getHasStack())
{
ItemStack var4 = var3.getStack();
var2 = var4.copy();
if (par1 == 2)
{
if (!mergeItemStack(var4, 3, 39, true))
{
return null;
}
var3.onSlotChange(var4, var2);
}
else if (par1 != 1 && par1 != 0)
{
if (var4.getItem() instanceof IItemElectric)
{
if (!mergeItemStack(var4, 0, 1, false))
{
return null;
}
}
else if (ProcessingRecipes.getResult(var4, ProcessingRecipes.EnumProcessing.WASHING) != null)
{
if (!mergeItemStack(var4, 1, 2, false))
{
return null;
}
}
else if (par1 >= 3 && par1 < 30)
{
if (!mergeItemStack(var4, 30, 39, false))
{
return null;
}
}
else if (par1 >= 30 && par1 < 39 && !mergeItemStack(var4, 3, 30, false))
{
return null;
}
}
else if (!mergeItemStack(var4, 3, 39, false))
{
return null;
}
if (var4.stackSize == 0)
{
var3.putStack((ItemStack)null);
}
else
{
var3.onSlotChanged();
}
if (var4.stackSize == var2.stackSize)
{
return null;
}
var3.func_82870_a(player, var4);
}
return var2;
}
}

View file

@ -0,0 +1,134 @@
package net.uberkat.obsidian.hawk.common;
import java.io.File;
import java.util.List;
import java.util.Random;
import net.minecraft.src.Achievement;
import net.minecraft.src.AchievementList;
import net.minecraft.src.ChunkProviderEnd;
import net.minecraft.src.ChunkProviderGenerate;
import net.minecraft.src.ChunkProviderHell;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.EntityVillager;
import net.minecraft.src.IChunkProvider;
import net.minecraft.src.IInventory;
import net.minecraft.src.Item;
import net.minecraft.src.ItemStack;
import net.minecraft.src.MerchantRecipe;
import net.minecraft.src.MerchantRecipeList;
import net.minecraft.src.NBTTagCompound;
import net.minecraft.src.World;
import net.minecraftforge.client.event.sound.SoundLoadEvent;
import net.minecraftforge.common.AchievementPage;
import net.minecraftforge.common.Configuration;
import net.minecraftforge.common.ForgeChunkManager.LoadingCallback;
import net.minecraftforge.common.ForgeChunkManager.Ticket;
import net.minecraftforge.event.ForgeSubscribe;
import net.uberkat.obsidian.common.ObsidianIngots;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.ICraftingHandler;
import cpw.mods.fml.common.IWorldGenerator;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler;
/**
*
*
*
* @author Elusivehawk
*/
public class HawkCore implements LoadingCallback, ICraftingHandler
{
private static int chunkLimit;
public static int partsID;
public static int endiumPlateID;
public static int rivetsID;
public static int rivetGunID;
public static int ingotsID;
public static int ACHprospector;
public static int ACHtimeToCrush;
public static int ACHminerkiin;
public static int ACHwash;
public static int washerTicks;
public static int maxChunksLoaded;
public static boolean enableUpdateChecking;
public static boolean enableAutoDL;
public static boolean enableChunkloader;
public static Configuration HMConfig = new Configuration(new File(Loader.instance().getConfigDir(), "HawksMachinery/HMConfig.cfg"));
public static void loadConfig()
{
HMConfig.load();
//NOTE ID #3964 saved for the Endium Chunkloader.
//endiumTeleporterID = HMConfig.getBlock("Endium Teleporter", 3965).getInt(3965);
enableUpdateChecking = HMConfig.get(Configuration.CATEGORY_GENERAL, "Enable Update Checking", true).getBoolean(true);
enableAutoDL = HMConfig.get(Configuration.CATEGORY_GENERAL, "Enable Auto DL", true).getBoolean(true);
enableChunkloader = HMConfig.get(Configuration.CATEGORY_GENERAL, "Enable Chunkloader Block", true).getBoolean(true);
if (enableChunkloader)
{
maxChunksLoaded = HMConfig.get("Max Chunks Loaded", Configuration.CATEGORY_GENERAL, 25).getInt(25);
}
partsID = HMConfig.get(Configuration.CATEGORY_ITEM, "Parts", 24152).getInt(24152);
endiumPlateID = HMConfig.get(Configuration.CATEGORY_ITEM, "Endium Plate", 24154).getInt(24154);
rivetsID = HMConfig.get(Configuration.CATEGORY_ITEM, "Rivets", 24155).getInt(24155);
rivetGunID = HMConfig.get(Configuration.CATEGORY_ITEM, "Rivet Gun", 24156).getInt(24156);
ingotsID = HMConfig.get(Configuration.CATEGORY_ITEM, "Ingots", 24157).getInt(24157);
ACHprospector = HMConfig.get(Configuration.CATEGORY_GENERAL, "ACH Prospector", 1500).getInt(1500);
ACHtimeToCrush = HMConfig.get(Configuration.CATEGORY_GENERAL, "ACH Time To Crush", 1501).getInt(1501);
ACHminerkiin = HMConfig.get(Configuration.CATEGORY_GENERAL, "ACH Minerkiin", 1503).getInt(1503);
ACHwash = HMConfig.get(Configuration.CATEGORY_GENERAL, "ACH Wash", 1504).getInt(1504);
if (FMLCommonHandler.instance().getSide().isServer())
{
HMConfig.addCustomCategoryComment("advanced_settings", "Advanced server OP settings, don't be a moron with them.");
washerTicks = HMConfig.get("advanced_settings", "Washer Ticks", 100).getInt(100);
}
HMConfig.save();
}
@Override
public void ticketsLoaded(List<Ticket> tickets, World world)
{
for (Ticket ticket : tickets)
{
int xPos = ticket.getModData().getInteger("xCoord");
int yPos = ticket.getModData().getInteger("yCoord");
int zPos = ticket.getModData().getInteger("zCoord");
if (world.getBlockTileEntity(xPos, yPos, zPos) != null)
{
if (world.getBlockTileEntity(xPos, yPos, zPos) instanceof TileEntityEndiumChunkloader)
{
((TileEntityEndiumChunkloader)world.getBlockTileEntity(xPos, yPos, zPos)).forceChunkLoading(ticket);
}
}
}
}
public void onCrafting(EntityPlayer player, ItemStack item, IInventory craftMatrix)
{
if (item.equals(new ItemStack(ObsidianIngots.MachineBlock, 1, 5)))
{
item.setTagCompound(new NBTTagCompound());
item.stackTagCompound.setInteger("MachineHP", 0);
}
}
@Override
public void onSmelting(EntityPlayer player, ItemStack item) {}
}

View file

@ -0,0 +1,70 @@
package net.uberkat.obsidian.hawk.common;
import hawk.api.ProcessingRecipes;
import hawk.api.ProcessingRecipes.EnumProcessing;
import java.io.File;
import java.util.List;
import obsidian.api.ItemRetriever;
import com.google.common.collect.ObjectArrays;
import universalelectricity.core.UniversalElectricity;
import universalelectricity.prefab.ItemElectric;
import universalelectricity.prefab.network.ConnectionHandler;
import universalelectricity.prefab.network.PacketManager;
import universalelectricity.prefab.ore.OreGenBase;
import universalelectricity.prefab.ore.OreGenerator;
import net.minecraft.src.Achievement;
import net.minecraft.src.AchievementList;
import net.minecraft.src.Block;
import net.minecraft.src.CraftingManager;
import net.minecraft.src.CreativeTabs;
import net.minecraft.src.Enchantment;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.EnumRarity;
import net.minecraft.src.EnumToolMaterial;
import net.minecraft.src.FurnaceRecipes;
import net.minecraft.src.IInventory;
import net.minecraft.src.Item;
import net.minecraft.src.ItemStack;
import net.minecraft.src.Material;
import net.minecraft.src.NBTTagCompound;
import net.minecraft.src.StepSound;
import net.minecraft.src.World;
import net.minecraftforge.common.AchievementPage;
import net.minecraftforge.common.Configuration;
import net.minecraftforge.common.DungeonHooks;
import net.minecraftforge.common.EnumHelper;
import net.minecraftforge.common.ForgeChunkManager;
import net.minecraftforge.common.ForgeChunkManager.Ticket;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.ShapedOreRecipe;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.ICraftingHandler;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.Metadata;
import cpw.mods.fml.common.ModMetadata;
import cpw.mods.fml.common.Side;
import cpw.mods.fml.common.Mod.Init;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.Mod.PostInit;
import cpw.mods.fml.common.Mod.PreInit;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.asm.SideOnly;
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.NetworkMod;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.VillagerRegistry;
public class HawksMachinery
{
public static ProcessingRecipes PROCESS_RECIPES;
public static EnumProcessing WASH = EnumProcessing.WASHING;
public static HawkCore CORE = new HawkCore();
}

View file

@ -0,0 +1,52 @@
package net.uberkat.obsidian.hawk.common;
import hawk.api.ProcessingRecipes.EnumProcessing;
import java.util.Random;
import com.google.common.io.ByteArrayDataInput;
import universalelectricity.electricity.ElectricInfo;
import universalelectricity.implement.IRotatable;
import universalelectricity.prefab.TileEntityElectricityReceiver;
import universalelectricity.prefab.network.IPacketReceiver;
import universalelectricity.prefab.network.PacketManager;
import universalelectricity.core.Vector3;
import net.minecraft.src.Entity;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.ItemStack;
import net.minecraft.src.NBTTagCompound;
import net.minecraft.src.NBTTagList;
import net.minecraft.src.INetworkManager;
import net.minecraft.src.Packet;
import net.minecraft.src.Packet250CustomPayload;
import net.minecraft.src.TileEntity;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.common.ISidedInventory;
import net.uberkat.obsidian.common.TileEntityBasicMachine;
/**
*
* Extend this if you'd like to make a machine slightly faster.
*
* @author Elusivehawk
*/
public abstract class TileEntityDamagableMachine extends TileEntityBasicMachine
{
public EnumProcessing machineEnum;
protected boolean isProcessor;
public TileEntityDamagableMachine(String soundPath, String name, String path, int perTick, int ticksRequired, int maxEnergy)
{
super(soundPath, name, path, perTick, ticksRequired, maxEnergy);
}
protected void explodeMachine(float strength)
{
worldObj.createExplosion((Entity)null, xCoord, yCoord, zCoord, strength, true);
}
public void handlePacketData(INetworkManager network, Packet250CustomPayload packet, EntityPlayer player, ByteArrayDataInput dataStream)
{
}
}

View file

@ -0,0 +1,50 @@
package net.uberkat.obsidian.hawk.common;
import net.minecraft.src.ChunkCoordIntPair;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.TileEntity;
import net.minecraftforge.common.ForgeChunkManager;
import net.minecraftforge.common.ForgeChunkManager.Ticket;
import net.minecraftforge.common.ForgeChunkManager.Type;
import net.uberkat.obsidian.common.ObsidianIngots;
public class TileEntityEndiumChunkloader extends TileEntity
{
public Ticket heldChunk;
public void invalidate()
{
forceChunkLoading(null);
}
public void validate()
{
forceChunkLoading(null);
}
public void forceChunkLoading(Ticket ticket)
{
if (ticket != null)
{
heldChunk = ticket;
ForgeChunkManager.forceChunk(heldChunk, new ChunkCoordIntPair(xCoord >> 4, zCoord >> 4));
}
else
{
if (heldChunk == null)
{
Ticket newTicket = ForgeChunkManager.requestTicket(ObsidianIngots.instance, worldObj, Type.NORMAL);
newTicket.getModData().setInteger("xCoord", xCoord);
newTicket.getModData().setInteger("yCoord", yCoord);
newTicket.getModData().setInteger("zCoord", zCoord);
newTicket.setChunkListDepth(HawksMachinery.CORE.maxChunksLoaded);
heldChunk = newTicket;
}
else
{
ForgeChunkManager.releaseTicket(heldChunk);
heldChunk = null;
}
}
}
}

View file

@ -0,0 +1,72 @@
package net.uberkat.obsidian.hawk.common;
import hawk.api.EndiumTeleporterCoords;
import hawk.api.TeleportationHelper;
import java.util.List;
import dan200.computer.api.IComputerAccess;
import net.minecraft.src.Entity;
import net.minecraftforge.common.ForgeDirection;
public class TileEntityTeleporter extends TileEntityDamagableMachine
{
public EndiumTeleporterCoords coords;
public TileEntityTeleporter()
{
super("hawk/Teleporter.ogg", "Teleporter", "/gui/hawk/Teleporter.png", 200, 0, 100000);
}
public boolean isReadyToTeleport()
{
return energyStored == MAX_ENERGY && worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord) && coords != null;
}
public void teleportEntity(Entity entity)
{
TeleportationHelper.instance().teleportEntity(entity, coords);
energyStored = 0;
}
public boolean canReceiveFromSide(ForgeDirection side)
{
return side.ordinal() == 0;
}
public boolean canOperate()
{
return false;
}
public void operate()
{
}
public List getRecipes()
{
return null;
}
public String[] getMethodNames()
{
return null;
}
public Object[] callMethod(IComputerAccess computer, int method, Object[] arguments) throws Exception
{
return null;
}
public void sendPacket()
{
//Nothing to see here
}
public void sendPacketWithRange()
{
//Nothing to see here either.
}
}

View file

@ -0,0 +1,266 @@
package net.uberkat.obsidian.hawk.common;
import hawk.api.ProcessingRecipes;
import hawk.api.ProcessingRecipes.EnumProcessing;
import java.util.List;
import java.util.Random;
import java.util.Vector;
import obsidian.api.IEnergizedItem;
import buildcraft.api.core.Orientations;
import com.google.common.io.ByteArrayDataInput;
import cpw.mods.fml.common.FMLCommonHandler;
import dan200.computer.api.IComputerAccess;
import net.minecraft.src.EntityItem;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.IInventory;
import net.minecraft.src.Block;
import net.minecraft.src.Item;
import net.minecraft.src.ItemStack;
import net.minecraft.src.NBTTagCompound;
import net.minecraft.src.NBTTagList;
import net.minecraft.src.INetworkManager;
import net.minecraft.src.Packet;
import net.minecraft.src.Packet250CustomPayload;
import net.minecraft.src.TileEntity;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.common.ISidedInventory;
import net.uberkat.obsidian.common.PacketHandler;
import net.uberkat.obsidian.common.TileEntityBasicMachine;
import universalelectricity.electricity.ElectricInfo;
import universalelectricity.prefab.TileEntityElectricityReceiver;
import universalelectricity.implement.IItemElectric;
import universalelectricity.implement.IRedstoneReceptor;
import universalelectricity.implement.IRotatable;
import universalelectricity.prefab.network.IPacketReceiver;
import universalelectricity.prefab.network.PacketManager;
public class TileEntityWasher extends TileEntityDamagableMachine
{
public static Vector recipes;
public float waterUnits = 0;
public float WATER_LIMIT = 25.0F;
public TileEntityWasher()
{
super("hawk/Washer.ogg", "Washer", "/gui/hawk/GuiWasher.png", 10, 200, 1200);
inventory = new ItemStack[6];
machineEnum = EnumProcessing.WASHING;
isProcessor = true;
}
public void onUpdate()
{
super.onUpdate();
if (inventory[0] != null)
{
if(energyStored < currentMaxEnergy)
{
if(inventory[0].getItem() instanceof IEnergizedItem)
{
int received = 0;
int energyNeeded = currentMaxEnergy - energyStored;
IEnergizedItem item = (IEnergizedItem)inventory[0].getItem();
if(item.getRate() <= energyNeeded)
{
received = item.discharge(inventory[0], item.getRate());
}
else if(item.getRate() > energyNeeded)
{
received = item.discharge(inventory[0], energyNeeded);
}
setEnergy(energyStored + received);
}
}
}
if (inventory[1] != null)
{
if (inventory[1].getItem() == Item.bucketWater && waterUnits + 1.0F <= WATER_LIMIT)
{
waterUnits += 1.0;
inventory[1] = new ItemStack(Item.bucketEmpty, 1);
}
}
if (canOperate())
{
if (inventory[2] != null && operatingTicks == 0)
{
operatingTicks = TICKS_REQUIRED;
}
if (canOperate() && operatingTicks > 0)
{
--operatingTicks;
waterUnits -= 0.01F;
if (operatingTicks == 1)
{
operate();
operatingTicks = 0;
}
energyStored = energyStored - ENERGY_PER_TICK;
}
else
{
operatingTicks = 0;
}
}
if (waterUnits > WATER_LIMIT)
{
waterUnits = WATER_LIMIT;
}
if (worldObj.getBlockId(xCoord, yCoord + 1, zCoord) == Block.waterStill.blockID && waterUnits + 1.0F <= WATER_LIMIT)
{
waterUnits += 1.0F;
worldObj.setBlockWithNotify(xCoord, yCoord + 1, zCoord, 0);
}
if (!canOperate() && operatingTicks != 0)
{
operatingTicks = 0;
}
}
public boolean canOperate()
{
if (inventory[2] == null)
{
return false;
}
else
{
if (energyStored >= ENERGY_PER_TICK * 2 && waterUnits >= 1.0F && !isDisabled())
{
ItemStack var1 = ProcessingRecipes.getResult(inventory[2], machineEnum);
if (var1 == null) return false;
if (inventory[3] == null) return true;
if (!inventory[3].isItemEqual(var1)) return false;
int result = inventory[3].stackSize + var1.stackSize;
return (result <= getInventoryStackLimit() && result <= var1.getMaxStackSize());
}
else
{
return false;
}
}
}
public void operate()
{
if (canOperate())
{
ItemStack newItem = ProcessingRecipes.getResult(inventory[2], machineEnum);
if (inventory[3] == null)
{
inventory[3] = newItem.copy();
}
else if (inventory[3].isItemEqual(newItem))
{
inventory[3].stackSize += newItem.stackSize;
}
inventory[2].stackSize -= ProcessingRecipes.getQuantity(inventory[2], machineEnum);
if (inventory[2].stackSize <= 0)
{
inventory[2] = null;
}
}
}
public void handlePacketData(INetworkManager network, Packet250CustomPayload packet, EntityPlayer player, ByteArrayDataInput dataStream)
{
try {
facing = dataStream.readInt();
isActive = dataStream.readByte() != 0;
operatingTicks = dataStream.readInt();
energyStored = dataStream.readInt();
currentMaxEnergy = dataStream.readInt();
currentTicksRequired = dataStream.readInt();
waterUnits = dataStream.readFloat();
worldObj.markBlockAsNeedsUpdate(xCoord, yCoord, zCoord);
} catch (Exception e)
{
System.out.println("[ObsidianIngots] Error while handling tile entity packet.");
e.printStackTrace();
}
}
public int getWashingStatus(int par1)
{
return operatingTicks * par1 / 200;
}
public void readFromNBT(NBTTagCompound NBTTag)
{
super.readFromNBT(NBTTag);
waterUnits = NBTTag.getFloat("waterUnits");
}
public void writeToNBT(NBTTagCompound NBTTag)
{
super.writeToNBT(NBTTag);
NBTTag.setFloat("waterUnits", waterUnits);
}
public void sendPacket()
{
PacketHandler.sendWasherPacket(this);
}
public void sendPacketWithRange()
{
PacketHandler.sendWasherPacketWithRange(this, 50);
}
public String[] getMethodNames()
{
return new String[] {"getStored", "getProgress", "isActive", "facing", "canOperate", "getMaxEnergy", "getEnergyNeeded", "getWater", "getWaterNeeded"};
}
public Object[] callMethod(IComputerAccess computer, int method, Object[] arguments) throws Exception
{
switch(method)
{
case 0:
return new Object[] {energyStored};
case 1:
return new Object[] {operatingTicks};
case 2:
return new Object[] {isActive};
case 3:
return new Object[] {facing};
case 4:
return new Object[] {canOperate()};
case 5:
return new Object[] {currentMaxEnergy};
case 6:
return new Object[] {(currentMaxEnergy-energyStored)};
case 7:
return new Object[] {waterUnits};
case 8:
return new Object[] {(WATER_LIMIT - waterUnits)};
default:
System.err.println("[ObsidianIngots] Attempted to call unknown method with computer ID " + computer.getID());
return new Object[] {"Unknown command."};
}
}
public List getRecipes()
{
return recipes;
}
}

View file

@ -35,6 +35,10 @@ import net.uberkat.obsidian.common.TileEntityGenerator;
import net.uberkat.obsidian.common.TileEntityPlatinumCompressor; import net.uberkat.obsidian.common.TileEntityPlatinumCompressor;
import net.uberkat.obsidian.common.TileEntityPowerUnit; import net.uberkat.obsidian.common.TileEntityPowerUnit;
import net.uberkat.obsidian.common.TileEntityTheoreticalElementizer; import net.uberkat.obsidian.common.TileEntityTheoreticalElementizer;
import net.uberkat.obsidian.hawk.client.GuiTeleporter;
import net.uberkat.obsidian.hawk.client.GuiWasher;
import net.uberkat.obsidian.hawk.common.TileEntityTeleporter;
import net.uberkat.obsidian.hawk.common.TileEntityWasher;
/** /**
* Client proxy for Obsidian Ingots mod. * Client proxy for Obsidian Ingots mod.
@ -61,6 +65,10 @@ public class ClientProxy extends CommonProxy
MinecraftForgeClient.preloadTexture("/textures/ElementizerBack.png"); MinecraftForgeClient.preloadTexture("/textures/ElementizerBack.png");
MinecraftForgeClient.preloadTexture("/textures/ElementizerSide.png"); MinecraftForgeClient.preloadTexture("/textures/ElementizerSide.png");
//Hawk's Machines
MinecraftForgeClient.preloadTexture("/textures/hawk/blocks.png");
MinecraftForgeClient.preloadTexture("/textures/hawk/items.png");
//Register animated TextureFX for machines //Register animated TextureFX for machines
try { try {
TextureFXManager.instance().addAnimation(new TextureAnimatedFX("/textures/CompressorFront.png", ObsidianIngots.ANIMATED_TEXTURE_INDEX)); TextureFXManager.instance().addAnimation(new TextureAnimatedFX("/textures/CompressorFront.png", ObsidianIngots.ANIMATED_TEXTURE_INDEX));
@ -122,6 +130,12 @@ public class ClientProxy extends CommonProxy
case 9: case 9:
TileEntityGenerator tileentity6 = (TileEntityGenerator)world.getBlockTileEntity(x, y, z); TileEntityGenerator tileentity6 = (TileEntityGenerator)world.getBlockTileEntity(x, y, z);
return new GuiGenerator(player.inventory, tileentity6); return new GuiGenerator(player.inventory, tileentity6);
case 10:
TileEntityWasher tileentity7 = (TileEntityWasher)world.getBlockTileEntity(x, y, z);
return new GuiWasher(player.inventory, tileentity7);
case 11:
TileEntityTeleporter tileentity8 = (TileEntityTeleporter)world.getBlockTileEntity(x, y, z);
return new GuiTeleporter(player.inventory, tileentity8);
} }
return null; return null;
} }

View file

@ -0,0 +1,38 @@
package net.uberkat.obsidian.hawk.client;
import org.lwjgl.opengl.GL11;
import net.minecraft.src.GuiButton;
import net.minecraft.src.GuiContainer;
import net.minecraft.src.InventoryPlayer;
import net.uberkat.obsidian.hawk.common.ContainerTeleporter;
import net.uberkat.obsidian.hawk.common.HawksMachinery;
import net.uberkat.obsidian.hawk.common.TileEntityTeleporter;
public class GuiTeleporter extends GuiContainer
{
public TileEntityTeleporter tileEntity;
private int containerWidth;
private int containerHeight;
public GuiTeleporter(InventoryPlayer player, TileEntityTeleporter tentity)
{
super(new ContainerTeleporter(player));
tileEntity = tentity;
}
public void initGui()
{
controlList.add(new GuiButton(0, containerHeight - 9, containerWidth - 9, 16, 16, null));
}
protected void drawGuiContainerBackgroundLayer(float var1, int var2, int var3)
{
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
mc.renderEngine.bindTexture(mc.renderEngine.getTexture("/gui/GuiEndiumTeleporter.png"));
containerWidth = (width - xSize) / 2;
containerHeight = (height - ySize) / 2;
drawTexturedModalRect(containerWidth, containerHeight, 0, 0, xSize, ySize);
}
}

View file

@ -0,0 +1,60 @@
package net.uberkat.obsidian.hawk.client;
import org.lwjgl.opengl.GL11;
import universalelectricity.electricity.ElectricInfo;
import net.minecraft.src.GuiContainer;
import net.minecraft.src.InventoryPlayer;
import net.minecraft.src.StatCollector;
import net.uberkat.obsidian.hawk.common.ContainerWasher;
import net.uberkat.obsidian.hawk.common.HawksMachinery;
import net.uberkat.obsidian.hawk.common.TileEntityWasher;
/**
*
*
*
* @author Elusivehawk
*/
public class GuiWasher extends GuiContainer
{
private TileEntityWasher tileEntity;
private int containerWidth;
private int containerHeight;
public GuiWasher(InventoryPlayer playerInv, TileEntityWasher tentity)
{
super(new ContainerWasher(playerInv, tentity));
tileEntity = tentity;
}
@Override
protected void drawGuiContainerForegroundLayer(int par1, int par2)
{
fontRenderer.drawString(ElectricInfo.getDisplayShort(tileEntity.getVoltage(), ElectricInfo.ElectricUnit.VOLTAGE), 116, 60, 4210752);
fontRenderer.drawString(ElectricInfo.getDisplayShort(tileEntity.energyStored, ElectricInfo.ElectricUnit.WATT), 116, 70, 4210752);
}
/**
* Draw the background layer for the GuiContainer (everything behind the items)
*/
@Override
protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3)
{
int var4 = mc.renderEngine.getTexture("/gui/GuiWasher.png");
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
mc.renderEngine.bindTexture(var4);
containerWidth = (width - xSize) / 2;
containerHeight = (height - ySize) / 2;
drawTexturedModalRect(containerWidth, containerHeight, 0, 0, xSize, ySize);
if (tileEntity.operatingTicks > 0)
{
int scale = tileEntity.getWashingStatus(tileEntity.TICKS_REQUIRED);
drawTexturedModalRect(containerWidth + 52, containerHeight + 28, 176, 0, 52 - scale, 20);
}
drawTexturedModalRect(containerWidth - 32, containerHeight - 16, 0, 232, 240, 16);
}
}