Add creative frequencies to the entangled blocks.

Adds the uility of being able to generate "infinite" (Integer.MAX_VALUE) amounts of fluids or gases.
This commit is contained in:
Ben Spiers 2014-08-11 00:55:48 +01:00
parent 0bab2c21e6
commit 84c13e098c
3 changed files with 49 additions and 1 deletions

View file

@ -163,6 +163,14 @@ public class GasTank
return maxGas;
}
/**
* Sets the maximum amount of gas this tank can hold
*/
public void setMaxGas(int capacity)
{
maxGas = capacity;
}
/**
* Gets the GasStack held by this GasTank.
* @return - GasStakc held by this tank

View file

@ -125,7 +125,6 @@ public class GuiEntangledBlock extends GuiMekanism
String prevFreq = frequencyField != null ? frequencyField.getText() : "";
frequencyField = new GuiTextField(fontRendererObj, guiWidth + 75, guiHeight + 55, 96, 11);
frequencyField.setMaxStringLength(10);
frequencyField.setText(prevFreq);
}
}

View file

@ -1,6 +1,15 @@
package mekanism.common.teleportation;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import mekanism.api.gas.GasRegistry;
import mekanism.api.gas.GasStack;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidRegistry.FluidRegisterEvent;
import net.minecraftforge.fluids.FluidStack;
public class SharedInventoryManager
{
@ -22,6 +31,38 @@ public class SharedInventoryManager
inventories.put(frequency, inv);
}
if(frequency.startsWith("creative."))
{
Iterator<String> creativeFreqs = Arrays.asList(frequency.substring(9).split("\\.")).iterator();
while(creativeFreqs.hasNext())
{
String type = creativeFreqs.next();
if(type.equals("energy"))
{
inv.MAX_ENERGY = Integer.MAX_VALUE;
inv.setEnergy(Integer.MAX_VALUE);
}
else if(type.equals("fluid") && creativeFreqs.hasNext())
{
String fluidType = creativeFreqs.next();
if(FluidRegistry.isFluidRegistered(fluidType))
{
inv.storedFluid.setCapacity(Integer.MAX_VALUE);
inv.storedFluid.setFluid(new FluidStack(FluidRegistry.getFluid(fluidType), Integer.MAX_VALUE));
}
}
else if(type.equals("gas") && creativeFreqs.hasNext())
{
String gasType = creativeFreqs.next();
if(GasRegistry.containsGas(gasType))
{
inv.storedGas.setMaxGas(Integer.MAX_VALUE);
inv.storedGas.setGas(new GasStack(GasRegistry.getGas(gasType), Integer.MAX_VALUE));
}
}
}
}
return inv;
}
}