Muffling Upgrades! Mute individual machine volumes.

This commit is contained in:
aidancbrady 2016-02-02 22:55:26 -05:00
parent 203890ca88
commit 22bf688fbd
25 changed files with 112 additions and 55 deletions

View file

@ -82,6 +82,11 @@ public class TileSound extends Sound implements IResettableSound
@Override @Override
public void update() public void update()
{ {
if(source instanceof ISoundSource)
{
baseVolume = ((ISoundSource)source).getVolume();
}
if(!beginFadeOut) if(!beginFadeOut)
{ {
if(ticks < fadeIn) if(ticks < fadeIn)

View file

@ -300,11 +300,14 @@ public class Mekanism
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.EnergyUpgrade), new Object[] { CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.EnergyUpgrade), new Object[] {
" G ", "ADA", " G ", Character.valueOf('G'), "blockGlass", Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('D'), "dustGold" " G ", "ADA", " G ", Character.valueOf('G'), "blockGlass", Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('D'), "dustGold"
})); }));
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.GasUpgrade), new Object[] {
" G ", "ADA", " G ", Character.valueOf('G'), "blockGlass", Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('D'), "dustIron"
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.FilterUpgrade), new Object[] { CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.FilterUpgrade), new Object[] {
" G ", "ADA", " G ", Character.valueOf('G'), "blockGlass", Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('D'), "dustTin" " G ", "ADA", " G ", Character.valueOf('G'), "blockGlass", Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('D'), "dustTin"
})); }));
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.GasUpgrade), new Object[] { CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.FilterUpgrade), new Object[] {
" G ", "ADA", " G ", Character.valueOf('G'), "blockGlass", Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('D'), "dustIron" " G ", "ADA", " G ", Character.valueOf('G'), "blockGlass", Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('D'), "dustSteel"
})); }));
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismItems.AtomicDisassembler.getUnchargedItem(), new Object[] { CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismItems.AtomicDisassembler.getUnchargedItem(), new Object[] {
"AEA", "ACA", " O ", Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('E'), MekanismItems.EnergyTablet.getUnchargedItem(), Character.valueOf('C'), MekanismItems.AtomicAlloy, Character.valueOf('O'), "ingotRefinedObsidian" "AEA", "ACA", " O ", Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('E'), MekanismItems.EnergyTablet.getUnchargedItem(), Character.valueOf('C'), MekanismItems.AtomicAlloy, Character.valueOf('O'), "ingotRefinedObsidian"

View file

@ -66,6 +66,7 @@ public class MekanismItems
public static final Item SpeedUpgrade = new ItemUpgrade(Upgrade.SPEED).setUnlocalizedName("SpeedUpgrade"); public static final Item SpeedUpgrade = new ItemUpgrade(Upgrade.SPEED).setUnlocalizedName("SpeedUpgrade");
public static final Item EnergyUpgrade = new ItemUpgrade(Upgrade.ENERGY).setUnlocalizedName("EnergyUpgrade"); public static final Item EnergyUpgrade = new ItemUpgrade(Upgrade.ENERGY).setUnlocalizedName("EnergyUpgrade");
public static final Item FilterUpgrade = new ItemUpgrade(Upgrade.FILTER).setUnlocalizedName("FilterUpgrade"); public static final Item FilterUpgrade = new ItemUpgrade(Upgrade.FILTER).setUnlocalizedName("FilterUpgrade");
public static final Item MufflingUpgrade = new ItemUpgrade(Upgrade.MUFFLING).setUnlocalizedName("MufflingUpgrade");
public static final Item GasUpgrade = new ItemUpgrade(Upgrade.GAS).setUnlocalizedName("GasUpgrade"); public static final Item GasUpgrade = new ItemUpgrade(Upgrade.GAS).setUnlocalizedName("GasUpgrade");
public static final Item FactoryInstaller = new ItemFactoryInstaller().setUnlocalizedName("FactoryInstaller"); public static final Item FactoryInstaller = new ItemFactoryInstaller().setUnlocalizedName("FactoryInstaller");
public static final ItemEnergized EnergyTablet = (ItemEnergized)new ItemEnergized(1000000).setUnlocalizedName("EnergyTablet"); public static final ItemEnergized EnergyTablet = (ItemEnergized)new ItemEnergized(1000000).setUnlocalizedName("EnergyTablet");
@ -115,6 +116,7 @@ public class MekanismItems
GameRegistry.registerItem(SpeedUpgrade, "SpeedUpgrade"); GameRegistry.registerItem(SpeedUpgrade, "SpeedUpgrade");
GameRegistry.registerItem(EnergyUpgrade, "EnergyUpgrade"); GameRegistry.registerItem(EnergyUpgrade, "EnergyUpgrade");
GameRegistry.registerItem(FilterUpgrade, "FilterUpgrade"); GameRegistry.registerItem(FilterUpgrade, "FilterUpgrade");
GameRegistry.registerItem(MufflingUpgrade, "MufflingUpgrade");
GameRegistry.registerItem(GasUpgrade, "GasUpgrade"); GameRegistry.registerItem(GasUpgrade, "GasUpgrade");
GameRegistry.registerItem(Robit, "Robit"); GameRegistry.registerItem(Robit, "Robit");
GameRegistry.registerItem(AtomicDisassembler, "AtomicDisassembler"); GameRegistry.registerItem(AtomicDisassembler, "AtomicDisassembler");

View file

@ -20,7 +20,8 @@ public enum Upgrade
SPEED("speed", 8, EnumColor.RED), SPEED("speed", 8, EnumColor.RED),
ENERGY("energy", 8, EnumColor.BRIGHT_GREEN), ENERGY("energy", 8, EnumColor.BRIGHT_GREEN),
FILTER("filter", 1, EnumColor.DARK_AQUA), FILTER("filter", 1, EnumColor.DARK_AQUA),
GAS("gas", 8, EnumColor.YELLOW); GAS("gas", 8, EnumColor.YELLOW),
MUFFLING("muffling", 4, EnumColor.DARK_GREY);
private String name; private String name;
private int maxStack; private int maxStack;
@ -68,6 +69,8 @@ public enum Upgrade
return new ItemStack(MekanismItems.EnergyUpgrade); return new ItemStack(MekanismItems.EnergyUpgrade);
case FILTER: case FILTER:
return new ItemStack(MekanismItems.FilterUpgrade); return new ItemStack(MekanismItems.FilterUpgrade);
case MUFFLING:
return new ItemStack(MekanismItems.MufflingUpgrade);
case GAS: case GAS:
return new ItemStack(MekanismItems.GasUpgrade); return new ItemStack(MekanismItems.GasUpgrade);
} }
@ -139,11 +142,6 @@ public enum Upgrade
upgrades.put(upgrade, compound.getInteger("amount")); upgrades.put(upgrade, compound.getInteger("amount"));
} }
} }
else if(nbtTags.hasKey("energyMultiplier") && nbtTags.hasKey("speedMultiplier")) //TODO remove soon
{
upgrades.put(Upgrade.ENERGY, nbtTags.getInteger("energyMultiplier"));
upgrades.put(Upgrade.SPEED, nbtTags.getInteger("speedMultiplier"));
}
} }
return upgrades; return upgrades;

View file

@ -83,6 +83,8 @@ public abstract class TileEntityAdvancedElectricMachine<RECIPE extends AdvancedM
secondaryEnergyPerTick = secondaryPerTick; secondaryEnergyPerTick = secondaryPerTick;
upgradeComponent = upgradeableSecondaryEfficiency() ? new TileComponentAdvancedUpgrade(this, 4) : new TileComponentUpgrade(this, 4); upgradeComponent = upgradeableSecondaryEfficiency() ? new TileComponentAdvancedUpgrade(this, 4) : new TileComponentUpgrade(this, 4);
upgradeComponent.setSupported(Upgrade.MUFFLING);
ejectorComponent = new TileComponentEjector(this); ejectorComponent = new TileComponentEjector(this);
ejectorComponent.setOutputData(TransmissionType.ITEM, configComponent.getOutputs(TransmissionType.ITEM).get(3)); ejectorComponent.setOutputData(TransmissionType.ITEM, configComponent.getOutputs(TransmissionType.ITEM).get(3));
} }

View file

@ -77,6 +77,7 @@ public abstract class TileEntityBasicMachine<INPUT extends MachineInput<INPUT>,
public TileEntityBasicMachine(String soundPath, String name, ResourceLocation location, double perTick, int baseTicksRequired, double maxEnergy) public TileEntityBasicMachine(String soundPath, String name, ResourceLocation location, double perTick, int baseTicksRequired, double maxEnergy)
{ {
super("machine." + soundPath, name, maxEnergy); super("machine." + soundPath, name, maxEnergy);
BASE_ENERGY_PER_TICK = perTick; BASE_ENERGY_PER_TICK = perTick;
energyPerTick = perTick; energyPerTick = perTick;
BASE_TICKS_REQUIRED = baseTicksRequired; BASE_TICKS_REQUIRED = baseTicksRequired;

View file

@ -1,5 +1,9 @@
package mekanism.common.tile; package mekanism.common.tile;
import ic2.api.item.ElectricItem;
import ic2.api.item.IElectricItem;
import io.netty.buffer.ByteBuf;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.List; import java.util.List;
@ -15,23 +19,16 @@ import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.entity.EntityRobit; import mekanism.common.entity.EntityRobit;
import mekanism.common.network.PacketTileEntity.TileEntityMessage; import mekanism.common.network.PacketTileEntity.TileEntityMessage;
import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import cofh.api.energy.IEnergyContainerItem;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import cofh.api.energy.IEnergyContainerItem;
import ic2.api.item.ElectricItem;
import ic2.api.item.IElectricItem;
public class TileEntityChargepad extends TileEntityNoisyElectricBlock public class TileEntityChargepad extends TileEntityNoisyElectricBlock
{ {
public boolean isActive; public boolean isActive;
@ -208,7 +205,7 @@ public class TileEntityChargepad extends TileEntityNoisyElectricBlock
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public float getVolume() public float getVolume()
{ {
return 0.4F; return 0.4F*super.getVolume();
} }
@Override @Override

View file

@ -1,16 +1,31 @@
package mekanism.common.tile; package mekanism.common.tile;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import java.util.ArrayList;
import mekanism.api.Coord4D; import mekanism.api.Coord4D;
import mekanism.api.EnumColor; import mekanism.api.EnumColor;
import mekanism.api.MekanismConfig.usage; import mekanism.api.MekanismConfig.usage;
import mekanism.api.Range4D; import mekanism.api.Range4D;
import mekanism.api.gas.*; import mekanism.api.gas.Gas;
import mekanism.api.gas.GasRegistry;
import mekanism.api.gas.GasStack;
import mekanism.api.gas.GasTank;
import mekanism.api.gas.GasTransmission;
import mekanism.api.gas.IGasHandler;
import mekanism.api.gas.IGasItem;
import mekanism.api.gas.ITubeConnection;
import mekanism.api.transmitters.TransmissionType; import mekanism.api.transmitters.TransmissionType;
import mekanism.common.Mekanism; import mekanism.common.Mekanism;
import mekanism.common.SideData; import mekanism.common.SideData;
import mekanism.common.Upgrade; import mekanism.common.Upgrade;
import mekanism.common.base.*; import mekanism.common.base.IEjector;
import mekanism.common.base.IRedstoneControl;
import mekanism.common.base.ISideConfiguration;
import mekanism.common.base.ISustainedData;
import mekanism.common.base.ITankManager;
import mekanism.common.base.IUpgradeTile;
import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.network.PacketTileEntity.TileEntityMessage; import mekanism.common.network.PacketTileEntity.TileEntityMessage;
import mekanism.common.recipe.RecipeHandler; import mekanism.common.recipe.RecipeHandler;
@ -26,8 +41,6 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import java.util.ArrayList;
public class TileEntityChemicalCrystallizer extends TileEntityNoisyElectricBlock implements IGasHandler, ITubeConnection, IRedstoneControl, ISideConfiguration, IUpgradeTile, ISustainedData, ITankManager public class TileEntityChemicalCrystallizer extends TileEntityNoisyElectricBlock implements IGasHandler, ITubeConnection, IRedstoneControl, ISideConfiguration, IUpgradeTile, ISustainedData, ITankManager
{ {
public static final int MAX_GAS = 10000; public static final int MAX_GAS = 10000;
@ -87,6 +100,8 @@ public class TileEntityChemicalCrystallizer extends TileEntityNoisyElectricBlock
inventory = new ItemStack[4]; inventory = new ItemStack[4];
upgradeComponent = new TileComponentUpgrade(this, 3); upgradeComponent = new TileComponentUpgrade(this, 3);
upgradeComponent.setSupported(Upgrade.MUFFLING);
ejectorComponent = new TileComponentEjector(this); ejectorComponent = new TileComponentEjector(this);
ejectorComponent.setOutputData(TransmissionType.ITEM, configComponent.getOutputs(TransmissionType.ITEM).get(2)); ejectorComponent.setOutputData(TransmissionType.ITEM, configComponent.getOutputs(TransmissionType.ITEM).get(2));
} }

View file

@ -17,9 +17,9 @@ import mekanism.api.gas.IGasItem;
import mekanism.api.gas.ITubeConnection; import mekanism.api.gas.ITubeConnection;
import mekanism.common.Mekanism; import mekanism.common.Mekanism;
import mekanism.common.Upgrade; import mekanism.common.Upgrade;
import mekanism.common.base.ITankManager;
import mekanism.common.base.IRedstoneControl; import mekanism.common.base.IRedstoneControl;
import mekanism.common.base.ISustainedData; import mekanism.common.base.ISustainedData;
import mekanism.common.base.ITankManager;
import mekanism.common.base.IUpgradeTile; import mekanism.common.base.IUpgradeTile;
import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.network.PacketTileEntity.TileEntityMessage; import mekanism.common.network.PacketTileEntity.TileEntityMessage;
@ -79,7 +79,9 @@ public class TileEntityChemicalDissolutionChamber extends TileEntityNoisyElectri
public TileEntityChemicalDissolutionChamber() public TileEntityChemicalDissolutionChamber()
{ {
super("machine.dissolution", "ChemicalDissolutionChamber", MachineType.CHEMICAL_DISSOLUTION_CHAMBER.baseEnergy); super("machine.dissolution", "ChemicalDissolutionChamber", MachineType.CHEMICAL_DISSOLUTION_CHAMBER.baseEnergy);
inventory = new ItemStack[5]; inventory = new ItemStack[5];
upgradeComponent.setSupported(Upgrade.MUFFLING);
} }
@Override @Override

View file

@ -19,9 +19,9 @@ import mekanism.api.gas.ITubeConnection;
import mekanism.common.Mekanism; import mekanism.common.Mekanism;
import mekanism.common.Upgrade; import mekanism.common.Upgrade;
import mekanism.common.Upgrade.IUpgradeInfoHandler; import mekanism.common.Upgrade.IUpgradeInfoHandler;
import mekanism.common.base.ITankManager;
import mekanism.common.base.IRedstoneControl; import mekanism.common.base.IRedstoneControl;
import mekanism.common.base.ISustainedData; import mekanism.common.base.ISustainedData;
import mekanism.common.base.ITankManager;
import mekanism.common.base.IUpgradeTile; import mekanism.common.base.IUpgradeTile;
import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.network.PacketTileEntity.TileEntityMessage; import mekanism.common.network.PacketTileEntity.TileEntityMessage;
@ -32,8 +32,6 @@ import mekanism.common.tile.component.TileComponentUpgrade;
import mekanism.common.util.ChargeUtils; import mekanism.common.util.ChargeUtils;
import mekanism.common.util.InventoryUtils; import mekanism.common.util.InventoryUtils;
import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
@ -73,7 +71,9 @@ public class TileEntityChemicalInfuser extends TileEntityNoisyElectricBlock impl
public TileEntityChemicalInfuser() public TileEntityChemicalInfuser()
{ {
super("machine.cheminfuser", "ChemicalInfuser", MachineType.CHEMICAL_INFUSER.baseEnergy); super("machine.cheminfuser", "ChemicalInfuser", MachineType.CHEMICAL_INFUSER.baseEnergy);
inventory = new ItemStack[5]; inventory = new ItemStack[5];
upgradeComponent.setSupported(Upgrade.MUFFLING);
} }
@Override @Override

View file

@ -69,7 +69,9 @@ public class TileEntityChemicalOxidizer extends TileEntityNoisyElectricBlock imp
public TileEntityChemicalOxidizer() public TileEntityChemicalOxidizer()
{ {
super("machine.oxidizer", "ChemicalOxidizer", MachineType.CHEMICAL_OXIDIZER.baseEnergy); super("machine.oxidizer", "ChemicalOxidizer", MachineType.CHEMICAL_OXIDIZER.baseEnergy);
inventory = new ItemStack[4]; inventory = new ItemStack[4];
upgradeComponent.setSupported(Upgrade.MUFFLING);
} }
@Override @Override

View file

@ -1,10 +1,21 @@
package mekanism.common.tile; package mekanism.common.tile;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import java.util.ArrayList;
import java.util.List;
import mekanism.api.Coord4D; import mekanism.api.Coord4D;
import mekanism.api.MekanismConfig.usage; import mekanism.api.MekanismConfig.usage;
import mekanism.api.Range4D; import mekanism.api.Range4D;
import mekanism.api.gas.*; import mekanism.api.gas.Gas;
import mekanism.api.gas.GasRegistry;
import mekanism.api.gas.GasStack;
import mekanism.api.gas.GasTank;
import mekanism.api.gas.GasTransmission;
import mekanism.api.gas.IGasHandler;
import mekanism.api.gas.IGasItem;
import mekanism.api.gas.ITubeConnection;
import mekanism.common.Mekanism; import mekanism.common.Mekanism;
import mekanism.common.Upgrade; import mekanism.common.Upgrade;
import mekanism.common.Upgrade.IUpgradeInfoHandler; import mekanism.common.Upgrade.IUpgradeInfoHandler;
@ -18,15 +29,23 @@ import mekanism.common.recipe.RecipeHandler;
import mekanism.common.recipe.inputs.GasInput; import mekanism.common.recipe.inputs.GasInput;
import mekanism.common.recipe.machines.WasherRecipe; import mekanism.common.recipe.machines.WasherRecipe;
import mekanism.common.tile.component.TileComponentUpgrade; import mekanism.common.tile.component.TileComponentUpgrade;
import mekanism.common.util.*; import mekanism.common.util.ChargeUtils;
import mekanism.common.util.FluidContainerUtils;
import mekanism.common.util.InventoryUtils;
import mekanism.common.util.MekanismUtils;
import mekanism.common.util.PipeUtils;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.*; import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidContainerRegistry;
import java.util.ArrayList; import net.minecraftforge.fluids.FluidRegistry;
import java.util.List; import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidTank;
import net.minecraftforge.fluids.FluidTankInfo;
import net.minecraftforge.fluids.IFluidContainerItem;
import net.minecraftforge.fluids.IFluidHandler;
public class TileEntityChemicalWasher extends TileEntityNoisyElectricBlock implements IGasHandler, ITubeConnection, IRedstoneControl, IFluidHandler, IUpgradeTile, ISustainedData, IUpgradeInfoHandler, ITankManager public class TileEntityChemicalWasher extends TileEntityNoisyElectricBlock implements IGasHandler, ITubeConnection, IRedstoneControl, IFluidHandler, IUpgradeTile, ISustainedData, IUpgradeInfoHandler, ITankManager
{ {
@ -65,7 +84,9 @@ public class TileEntityChemicalWasher extends TileEntityNoisyElectricBlock imple
public TileEntityChemicalWasher() public TileEntityChemicalWasher()
{ {
super("machine.washer", "ChemicalWasher", MachineType.CHEMICAL_WASHER.baseEnergy); super("machine.washer", "ChemicalWasher", MachineType.CHEMICAL_WASHER.baseEnergy);
inventory = new ItemStack[5]; inventory = new ItemStack[5];
upgradeComponent.setSupported(Upgrade.MUFFLING);
} }
@Override @Override

View file

@ -27,6 +27,6 @@ public class TileEntityCrusher extends TileEntityElectricMachine<CrusherRecipe>
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public float getVolume() public float getVolume()
{ {
return 0.5F; return 0.5F*super.getVolume();
} }
} }

View file

@ -1,18 +1,12 @@
package mekanism.common.tile; package mekanism.common.tile;
import java.util.ArrayList;
import mekanism.api.Coord4D;
import mekanism.api.EnumColor; import mekanism.api.EnumColor;
import mekanism.api.Range4D;
import mekanism.api.transmitters.TransmissionType; import mekanism.api.transmitters.TransmissionType;
import mekanism.common.Mekanism;
import mekanism.common.MekanismBlocks; import mekanism.common.MekanismBlocks;
import mekanism.common.MekanismItems; import mekanism.common.MekanismItems;
import mekanism.common.SideData; import mekanism.common.SideData;
import mekanism.common.Upgrade; import mekanism.common.Upgrade;
import mekanism.common.base.IFactory.RecipeType; import mekanism.common.base.IFactory.RecipeType;
import mekanism.common.network.PacketTileEntity.TileEntityMessage;
import mekanism.common.recipe.RecipeHandler; import mekanism.common.recipe.RecipeHandler;
import mekanism.common.recipe.inputs.ItemStackInput; import mekanism.common.recipe.inputs.ItemStackInput;
import mekanism.common.recipe.machines.BasicMachineRecipe; import mekanism.common.recipe.machines.BasicMachineRecipe;
@ -55,6 +49,8 @@ public abstract class TileEntityElectricMachine<RECIPE extends BasicMachineRecip
inventory = new ItemStack[4]; inventory = new ItemStack[4];
upgradeComponent = new TileComponentUpgrade(this, 3); upgradeComponent = new TileComponentUpgrade(this, 3);
upgradeComponent.setSupported(Upgrade.MUFFLING);
ejectorComponent = new TileComponentEjector(this); ejectorComponent = new TileComponentEjector(this);
ejectorComponent.setOutputData(TransmissionType.ITEM, configComponent.getOutputs(TransmissionType.ITEM).get(3)); ejectorComponent.setOutputData(TransmissionType.ITEM, configComponent.getOutputs(TransmissionType.ITEM).get(3));
} }

View file

@ -6,7 +6,6 @@ import mekanism.api.MekanismConfig.usage;
import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.recipe.RecipeHandler.Recipe; import mekanism.common.recipe.RecipeHandler.Recipe;
import mekanism.common.recipe.machines.EnrichmentRecipe; import mekanism.common.recipe.machines.EnrichmentRecipe;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
@ -27,6 +26,6 @@ public class TileEntityEnrichmentChamber extends TileEntityElectricMachine<Enric
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public float getVolume() public float getVolume()
{ {
return 0.3F; return 0.3F*super.getVolume();
} }
} }

View file

@ -150,6 +150,8 @@ public class TileEntityFactory extends TileEntityNoisyElectricBlock implements I
configComponent.setInputConfig(TransmissionType.ENERGY); configComponent.setInputConfig(TransmissionType.ENERGY);
upgradeComponent = new TileComponentUpgrade(this, 0); upgradeComponent = new TileComponentUpgrade(this, 0);
upgradeComponent.setSupported(Upgrade.MUFFLING);
ejectorComponent = new TileComponentEjector(this); ejectorComponent = new TileComponentEjector(this);
ejectorComponent.setOutputData(TransmissionType.ITEM, configComponent.getOutputs(TransmissionType.ITEM).get(4)); ejectorComponent.setOutputData(TransmissionType.ITEM, configComponent.getOutputs(TransmissionType.ITEM).get(4));
} }

View file

@ -100,6 +100,8 @@ public class TileEntityMetallurgicInfuser extends TileEntityNoisyElectricBlock i
inventory = new ItemStack[5]; inventory = new ItemStack[5];
upgradeComponent = new TileComponentUpgrade(this, 0); upgradeComponent = new TileComponentUpgrade(this, 0);
upgradeComponent.setSupported(Upgrade.MUFFLING);
ejectorComponent = new TileComponentEjector(this); ejectorComponent = new TileComponentEjector(this);
ejectorComponent.setOutputData(TransmissionType.ITEM, configComponent.getOutputs(TransmissionType.ITEM).get(3)); ejectorComponent.setOutputData(TransmissionType.ITEM, configComponent.getOutputs(TransmissionType.ITEM).get(3));
} }

View file

@ -4,8 +4,10 @@ import mekanism.api.MekanismConfig.client;
import mekanism.api.Pos3D; import mekanism.api.Pos3D;
import mekanism.client.HolidayManager; import mekanism.client.HolidayManager;
import mekanism.client.sound.ISoundSource; import mekanism.client.sound.ISoundSource;
import mekanism.common.Upgrade;
import mekanism.common.base.IActiveState; import mekanism.common.base.IActiveState;
import mekanism.common.base.IHasSound; import mekanism.common.base.IHasSound;
import mekanism.common.base.IUpgradeTile;
import mekanism.common.base.SoundWrapper; import mekanism.common.base.SoundWrapper;
import net.minecraft.client.audio.ISound.AttenuationType; import net.minecraft.client.audio.ISound.AttenuationType;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
@ -63,6 +65,11 @@ public abstract class TileEntityNoisyElectricBlock extends TileEntityElectricBlo
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public float getVolume() public float getVolume()
{ {
if(this instanceof IUpgradeTile && ((IUpgradeTile)this).getComponent().supports(Upgrade.MUFFLING))
{
return 1F - (float)((IUpgradeTile)this).getComponent().getUpgrades(Upgrade.MUFFLING)/(float)Upgrade.MUFFLING.getMax();
}
return 1F; return 1F;
} }

View file

@ -30,6 +30,6 @@ public class TileEntityPrecisionSawmill extends TileEntityChanceMachine<SawmillR
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public float getVolume() public float getVolume()
{ {
return 0.7F; return 0.7F*super.getVolume();
} }
} }

View file

@ -106,7 +106,7 @@ public class TileEntitySolarEvaporationController extends TileEntitySolarEvapora
int outputNeeded = outputTank.getCapacity()-outputTank.getFluidAmount(); int outputNeeded = outputTank.getCapacity()-outputTank.getFluidAmount();
int inputStored = inputTank.getFluidAmount(); int inputStored = inputTank.getFluidAmount();
double tempMult = Math.max(0, getTemperature())*general.evaporationTempMultiplier.getDouble(); double tempMult = Math.max(0, getTemperature())*general.evaporationTempMultiplier;
double inputToUse = (tempMult*recipe.recipeInput.ingredient.amount)*((float)height/(float)MAX_HEIGHT); double inputToUse = (tempMult*recipe.recipeInput.ingredient.amount)*((float)height/(float)MAX_HEIGHT);
inputToUse = Math.min(inputTank.getFluidAmount(), inputToUse); inputToUse = Math.min(inputTank.getFluidAmount(), inputToUse);
@ -328,21 +328,19 @@ public class TileEntitySolarEvaporationController extends TileEntitySolarEvapora
temperatureSet = true; temperatureSet = true;
} }
tempToAdd += getActiveSolars()*general.evaporationSolarMultiplier.getDouble(); tempToAdd += getActiveSolars()*general.evaporationSolarMultiplier;
temperature += tempToAdd/(float)height; temperature += tempToAdd/(float)height;
float biome = biomeTemp-0.5F; float biome = biomeTemp-0.5F;
float base = biome > 0 ? biome*20 : biomeTemp*40; float base = biome > 0 ? biome*20 : biomeTemp*40;
float incr = (float)Math.sqrt(Math.abs(temperature-base))*(float)general.evaporationHeatDissipation.getDouble(); float incr = (float)Math.sqrt(Math.abs(temperature-base))*(float)general.evaporationHeatDissipation;
if(temperature > base) if(temperature > base)
{ {
incr = -incr; incr = -incr;
} }
System.out.println(incr + " " + biome + " " + base); temperature = (float)Math.min(general.evaporationMaxTemp, temperature + incr/(float)height);
temperature = (float)Math.min(general.evaporationMaxTemp.getDouble(), temperature + incr/(float)height);
tempToAdd = 0; tempToAdd = 0;
@ -594,7 +592,7 @@ public class TileEntitySolarEvaporationController extends TileEntitySolarEvapora
public int getScaledTempLevel(int i) public int getScaledTempLevel(int i)
{ {
return (int)(i*Math.min(1, getTemperature()/general.evaporationMaxTemp.getDouble())); return (int)(i*Math.min(1, getTemperature()/general.evaporationMaxTemp));
} }
public Coord4D getRenderLocation() public Coord4D getRenderLocation()

View file

@ -1,20 +1,23 @@
package mekanism.common.tile.component; package mekanism.common.tile.component;
import io.netty.buffer.ByteBuf;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import mekanism.api.Coord4D;
import mekanism.api.Range4D;
import mekanism.common.Mekanism;
import mekanism.common.Upgrade; import mekanism.common.Upgrade;
import mekanism.common.base.ITileComponent; import mekanism.common.base.ITileComponent;
import mekanism.common.base.IUpgradeItem; import mekanism.common.base.IUpgradeItem;
import mekanism.common.network.PacketTileEntity.TileEntityMessage;
import mekanism.common.tile.TileEntityContainerBlock; import mekanism.common.tile.TileEntityContainerBlock;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import io.netty.buffer.ByteBuf;
public class TileComponentUpgrade implements ITileComponent public class TileComponentUpgrade implements ITileComponent
{ {
/** How long it takes this machine to install an upgrade. */ /** How long it takes this machine to install an upgrade. */
@ -79,6 +82,7 @@ public class TileComponentUpgrade implements ITileComponent
tileEntity.inventory[upgradeSlot] = null; tileEntity.inventory[upgradeSlot] = null;
} }
Mekanism.packetHandler.sendToReceivers(new TileEntityMessage(Coord4D.get(tileEntity), tileEntity.getNetworkedData(new ArrayList())), new Range4D(Coord4D.get(tileEntity)));
tileEntity.markDirty(); tileEntity.markDirty();
} }
} }

View file

@ -45,7 +45,7 @@ public class TileEntitySolarGenerator extends TileEntityGenerator
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public float getVolume() public float getVolume()
{ {
return 0.05F; return 0.05F*super.getVolume();
} }
@Override @Override

View file

@ -68,7 +68,7 @@ public class TileEntityWindGenerator extends TileEntityGenerator implements IBou
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public float getVolume() public float getVolume()
{ {
return 1.5F; return 1.5F*super.getVolume();
} }
private static final String[] methods = new String[] {"getStored", "getOutput", "getMaxEnergy", "getEnergyNeeded", "getMultiplier"}; private static final String[] methods = new String[] {"getStored", "getOutput", "getMaxEnergy", "getEnergyNeeded", "getMultiplier"};

View file

@ -11,6 +11,7 @@ item.EnergyTablet.name=Energy Tablet
item.SpeedUpgrade.name=Speed Upgrade item.SpeedUpgrade.name=Speed Upgrade
item.EnergyUpgrade.name=Energy Upgrade item.EnergyUpgrade.name=Energy Upgrade
item.FilterUpgrade.name=Filter Upgrade item.FilterUpgrade.name=Filter Upgrade
item.MufflingUpgrade.name=Muffling Upgrade
item.GasUpgrade.name=Gas Upgrade item.GasUpgrade.name=Gas Upgrade
item.Robit.name=Robit item.Robit.name=Robit
item.AtomicDisassembler.name=Atomic Disassembler item.AtomicDisassembler.name=Atomic Disassembler
@ -355,6 +356,8 @@ upgrade.filter=Filter
upgrade.filter.desc=A filter that separates !nheavy water from regular water. upgrade.filter.desc=A filter that separates !nheavy water from regular water.
upgrade.gas=Gas upgrade.gas=Gas
upgrade.gas.desc=Increases the efficiency !nof gas-using machinery. upgrade.gas.desc=Increases the efficiency !nof gas-using machinery.
upgrade.muffling=Muffling
upgrade.muffling.desc=Reduces noise generated !nby machinery.
//Key description text //Key description text
key.mode=Item Mode Switch key.mode=Item Mode Switch
@ -380,8 +383,6 @@ mekanism.configgui.ctgy.usage.tooltip=Settings regarding machinery and their ene
mekanism.configgui.ctgy.client.tooltip=Client-specific settings regarding Mekanism and all its modules mekanism.configgui.ctgy.client.tooltip=Client-specific settings regarding Mekanism and all its modules
//Gui text //Gui text
gui.removeSpeedUpgrade=Remove speed upgrade
gui.removeEnergyUpgrade=Remove energy upgrade
gui.condensentrating=Condensentrating gui.condensentrating=Condensentrating
gui.decondensentrating=Decondensentrating gui.decondensentrating=Decondensentrating
gui.power=Power gui.power=Power

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB