v5.4.2 Beta #4

*Unique sounds for Smelting Factory depending on it's operation.
*Energized Smelter -- a furnace that runs on energy.
*Better, more efficient sound management.
*Steel Casing for machines.
*Different textures for Steel and Osmium blocks.
This commit is contained in:
Aidan Brady 2013-03-20 16:28:45 -04:00
parent 9f7096250f
commit 9b34273572
25 changed files with 194 additions and 30 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -30,11 +30,12 @@ public interface IFactory
public static enum RecipeType
{
SMELTING("Smelting"),
ENRICHING("Enriching"),
CRUSHING("Crushing");
SMELTING("Smelting", "Smelter.ogg"),
ENRICHING("Enriching", "Chamber.ogg"),
CRUSHING("Crushing", "Crusher.ogg");
private String name;
private String sound;
public ItemStack getCopiedOutput(ItemStack input, boolean stackDecrease)
{
@ -66,9 +67,15 @@ public interface IFactory
return name;
}
private RecipeType(String s)
public String getSound()
{
return sound;
}
private RecipeType(String s, String s1)
{
name = s;
sound = s1;
}
}
}

View file

@ -151,6 +151,8 @@ public class ClientProxy extends CommonProxy
}
case 15:
return new GuiPurificationChamber(player.inventory, (TileEntityAdvancedElectricMachine)tileEntity);
case 16:
return new GuiEnergizedSmelter(player.inventory, (TileEntityElectricMachine)tileEntity);
}
return null;
}

View file

@ -0,0 +1,12 @@
package mekanism.client;
import mekanism.common.TileEntityElectricMachine;
import net.minecraft.entity.player.InventoryPlayer;
public class GuiEnergizedSmelter extends GuiElectricMachine
{
public GuiEnergizedSmelter(InventoryPlayer inventory, TileEntityElectricMachine tentity)
{
super(inventory, tentity);
}
}

View file

@ -0,0 +1,10 @@
package mekanism.client;
public interface IHasSound
{
/**
* Gets the sound.
* @return sound
*/
public Sound getSound();
}

View file

@ -53,8 +53,13 @@ public class SoundHandler
TileEntity tileEntity = FMLClientHandler.instance().getClient().theWorld.getBlockTileEntity(sound.xCoord, sound.yCoord, sound.zCoord);
if(tileEntity != null && tileEntity instanceof IActiveState)
if(tileEntity != null && tileEntity instanceof IActiveState && tileEntity instanceof IHasSound)
{
if(((IHasSound)tileEntity).getSound() != sound)
{
soundsToRemove.add(sound);
continue;
}
if(((IActiveState)tileEntity).getActive() != sound.isPlaying)
{
if(((IActiveState)tileEntity).getActive())
@ -66,9 +71,19 @@ public class SoundHandler
}
}
}
else if(tileEntity == null)
{
soundsToRemove.add(sound);
}
}
}
for(Sound sound : soundsToRemove)
{
System.out.println("[Mekanism] Removed dead sound '" + sound.identifier + ".'");
sound.remove();
}
masterVolume = FMLClientHandler.instance().getClient().gameSettings.soundVolume;
}
}

View file

@ -35,6 +35,7 @@ import net.minecraftforge.common.ForgeChunkManager;
* 6: Control Panel
* 7: Teleporter
* 8: Teleporter Frame
* 9: Steel Casing
* @author AidanBrady
*
*/
@ -61,6 +62,7 @@ public class BlockBasic extends Block
icons[6] = register.func_94245_a("mekanism:ControlPanel");
icons[7] = register.func_94245_a("mekanism:Teleporter");
icons[8] = register.func_94245_a("mekanism:TeleporterFrame");
icons[9] = register.func_94245_a("mekanism:SteelCasing");
}
@Override
@ -88,6 +90,7 @@ public class BlockBasic extends Block
//list.add(new ItemStack(i, 1, 6));
list.add(new ItemStack(i, 1, 7));
list.add(new ItemStack(i, 1, 8));
list.add(new ItemStack(i, 1, 9));
}
@Override

View file

@ -48,6 +48,7 @@ import cpw.mods.fml.relauncher.SideOnly;
* 7: Elite Factory
* 8: Metallurgic Infuser
* 9: Purification Chamber
* 10: Energized Smelter
* @author AidanBrady
*
*/
@ -69,16 +70,16 @@ public class BlockMachine extends BlockContainer implements IDismantleable
{
icons[0][0] = register.func_94245_a("mekanism:EnrichmentChamberFrontOff");
icons[0][1] = register.func_94245_a("mekanism:EnrichmentChamberFrontOn");
icons[0][2] = register.func_94245_a("mekanism:OsmiumBlock");
icons[0][2] = register.func_94245_a("mekanism:SteelCasing");
icons[1][0] = register.func_94245_a("mekanism:OsmiumCompressorFrontOff");
icons[1][1] = register.func_94245_a("mekanism:OsmiumCompressorFrontOn");
icons[1][2] = register.func_94245_a("mekanism:OsmiumBlock");
icons[1][2] = register.func_94245_a("mekanism:SteelCasing");
icons[2][0] = register.func_94245_a("mekanism:CombinerFrontOff");
icons[2][1] = register.func_94245_a("mekanism:CombinerFrontOn");
icons[2][2] = register.func_94245_a("mekanism:OsmiumBlock");
icons[2][2] = register.func_94245_a("mekanism:SteelCasing");
icons[3][0] = register.func_94245_a("mekanism:CrusherFrontOff");
icons[3][1] = register.func_94245_a("mekanism:CrusherFrontOn");
icons[3][2] = register.func_94245_a("mekanism:OsmiumBlock");
icons[3][2] = register.func_94245_a("mekanism:SteelCasing");
icons[5][0] = register.func_94245_a("mekanism:BasicSmeltingFactoryFront");
icons[5][1] = register.func_94245_a("mekanism:BasicSmeltingFactorySide");
icons[5][2] = register.func_94245_a("mekanism:BasicSmeltingFactoryTop");
@ -98,7 +99,10 @@ public class BlockMachine extends BlockContainer implements IDismantleable
icons[8][7] = register.func_94245_a("mekanism:MetallurgicInfuserBackOn");
icons[9][0] = register.func_94245_a("mekanism:PurificationChamberFrontOff");
icons[9][1] = register.func_94245_a("mekanism:PurificationChamberFrontOn");
icons[9][2] = register.func_94245_a("mekanism:OsmiumBlock");
icons[9][2] = register.func_94245_a("mekanism:SteelCasing");
icons[10][0] = register.func_94245_a("mekanism:EnergizedSmelterFrontOff");
icons[10][1] = register.func_94245_a("mekanism:EnergizedSmelterFrontOn");
icons[10][2] = register.func_94245_a("mekanism:SteelCasing");
}
@Override
@ -289,6 +293,16 @@ public class BlockMachine extends BlockContainer implements IDismantleable
return icons[9][2];
}
}
else if(meta == 10)
{
if(side == 3)
{
return icons[10][0];
}
else {
return icons[10][2];
}
}
return null;
}
@ -412,6 +426,16 @@ public class BlockMachine extends BlockContainer implements IDismantleable
return icons[9][2];
}
}
else if(metadata == 10)
{
if(side == tileEntity.facing)
{
return MekanismUtils.isActive(world, x, y, z) ? icons[10][1] : icons[10][0];
}
else {
return icons[10][2];
}
}
return null;
}
@ -448,6 +472,7 @@ public class BlockMachine extends BlockContainer implements IDismantleable
list.add(new ItemStack(i, 1, 8));
list.add(new ItemStack(i, 1, 9));
list.add(new ItemStack(i, 1, 10));
}
@Override
@ -726,7 +751,8 @@ public class BlockMachine extends BlockContainer implements IDismantleable
ADVANCED_FACTORY(6, 11, 10000, TileEntityAdvancedFactory.class, false),
ELITE_FACTORY(7, 11, 14000, TileEntityEliteFactory.class, false),
METALLURGIC_INFUSER(8, 12, 2000, TileEntityMetallurgicInfuser.class, false),
PURIFICATION_CHAMBER(9, 15, 12000, TileEntityPurificationChamber.class, false);
PURIFICATION_CHAMBER(9, 15, 12000, TileEntityPurificationChamber.class, false),
ENERGIZED_SMELTER(10, 16, 2000, TileEntityEnergizedSmelter.class, false);
public int meta;
public int guiId;

View file

@ -153,6 +153,8 @@ public class CommonProxy
return new ContainerTeleporter(player.inventory, (TileEntityTeleporter)tileEntity);
case 15:
return new ContainerAdvancedElectricMachine(player.inventory, (TileEntityAdvancedElectricMachine)tileEntity);
case 16:
return new ContainerElectricMachine(player.inventory, (TileEntityElectricMachine)tileEntity);
}
return null;
}

View file

@ -16,6 +16,7 @@ import net.minecraft.util.Icon;
* 6: Control Panel
* 7: Teleporter
* 8: Teleporter Frame
* 9: Steel Casing
* @author AidanBrady
*
*/
@ -75,6 +76,9 @@ public class ItemBlockBasic extends ItemBlock
case 8:
name = "TeleporterFrame";
break;
case 9:
name = "SteelCasing";
break;
default:
name = "Unknown";
break;

View file

@ -32,6 +32,7 @@ import net.minecraft.world.World;
* 7: Elite Factory
* 8: Metallurgic Infuser
* 9: Purification Chamber
* 10: Energized Smelter
* @author AidanBrady
*
*/
@ -90,6 +91,9 @@ public class ItemBlockMachine extends ItemBlock implements IItemElectric, ICusto
case 9:
name = "PurificationChamber";
break;
case 10:
name = "EnergizedSmelter";
break;
default:
name = "Unknown";
break;

View file

@ -26,6 +26,7 @@ import net.minecraftforge.common.Configuration;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.ShapedOreRecipe;
import net.minecraftforge.oredict.ShapelessOreRecipe;
import thermalexpansion.api.crafting.CraftingManagers;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.Init;
@ -228,16 +229,16 @@ public class Mekanism
"RCR", "ECE", "RCR", Character.valueOf('C'), Item.ingotGold, Character.valueOf('R'), Item.redstone, Character.valueOf('E'), EnrichedAlloy
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 0), new Object[] {
"ARA", "CIC", "ARA", Character.valueOf('A'), EnrichedAlloy, Character.valueOf('R'), Item.redstone, Character.valueOf('I'), "blockSteel", Character.valueOf('C'), ControlCircuit
"ARA", "CIC", "ARA", Character.valueOf('A'), EnrichedAlloy, Character.valueOf('R'), Item.redstone, Character.valueOf('I'), new ItemStack(BasicBlock, 1, 9), Character.valueOf('C'), ControlCircuit
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 1), new Object[] {
"RCR", "GIG", "RCR", Character.valueOf('R'), Item.redstone, Character.valueOf('C'), "basicCircuit", Character.valueOf('G'), Block.glass, Character.valueOf('I'), "blockSteel"
"RCR", "GIG", "RCR", Character.valueOf('R'), Item.redstone, Character.valueOf('C'), "basicCircuit", Character.valueOf('G'), Block.glass, Character.valueOf('I'), new ItemStack(BasicBlock, 1, 9)
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 2), new Object[] {
"SCS", "RIR", "SCS", Character.valueOf('S'), Block.cobblestone, Character.valueOf('C'), "basicCircuit", Character.valueOf('R'), Item.redstone, Character.valueOf('I'), "blockSteel"
"SCS", "RIR", "SCS", Character.valueOf('S'), Block.cobblestone, Character.valueOf('C'), "basicCircuit", Character.valueOf('R'), Item.redstone, Character.valueOf('I'), new ItemStack(BasicBlock, 1, 9)
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 3), new Object[] {
"RLR", "CIC", "RLR", Character.valueOf('R'), Item.redstone, Character.valueOf('L'), Item.bucketLava, Character.valueOf('C'), "basicCircuit", Character.valueOf('I'), "blockSteel"
"RLR", "CIC", "RLR", Character.valueOf('R'), Item.redstone, Character.valueOf('L'), Item.bucketLava, Character.valueOf('C'), "basicCircuit", Character.valueOf('I'), new ItemStack(BasicBlock, 1, 9)
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(SpeedUpgrade), new Object[] {
" G ", "APA", " G ", Character.valueOf('P'), "dustOsmium", Character.valueOf('A'), EnrichedAlloy, Character.valueOf('G'), Block.glass
@ -251,9 +252,6 @@ public class Mekanism
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(AtomicDisassembler.getUnchargedItem(), new Object[] {
"AEA", "ACA", " O ", Character.valueOf('A'), EnrichedAlloy, Character.valueOf('E'), EnergyTablet.getUnchargedItem(), Character.valueOf('C'), AtomicCore, Character.valueOf('O'), "ingotRefinedObsidian"
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(EnrichedAlloy), new Object[] {
" R ", "RIR", " R ", Character.valueOf('R'), Item.redstone, Character.valueOf('I'), Item.ingotIron
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(StorageTank.getEmptyItem(), new Object[] {
"III", "IDI", "III", Character.valueOf('I'), Item.ingotIron, Character.valueOf('D'), "dustIron"
}));
@ -261,7 +259,7 @@ public class Mekanism
"PPP", "PDP", "PPP", Character.valueOf('P'), "ingotOsmium", Character.valueOf('D'), "dustIron"
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(MekanismUtils.getEnergyCube(EnergyCubeTier.BASIC), new Object[] {
"RLR", "TIT", "RLR", Character.valueOf('R'), Item.redstone, Character.valueOf('L'), new ItemStack(Item.dyePowder, 1, 4), Character.valueOf('T'), EnergyTablet.getUnchargedItem(), Character.valueOf('I'), "blockSteel"
"RLR", "TIT", "RLR", Character.valueOf('R'), Item.redstone, Character.valueOf('L'), new ItemStack(Item.dyePowder, 1, 4), Character.valueOf('T'), EnergyTablet.getUnchargedItem(), Character.valueOf('I'), new ItemStack(BasicBlock, 1, 9)
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(MekanismUtils.getEnergyCube(EnergyCubeTier.ADVANCED), new Object[] {
"EGE", "TBT", "EGE", Character.valueOf('E'), EnrichedAlloy, Character.valueOf('G'), Item.ingotGold, Character.valueOf('T'), EnergyTablet.getUnchargedItem(), Character.valueOf('B'), MekanismUtils.getEnergyCube(EnergyCubeTier.BASIC)
@ -275,8 +273,8 @@ public class Mekanism
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(ControlCircuit), new Object[] {
" P ", "PEP", " P ", Character.valueOf('P'), "ingotOsmium", Character.valueOf('E'), EnrichedAlloy
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(EnrichedIron, 6), new Object[] {
"A", "I", "A", Character.valueOf('A'), EnrichedAlloy, Character.valueOf('I'), Item.ingotIron
CraftingManager.getInstance().getRecipeList().add(new ShapelessOreRecipe(new ItemStack(EnrichedIron, 2), new Object[] {
Item.redstone, Item.ingotIron
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(EnrichedIron, 4), new Object[] {
"C", "I", "C", Character.valueOf('C'), "dustCopper", Character.valueOf('I'), Item.ingotIron
@ -297,7 +295,7 @@ public class Mekanism
"COC", "OTO", "COC", Character.valueOf('C'), "basicCircuit", Character.valueOf('O'), new ItemStack(BasicBlock, 1, 8), Character.valueOf('T'), TeleportationCore
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 9), new Object[] {
"CAC", "ERE", "CAC", Character.valueOf('C'), "basicCircuit", Character.valueOf('A'), AtomicCore, Character.valueOf('E'), EnrichedAlloy, Character.valueOf('R'), new ItemStack(MachineBlock, 1, 0)
"CAC", "ERE", "CAC", Character.valueOf('C'), "basicCircuit", Character.valueOf('A'), AtomicCore, Character.valueOf('E'), EnrichedAlloy, Character.valueOf('R'), new ItemStack(BasicBlock, 1, 9)
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(Configurator), new Object[] {
" L ", "AEA", " S ", Character.valueOf('L'), new ItemStack(Item.dyePowder, 1, 4), Character.valueOf('A'), EnrichedAlloy, Character.valueOf('E'), EnergyTablet.getUnchargedItem(), Character.valueOf('S'), Item.stick
@ -308,10 +306,19 @@ public class Mekanism
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(PressurizedTube, 8), new Object[] {
"IAI", "PPP", "IAI", Character.valueOf('I'), Item.ingotIron, Character.valueOf('A'), EnrichedAlloy, Character.valueOf('P'), "dustOsmium"
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(BasicBlock, 1, 9), new Object[] {
"SRS", "RPR", "SRS", Character.valueOf('S'), "ingotSteel", Character.valueOf('R'), Item.redstone, Character.valueOf('P'), "ingotOsmium"
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(BasicBlock, 1, 9), new Object[] {
"RSR", "SPS", "RSR", Character.valueOf('S'), "ingotSteel", Character.valueOf('R'), Item.redstone, Character.valueOf('P'), "ingotOsmium"
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 10), new Object[] {
"SCS", "GIG", "SCS", Character.valueOf('S'), Block.cobblestone, Character.valueOf('C'), ControlCircuit, Character.valueOf('G'), Block.glass, Character.valueOf('I'), new ItemStack(BasicBlock, 1, 9)
}));
//Factory Recipes
CraftingManager.getInstance().getRecipeList().add(new FactoryRecipe(MekanismUtils.getFactory(FactoryTier.BASIC, RecipeType.SMELTING), new Object[] {
"CAC", "GOG", "CAC", Character.valueOf('C'), "basicCircuit", Character.valueOf('A'), EnrichedAlloy, Character.valueOf('G'), "dustGold", Character.valueOf('O'), Block.furnaceIdle
"CAC", "GOG", "CAC", Character.valueOf('C'), "basicCircuit", Character.valueOf('A'), EnrichedAlloy, Character.valueOf('G'), "dustGold", Character.valueOf('O'), new ItemStack(MachineBlock, 1, 10)
}));
CraftingManager.getInstance().getRecipeList().add(new FactoryRecipe(MekanismUtils.getFactory(FactoryTier.BASIC, RecipeType.ENRICHING), new Object[] {
"CAC", "GOG", "CAC", Character.valueOf('C'), "basicCircuit", Character.valueOf('A'), EnrichedAlloy, Character.valueOf('G'), "dustGold", Character.valueOf('O'), new ItemStack(MachineBlock, 1, 0)
@ -343,6 +350,7 @@ public class Mekanism
FurnaceRecipes.smelting().addSmelting(Dust.itemID, 0, new ItemStack(Item.ingotIron), 1.0F);
FurnaceRecipes.smelting().addSmelting(Dust.itemID, 1, new ItemStack(Item.ingotGold), 1.0F);
FurnaceRecipes.smelting().addSmelting(Dust.itemID, 5, new ItemStack(Ingot, 1, 4), 1.0F);
FurnaceRecipes.smelting().addSmelting(EnrichedIron.itemID, 0, new ItemStack(EnrichedAlloy), 1.0F);
//Enrichment Chamber Recipes
RecipeHandler.addEnrichmentChamberRecipe(new ItemStack(Block.oreRedstone), new ItemStack(Item.redstone, 12));
@ -436,6 +444,7 @@ public class Mekanism
LanguageRegistry.instance().addStringLocalization("tile.BasicBlock.ControlPanel.name", "Control Panel");
LanguageRegistry.instance().addStringLocalization("tile.BasicBlock.Teleporter.name", "Teleporter");
LanguageRegistry.instance().addStringLocalization("tile.BasicBlock.TeleporterFrame.name", "Teleporter Frame");
LanguageRegistry.instance().addStringLocalization("tile.BasicBlock.SteelCasing.name", "Steel Casing");
//Localization for MachineBlock
LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.EnrichmentChamber.name", "Enrichment Chamber");
@ -448,6 +457,7 @@ public class Mekanism
LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.EliteFactory.name", "Elite Factory");
LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.MetallurgicInfuser.name", "Metallurgic Infuser");
LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.PurificationChamber.name", "Purification Chamber");
LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.EnergizedSmelter.name", "Energized Smelter");
//Localization for OreBlock
LanguageRegistry.instance().addStringLocalization("tile.OreBlock.OsmiumOre.name", "Osmium Ore");
@ -912,6 +922,7 @@ public class Mekanism
GameRegistry.registerTileEntity(TileEntityMetallurgicInfuser.class, "MetallurgicInfuser");
GameRegistry.registerTileEntity(TileEntityTeleporter.class, "MekanismTeleporter");
GameRegistry.registerTileEntity(TileEntityPurificationChamber.class, "PurificationChamber");
GameRegistry.registerTileEntity(TileEntityEnergizedSmelter.class, "EnergizedSmelter");
//Load tile entities that have special renderers.
proxy.registerSpecialTileEntities();

View file

@ -15,6 +15,7 @@ import mekanism.api.IEnergyCube;
import mekanism.api.IFactory;
import mekanism.api.IUpgradeManagement;
import mekanism.api.SideData;
import mekanism.client.IHasSound;
import mekanism.client.Sound;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
@ -32,7 +33,7 @@ import cpw.mods.fml.relauncher.SideOnly;
import dan200.computer.api.IComputerAccess;
import dan200.computer.api.IPeripheral;
public abstract class TileEntityBasicMachine extends TileEntityElectricBlock implements IElectricMachine, IEnergySink, IPeripheral, IActiveState, IConfigurable, IUpgradeManagement
public abstract class TileEntityBasicMachine extends TileEntityElectricBlock implements IElectricMachine, IEnergySink, IPeripheral, IActiveState, IConfigurable, IUpgradeManagement, IHasSound
{
/** The Sound instance for this machine. */
@SideOnly(Side.CLIENT)
@ -410,4 +411,10 @@ public abstract class TileEntityBasicMachine extends TileEntityElectricBlock imp
{
speedMultiplier = multiplier;
}
@Override
public Sound getSound()
{
return audio;
}
}

View file

@ -0,0 +1,40 @@
package mekanism.common;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.FurnaceRecipes;
import mekanism.common.RecipeHandler.Recipe;
public class TileEntityEnergizedSmelter extends TileEntityElectricMachine
{
public TileEntityEnergizedSmelter()
{
super("Smelter.ogg", "Energized Smelter", "/mods/mekanism/gui/GuiEnergizedSmelter.png", 10, 200, 2000);
}
@Override
public Map getRecipes()
{
HashMap<ItemStack, ItemStack> map = new HashMap<ItemStack, ItemStack>();
for(Map.Entry<List<Integer>, ItemStack> entry : FurnaceRecipes.smelting().getMetaSmeltingList().entrySet())
{
map.put(new ItemStack(entry.getKey().get(0), 1, entry.getKey().get(1)), entry.getValue());
}
for(Object obj : FurnaceRecipes.smelting().getSmeltingList().entrySet())
{
if(obj instanceof Map.Entry)
{
Map.Entry<Integer, ItemStack> entry = (Map.Entry<Integer, ItemStack>)obj;
map.put(new ItemStack(entry.getKey(), 1, 0), entry.getValue());
}
}
return map;
}
}

View file

@ -14,6 +14,7 @@ import mekanism.api.IUpgradeManagement;
import mekanism.api.SideData;
import mekanism.api.IFactory.RecipeType;
import mekanism.api.Tier.FactoryTier;
import mekanism.client.IHasSound;
import mekanism.client.Sound;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
@ -37,7 +38,7 @@ import cpw.mods.fml.relauncher.SideOnly;
import dan200.computer.api.IComputerAccess;
import dan200.computer.api.IPeripheral;
public class TileEntityFactory extends TileEntityElectricBlock implements IEnergySink, IPeripheral, IActiveState, IConfigurable, IUpgradeManagement
public class TileEntityFactory extends TileEntityElectricBlock implements IEnergySink, IPeripheral, IActiveState, IConfigurable, IUpgradeManagement, IHasSound
{
/** This Factory's tier. */
public FactoryTier tier;
@ -274,7 +275,7 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IEnerg
{
if(FMLClientHandler.instance().getClient().sndManager.sndSystem != null)
{
audio = Mekanism.audioHandler.getSound("Factory.ogg", worldObj, xCoord, yCoord, zCoord);
audio = Mekanism.audioHandler.getSound(RecipeType.values()[recipeType].getSound(), worldObj, xCoord, yCoord, zCoord);
}
}
@ -660,4 +661,10 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IEnerg
{
speedMultiplier = multiplier;
}
@Override
public Sound getSound()
{
return audio;
}
}

View file

@ -19,6 +19,7 @@ import mekanism.api.InfusionInput;
import mekanism.api.InfusionOutput;
import mekanism.api.InfusionType;
import mekanism.api.SideData;
import mekanism.client.IHasSound;
import mekanism.client.Sound;
import mekanism.common.RecipeHandler.Recipe;
import net.minecraft.entity.player.EntityPlayer;
@ -42,7 +43,7 @@ import cpw.mods.fml.relauncher.SideOnly;
import dan200.computer.api.IComputerAccess;
import dan200.computer.api.IPeripheral;
public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implements IEnergySink, IPeripheral, IActiveState, IConfigurable, IUpgradeManagement
public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implements IEnergySink, IPeripheral, IActiveState, IConfigurable, IUpgradeManagement, IHasSound
{
/** The Sound instance for this machine. */
@SideOnly(Side.CLIENT)
@ -609,6 +610,12 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
return sideConfig;
}
@Override
public Sound getSound()
{
return audio;
}
@Override
public int getOrientation()
{

View file

@ -77,13 +77,13 @@ public class MekanismGenerators
"SES", "SES", "III", Character.valueOf('S'), new ItemStack(Generator, 1, 1), Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('I'), Item.ingotIron
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(Generator, 1, 4), new Object[] {
"RER", "BIB", "NEN", Character.valueOf('R'), Item.redstone, Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('B'), BioFuel, Character.valueOf('I'), "blockSteel", Character.valueOf('N'), Item.ingotIron
"RER", "BIB", "NEN", Character.valueOf('R'), Item.redstone, Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('B'), BioFuel, Character.valueOf('I'), new ItemStack(Mekanism.BasicBlock, 1, 9), Character.valueOf('N'), Item.ingotIron
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(Generator, 1, 2), new Object[] {
"IRI", "ECE", "IRI", Character.valueOf('I'), Item.ingotIron, Character.valueOf('R'), Item.redstone, Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('C'), ElectrolyticCore
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(Generator, 1, 3), new Object[] {
"PEP", "ICI", "PEP", Character.valueOf('P'), "ingotOsmium", Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('I'), "blockSteel", Character.valueOf('C'), ElectrolyticCore
"PEP", "ICI", "PEP", Character.valueOf('P'), "ingotOsmium", Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('I'), new ItemStack(Mekanism.BasicBlock, 1, 9), Character.valueOf('C'), ElectrolyticCore
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(ElectrolyticCore), new Object[] {
"EPE", "IEG", "EPE", Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('P'), "dustOsmium", Character.valueOf('I'), "dustIron", Character.valueOf('G'), "dustGold"

View file

@ -16,6 +16,7 @@ import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import mekanism.api.IActiveState;
import mekanism.client.IHasSound;
import mekanism.client.Sound;
import mekanism.common.Mekanism;
import mekanism.common.MekanismUtils;
@ -37,7 +38,7 @@ import buildcraft.api.power.PowerProvider;
import dan200.computer.api.IComputerAccess;
import dan200.computer.api.IPeripheral;
public abstract class TileEntityGenerator extends TileEntityElectricBlock implements IEnergySource, IEnergyStorage, IPowerReceptor, IPeripheral, IActiveState
public abstract class TileEntityGenerator extends TileEntityElectricBlock implements IEnergySource, IEnergyStorage, IPowerReceptor, IPeripheral, IActiveState, IHasSound
{
/** The Sound instance for this generator. */
@SideOnly(Side.CLIENT)
@ -368,4 +369,10 @@ public abstract class TileEntityGenerator extends TileEntityElectricBlock implem
{
return INFINITE_EXTENT_AABB;
}
@Override
public Sound getSound()
{
return audio;
}
}