diff --git a/src/common/net/uberkat/obsidian/common/ContainerAdvancedElectricMachine.java b/src/common/net/uberkat/obsidian/common/ContainerAdvancedElectricMachine.java index 431f73511..ef8a4e7a0 100644 --- a/src/common/net/uberkat/obsidian/common/ContainerAdvancedElectricMachine.java +++ b/src/common/net/uberkat/obsidian/common/ContainerAdvancedElectricMachine.java @@ -32,6 +32,14 @@ public class ContainerAdvancedElectricMachine extends Container { addSlotToContainer(new Slot(inventory, slotX, 8 + slotX * 18, 142)); } + + tileEntity.openChest(); + } + + public void onCraftGuiClosed(EntityPlayer entityplayer) + { + super.onCraftGuiClosed(entityplayer); + tileEntity.closeChest(); } public boolean canInteractWith(EntityPlayer par1EntityPlayer) diff --git a/src/common/net/uberkat/obsidian/common/ContainerElectricMachine.java b/src/common/net/uberkat/obsidian/common/ContainerElectricMachine.java index 66367b038..503d8f219 100644 --- a/src/common/net/uberkat/obsidian/common/ContainerElectricMachine.java +++ b/src/common/net/uberkat/obsidian/common/ContainerElectricMachine.java @@ -31,6 +31,14 @@ public class ContainerElectricMachine extends Container { addSlotToContainer(new Slot(inventory, slotX, 8 + slotX * 18, 142)); } + + tileEntity.openChest(); + } + + public void onCraftGuiClosed(EntityPlayer entityplayer) + { + super.onCraftGuiClosed(entityplayer); + tileEntity.closeChest(); } public boolean canInteractWith(EntityPlayer par1EntityPlayer) diff --git a/src/common/net/uberkat/obsidian/common/ContainerGenerator.java b/src/common/net/uberkat/obsidian/common/ContainerGenerator.java index 46d625c99..f83e3fe7c 100644 --- a/src/common/net/uberkat/obsidian/common/ContainerGenerator.java +++ b/src/common/net/uberkat/obsidian/common/ContainerGenerator.java @@ -29,6 +29,14 @@ public class ContainerGenerator extends Container { addSlotToContainer(new Slot(inventory, slotX, 8 + slotX * 18, 142)); } + + tileEntity.openChest(); + } + + public void onCraftGuiClosed(EntityPlayer entityplayer) + { + super.onCraftGuiClosed(entityplayer); + tileEntity.closeChest(); } public boolean canInteractWith(EntityPlayer par1EntityPlayer) diff --git a/src/common/net/uberkat/obsidian/common/ContainerPowerUnit.java b/src/common/net/uberkat/obsidian/common/ContainerPowerUnit.java index 220c6185f..56f9cca98 100644 --- a/src/common/net/uberkat/obsidian/common/ContainerPowerUnit.java +++ b/src/common/net/uberkat/obsidian/common/ContainerPowerUnit.java @@ -29,7 +29,15 @@ public class ContainerPowerUnit extends Container { addSlotToContainer(new Slot(inventory, slotX, 8 + slotX * 18, 142)); } - } + + tileEntity.openChest(); + } + + public void onCraftGuiClosed(EntityPlayer entityplayer) + { + super.onCraftGuiClosed(entityplayer); + tileEntity.closeChest(); + } public boolean canInteractWith(EntityPlayer par1EntityPlayer) { diff --git a/src/common/net/uberkat/obsidian/common/ObsidianHooks.java b/src/common/net/uberkat/obsidian/common/ObsidianHooks.java index 6d4266494..037e7e8cd 100644 --- a/src/common/net/uberkat/obsidian/common/ObsidianHooks.java +++ b/src/common/net/uberkat/obsidian/common/ObsidianHooks.java @@ -25,13 +25,13 @@ public class ObsidianHooks public boolean IC2Loaded = false; public boolean RailcraftLoaded = false; - public boolean UELoaded = false; + public boolean BCLoaded = false; public void hook() { if(isIC2Installed()) IC2Loaded = true; if(isRailcraftInstalled()) RailcraftLoaded = true; - if(isUEInstalled()) UELoaded = true; + if(isUEInstalled()) BCLoaded = true; if(IC2Loaded) { @@ -49,6 +49,10 @@ public class ObsidianHooks System.out.println("[ObsidianIngots] Hooked into Railcraft successfully."); } + if(BCLoaded) + { + System.out.println("[ObsidianIngots] Hooked into BasicComponents successfully."); + } } /** @@ -120,7 +124,7 @@ public class ObsidianHooks public boolean isUEInstalled() { try { - if(BCLoader == null) BCLoader = Class.forName("basiccomponents.BasicComponents"); + if(BCLoader == null) BCLoader = Class.forName("basiccomponents.BCLoader"); Object ret = BCLoader.getField("instance").get(null); if(ret != null) @@ -129,7 +133,7 @@ public class ObsidianHooks } return false; } catch(Exception e) { - System.out.println("[ObsidianIngots] Unable to hook into UniversalElectricity."); + System.out.println("[ObsidianIngots] Unable to hook into BasicComponents."); return false; } } diff --git a/src/common/net/uberkat/obsidian/common/TileEntityBasicMachine.java b/src/common/net/uberkat/obsidian/common/TileEntityBasicMachine.java index 55e6735e4..f9afc1750 100644 --- a/src/common/net/uberkat/obsidian/common/TileEntityBasicMachine.java +++ b/src/common/net/uberkat/obsidian/common/TileEntityBasicMachine.java @@ -80,18 +80,21 @@ public abstract class TileEntityBasicMachine extends TileEntityElectricBlock imp if(PowerFramework.currentFramework != null) { powerProvider = PowerFramework.currentFramework.createPowerProvider(); - powerProvider.configure(20, 25, 25, 25, maxEnergy/10); + powerProvider.configure(5, 2, 10, 1, maxEnergy/10); } } public void onUpdate() { - if(audio == null && worldObj.isRemote) + if(audio == null && worldObj != null && worldObj.isRemote) { - audio = ObsidianIngots.audioHandler.getSound(fullName.replace(" ", ""), soundURL, worldObj, xCoord, yCoord, zCoord); + if(FMLClientHandler.instance().getClient().sndManager.sndSystem != null) + { + audio = ObsidianIngots.audioHandler.getSound(fullName.replace(" ", ""), soundURL, worldObj, xCoord, yCoord, zCoord); + } } - if(worldObj.isRemote) + if(worldObj != null && worldObj.isRemote && audio != null) { audio.updateVolume(FMLClientHandler.instance().getClient().thePlayer); if(!audio.isPlaying && isActive == true) @@ -215,7 +218,19 @@ public abstract class TileEntityBasicMachine extends TileEntityElectricBlock imp public void onReceive(TileEntity sender, double amps, double voltage, ForgeDirection side) { - setEnergy(energyStored + (int)(ElectricInfo.getJoules(amps, voltage)*UniversalElectricity.TO_IC2_RATIO)); + int energyToReceive = (int)(ElectricInfo.getJoules(amps, voltage)*UniversalElectricity.TO_IC2_RATIO); + int energyNeeded = currentMaxEnergy - energyStored; + int energyToStore = 0; + + if(energyToReceive <= energyNeeded) + { + energyToStore = energyToReceive; + } + else if(energyToReceive > energyNeeded) + { + energyToStore = energyNeeded; + } + setEnergy(energyStored + energyToStore); } /** diff --git a/src/common/net/uberkat/obsidian/common/TileEntityPowerUnit.java b/src/common/net/uberkat/obsidian/common/TileEntityPowerUnit.java index 9a7ee3f54..79dc621e0 100644 --- a/src/common/net/uberkat/obsidian/common/TileEntityPowerUnit.java +++ b/src/common/net/uberkat/obsidian/common/TileEntityPowerUnit.java @@ -408,7 +408,19 @@ public class TileEntityPowerUnit extends TileEntityElectricBlock implements IEne public void onReceive(TileEntity sender, double amps, double voltage, ForgeDirection side) { - setEnergy(energyStored + (int)(ElectricInfo.getJoules(amps, voltage)*UniversalElectricity.TO_IC2_RATIO)); + int energyToReceive = (int)(ElectricInfo.getJoules(amps, voltage)*UniversalElectricity.TO_IC2_RATIO); + int energyNeeded = MAX_ENERGY - energyStored; + int energyToStore = 0; + + if(energyToReceive <= energyNeeded) + { + energyToStore = energyToReceive; + } + else if(energyToReceive > energyNeeded) + { + energyToStore = energyNeeded; + } + setEnergy(energyStored + energyToStore); } public double wattRequest() diff --git a/src/common/obsidian/api/IEnergyAcceptor.java b/src/common/obsidian/api/IEnergyAcceptor.java index 744a0ff61..1cdee09b5 100644 --- a/src/common/obsidian/api/IEnergyAcceptor.java +++ b/src/common/obsidian/api/IEnergyAcceptor.java @@ -2,9 +2,24 @@ package obsidian.api; import net.minecraftforge.common.ForgeDirection; +/** + * Implement this if your tile entity accepts energy from a foreign, external source. + * @author AidanBrady + * + */ public interface IEnergyAcceptor { + /** + * Transfer a certain amount of energy to this acceptor. + * @param amount - amount to transfer + * @return rejects + */ public int transferToAcceptor(int amount); + /** + * Whether or not this tile entity accepts energy from a certain side. + * @param side - side to check + * @return if tile entity accepts energy + */ public boolean canReceive(ForgeDirection side); } diff --git a/src/minecraft/net/uberkat/obsidian/client/SoundHandler.java b/src/minecraft/net/uberkat/obsidian/client/SoundHandler.java index d6017ddb8..9dd59ede4 100644 --- a/src/minecraft/net/uberkat/obsidian/client/SoundHandler.java +++ b/src/minecraft/net/uberkat/obsidian/client/SoundHandler.java @@ -39,7 +39,14 @@ public class SoundHandler */ public Sound getSound(String name, String path, World world, int x, int y, int z) { - return new Sound(soundSystem, getSoundName(name), path, world, x, y, z); + if(soundSystem != null) + { + return new Sound(soundSystem, getSoundName(name), path, world, x, y, z); + } + else { + soundSystem = FMLClientHandler.instance().getClient().sndManager.sndSystem; + return new Sound(soundSystem, getSoundName(name), path, world, x, y, z); + } } /**