diff --git a/bin/minecraft/obsidian/terrain.png b/bin/minecraft/obsidian/terrain.png index 1b293d139..01823951a 100755 Binary files a/bin/minecraft/obsidian/terrain.png and b/bin/minecraft/obsidian/terrain.png differ diff --git a/src/common/net/uberkat/obsidian/common/BlockMachine.java b/src/common/net/uberkat/obsidian/common/BlockMachine.java index 6006d4a10..1c0adc702 100644 --- a/src/common/net/uberkat/obsidian/common/BlockMachine.java +++ b/src/common/net/uberkat/obsidian/common/BlockMachine.java @@ -17,6 +17,7 @@ public class BlockMachine extends BlockContainer super(id, Material.iron); setHardness(3.5F); setResistance(8F); + setCreativeTab(CreativeTabs.tabDeco); } public void onBlockPlacedBy(World world, int x, int y, int z, EntityLiving entityliving) diff --git a/src/common/net/uberkat/obsidian/common/ObsidianHooks.java b/src/common/net/uberkat/obsidian/common/ObsidianHooks.java index 01cd6b1b9..c6f1bda52 100644 --- a/src/common/net/uberkat/obsidian/common/ObsidianHooks.java +++ b/src/common/net/uberkat/obsidian/common/ObsidianHooks.java @@ -1,5 +1,6 @@ package net.uberkat.obsidian.common; +import ic2.api.Ic2Recipes; import net.minecraft.src.*; /** @@ -22,8 +23,10 @@ public class ObsidianHooks if(IC2Loaded) { - IC2IronDust = getIC2Item("goldDust", false); - IC2GoldDust = getIC2Item("ironDust", false); + IC2IronDust = getIC2Item("ironDust", false); + IC2GoldDust = getIC2Item("goldDust", false); + + Ic2Recipes.addMaceratorRecipe(new ItemStack(ObsidianIngots.MultiBlock, 1, 0), new ItemStack(ObsidianIngots.PlatinumDust, 2)); } } diff --git a/src/common/net/uberkat/obsidian/common/ObsidianIngots.java b/src/common/net/uberkat/obsidian/common/ObsidianIngots.java index e3a7c0da0..de487ee27 100644 --- a/src/common/net/uberkat/obsidian/common/ObsidianIngots.java +++ b/src/common/net/uberkat/obsidian/common/ObsidianIngots.java @@ -35,7 +35,7 @@ import cpw.mods.fml.common.registry.TickRegistry; * @author AidanBrady * */ -@Mod(modid = "ObsidianIngots", name = "Obsidian Ingots", version = "4.0.8") +@Mod(modid = "ObsidianIngots", name = "Obsidian Ingots", version = "4.0.9") @NetworkMod(channels = { "ObsidianIngots" }, clientSideRequired = true, serverSideRequired = false, packetHandler = PacketHandler.class) public class ObsidianIngots { @@ -57,7 +57,7 @@ public class ObsidianIngots public static Configuration configuration; /** Obsidian Ingots version number */ - public static Version versionNumber = new Version(4, 0, 8); + public static Version versionNumber = new Version(4, 0, 9); /** The latest version number which is received from the Obsidian Ingots server */ public static String latestVersionNumber; @@ -486,6 +486,7 @@ public class ObsidianIngots //Smelting GameRegistry.addSmelting(new ItemStack(MultiBlock, 1, 0).itemID, new ItemStack(PlatinumIngot), 1.0F); + GameRegistry.addSmelting(PlatinumDust.shiftedIndex, new ItemStack(PlatinumIngot, 1), 1.0F); } /** @@ -800,12 +801,12 @@ public class ObsidianIngots ObsidianTNT = new BlockObsidianTNT(obsidianTNTID).setBlockName("ObsidianTNT").setCreativeTab(CreativeTabs.tabBlock); if(extrasEnabled == true) { - TheoreticalElementizer = new BlockTheoreticalElementizer(elementizerID).setBlockName("TheoreticalElementizer").setCreativeTab(CreativeTabs.tabBlock); + TheoreticalElementizer = new BlockTheoreticalElementizer(elementizerID).setBlockName("TheoreticalElementizer"); } - EnrichmentChamber = new BlockEnrichmentChamber(enrichmentChamberID).setBlockName("EnrichmentChamberIdle").setCreativeTab(CreativeTabs.tabBlock); - PlatinumCompressor = new BlockPlatinumCompressor(platinumCompressorID).setBlockName("PlatinumCompressorIdle").setCreativeTab(CreativeTabs.tabBlock); - Combiner = new BlockCombiner(combinerID).setBlockName("CombinerIdle").setCreativeTab(CreativeTabs.tabBlock); - Crusher = new BlockCrusher(crusherID).setBlockName("CrusherIdle").setCreativeTab(CreativeTabs.tabBlock); + EnrichmentChamber = new BlockEnrichmentChamber(enrichmentChamberID).setBlockName("EnrichmentChamber"); + PlatinumCompressor = new BlockPlatinumCompressor(platinumCompressorID).setBlockName("PlatinumCompressor"); + Combiner = new BlockCombiner(combinerID).setBlockName("Combiner"); + Crusher = new BlockCrusher(crusherID).setBlockName("Crusher"); //Registrations GameRegistry.registerBlock(ObsidianTNT); @@ -872,7 +873,10 @@ public class ObsidianIngots @PostInit public void postInit(FMLPostInitializationEvent event) { + hooks = new ObsidianHooks(); + hooks.hook(); addIntegratedItems(); + System.out.println("[ObsidianIngots] Hooking complete."); } @PreInit @@ -893,9 +897,6 @@ public class ObsidianIngots proxy.loadTickHandler(); //Hook with mods Obsidian Ingots has implemented - hooks = new ObsidianHooks(); - hooks.hook(); - System.out.println("[ObsidianIngots] Hooking complete."); //Add all items addItems(); diff --git a/src/common/net/uberkat/obsidian/common/PacketHandler.java b/src/common/net/uberkat/obsidian/common/PacketHandler.java index cfd8d3f9b..97355f996 100644 --- a/src/common/net/uberkat/obsidian/common/PacketHandler.java +++ b/src/common/net/uberkat/obsidian/common/PacketHandler.java @@ -133,6 +133,35 @@ public class PacketHandler implements IPacketHandler } } + public static void sendMachinePacketWithRange(TileEntityMachine sender, double distance) + { + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream output = new DataOutputStream(bytes); + + try { + output.writeInt(2); + 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.machineBurnTime); + output.writeInt(sender.machineCookTime); + output.writeInt(sender.currentItemBurnTime); + } 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.worldType, packet); + } + /** * Sends the server the defined packet data int. * @param type - packet type diff --git a/src/common/net/uberkat/obsidian/common/TileEntityMachine.java b/src/common/net/uberkat/obsidian/common/TileEntityMachine.java index 8bf76bb96..ffb59f8b9 100644 --- a/src/common/net/uberkat/obsidian/common/TileEntityMachine.java +++ b/src/common/net/uberkat/obsidian/common/TileEntityMachine.java @@ -51,6 +51,9 @@ public abstract class TileEntityMachine extends TileEntity implements IInventory /** An integer that constantly cycles from 0 to 15. Used for animated textures. */ public int textureIndex = 0; + /** Amount of ticks passed since Tile Entity init. Used for update packets. */ + public int packetTick = 0; + /** * Instance of TileEntityMachine. Extend this for a head start on machine making. * @param time - time it takes to smelt an item @@ -94,6 +97,8 @@ public abstract class TileEntityMachine extends TileEntity implements IInventory } updateTick(); + updatePacketTick(); + if(machineCookTime == 0 || machineCookTime == maxBurnTime && currentItemBurnTime != 0) { currentItemBurnTime = 0; @@ -118,6 +123,18 @@ public abstract class TileEntityMachine extends TileEntity implements IInventory } } + public void updatePacketTick() + { + if(packetTick % 100 == 0) + { + packetTick++; + PacketHandler.sendMachinePacketWithRange(this, 50); + } + else { + packetTick++; + } + } + /** * Check to see when to run updateTexture(). Called every tick, but functions every 3. */