Start work on the Energized Induction Matrix. This is going to be fun!

This commit is contained in:
Aidan C. Brady 2015-02-28 13:08:17 -06:00
parent a5507a88f2
commit ce31b1e22c
10 changed files with 113 additions and 39 deletions

View file

@ -124,7 +124,7 @@ public class ItemRenderingHandler implements IItemRenderer
{
EnergyCubeTier tier = ((IEnergyCube)item.getItem()).getEnergyCubeTier(item);
IEnergizedItem energized = (IEnergizedItem)item.getItem();
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "EnergyCube" + tier.name + ".png"));
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "EnergyCube" + tier.getBaseTier().getName() + ".png"));
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(270F, 0.0F, -1.0F, 0.0F);
@ -142,7 +142,7 @@ public class ItemRenderingHandler implements IItemRenderer
MekanismRenderer.glowOn();
EnumColor c = tier.color;
EnumColor c = tier.getBaseTier().getColor();
GL11.glPushMatrix();
GL11.glScalef(0.4F, 0.4F, 0.4F);

View file

@ -33,7 +33,7 @@ public class RenderEnergyCube extends TileEntitySpecialRenderer
GL11.glPushMatrix();
GL11.glTranslatef((float)x + 0.5F, (float)y + 1.5F, (float)z + 0.5F);
bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "EnergyCube" + tileEntity.tier.name + ".png"));
bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "EnergyCube" + tileEntity.tier.getBaseTier().getName() + ".png"));
switch(tileEntity.facing)
{
@ -65,7 +65,7 @@ public class RenderEnergyCube extends TileEntitySpecialRenderer
MekanismRenderer.blendOn();
MekanismRenderer.glowOn();
EnumColor c = tileEntity.tier.color;
EnumColor c = tileEntity.tier.getBaseTier().getColor();
GL11.glPushMatrix();

View file

@ -77,6 +77,8 @@ import mekanism.common.tile.TileEntityEnrichmentChamber;
import mekanism.common.tile.TileEntityFactory;
import mekanism.common.tile.TileEntityFluidicPlenisher;
import mekanism.common.tile.TileEntityGasTank;
import mekanism.common.tile.TileEntityInductionCell;
import mekanism.common.tile.TileEntityInductionProvider;
import mekanism.common.tile.TileEntityLaser;
import mekanism.common.tile.TileEntityLaserAmplifier;
import mekanism.common.tile.TileEntityLaserTractorBeam;
@ -161,6 +163,8 @@ public class CommonProxy
GameRegistry.registerTileEntity(TileEntityLaserTractorBeam.class, "LaserTractorBeam");
GameRegistry.registerTileEntity(TileEntitySolarNeutronActivator.class, "SolarNeutronActivator");
GameRegistry.registerTileEntity(TileEntityAmbientAccumulator.class, "AmbientAccumulator");
GameRegistry.registerTileEntity(TileEntityInductionCell.class, "InductionCell");
GameRegistry.registerTileEntity(TileEntityInductionProvider.class, "InductionProvider");
}
/**

View file

@ -2,7 +2,6 @@ package mekanism.common;
import mekanism.api.EnumColor;
import mekanism.common.multipart.TransmitterType;
import net.minecraft.util.ResourceLocation;
/**
@ -17,27 +16,34 @@ public final class Tier
*/
public static enum BaseTier
{
BASIC("Basic"),
ADVANCED("Advanced"),
ELITE("Elite"),
ULTIMATE("Ultimate"),
CREATIVE("Creative");
BASIC("Basic", EnumColor.BRIGHT_GREEN),
ADVANCED("Advanced", EnumColor.DARK_RED),
ELITE("Elite", EnumColor.DARK_BLUE),
ULTIMATE("Ultimate", EnumColor.PURPLE),
CREATIVE("Creative", EnumColor.BLACK);
public String getName()
{
return name;
}
public EnumColor getColor()
{
return color;
}
public boolean isObtainable()
{
return this != CREATIVE;
}
private String name;
private EnumColor color;
private BaseTier(String s)
private BaseTier(String s, EnumColor c)
{
name = s;
color = c;
}
}
@ -48,22 +54,20 @@ public final class Tier
*/
public static enum EnergyCubeTier
{
BASIC("Basic", EnumColor.BRIGHT_GREEN, 2000000, 800),
ADVANCED("Advanced", EnumColor.DARK_RED, 8000000, 3200),
ELITE("Elite", EnumColor.DARK_BLUE, 32000000, 12800),
ULTIMATE("Ultimate", EnumColor.PURPLE, 128000000, 51200),
CREATIVE("Creative", EnumColor.BLACK, Integer.MAX_VALUE, Integer.MAX_VALUE);
BASIC(2000000, 800),
ADVANCED(8000000, 3200),
ELITE(32000000, 12800),
ULTIMATE(128000000, 51200),
CREATIVE(Integer.MAX_VALUE, Integer.MAX_VALUE);
public double MAX_ELECTRICITY;
public double OUTPUT;
public String name;
public EnumColor color;
public static EnergyCubeTier getFromName(String tierName)
{
for(EnergyCubeTier tier : values())
{
if(tierName.contains(tier.name))
if(tierName.contains(tier.getBaseTier().getName()))
{
return tier;
}
@ -78,14 +82,52 @@ public final class Tier
return BaseTier.values()[ordinal()];
}
private EnergyCubeTier(String s, EnumColor c, double maxEnergy, double out)
private EnergyCubeTier(double maxEnergy, double out)
{
name = s;
color = c;
MAX_ELECTRICITY = maxEnergy;
OUTPUT = out;
}
}
public static enum InductionCellTier
{
BASIC(1E9D),
ADVANCED(8E9D),
ELITE(64E9D),
ULTIMATE(512E9D);
public double MAX_ELECTRICITY;
public BaseTier getBaseTier()
{
return BaseTier.values()[ordinal()];
}
private InductionCellTier(double maxEnergy)
{
MAX_ELECTRICITY = maxEnergy;
}
}
public static enum InductionProviderTier
{
BASIC(64000),
ADVANCED(512000),
ELITE(4096000),
ULTIMATE(32768000);
public double OUTPUT;
public BaseTier getBaseTier()
{
return BaseTier.values()[ordinal()];
}
private InductionProviderTier(double out)
{
OUTPUT = out;
}
}
/**
* The tiers used by the Factory and their corresponding values.
@ -94,19 +136,18 @@ public final class Tier
*/
public static enum FactoryTier
{
BASIC("Basic", 3, new ResourceLocation("mekanism", "gui/factory/GuiBasicFactory.png")),
ADVANCED("Advanced", 5, new ResourceLocation("mekanism", "gui/factory/GuiAdvancedFactory.png")),
ELITE("Elite", 7, new ResourceLocation("mekanism", "gui/factory/GuiEliteFactory.png"));
BASIC(3, new ResourceLocation("mekanism", "gui/factory/GuiBasicFactory.png")),
ADVANCED(5, new ResourceLocation("mekanism", "gui/factory/GuiAdvancedFactory.png")),
ELITE(7, new ResourceLocation("mekanism", "gui/factory/GuiEliteFactory.png"));
public int processes;
public ResourceLocation guiLocation;
public String name;
public static FactoryTier getFromName(String tierName)
{
for(FactoryTier tier : values())
{
if(tierName.contains(tier.name))
if(tierName.contains(tier.getBaseTier().getName()))
{
return tier;
}
@ -121,9 +162,8 @@ public final class Tier
return BaseTier.values()[ordinal()];
}
private FactoryTier(String s, int process, ResourceLocation gui)
private FactoryTier(int process, ResourceLocation gui)
{
name = s;
processes = process;
guiLocation = gui;
}

View file

@ -1,8 +1,6 @@
package mekanism.common.content.matrix;
import mekanism.common.content.tank.SynchronizedTankData;
import mekanism.common.multiblock.SynchronizedData;
import net.minecraft.item.ItemStack;
public class SynchronizedMatrixData extends SynchronizedData<SynchronizedMatrixData>
@ -16,6 +14,4 @@ public class SynchronizedMatrixData extends SynchronizedData<SynchronizedMatrixD
public int capacitors;
public int outputters;
public int coolants;
}

View file

@ -83,7 +83,7 @@ public class ItemBlockEnergyCube extends ItemBlock implements IEnergizedItem, IE
@Override
public String getUnlocalizedName(ItemStack itemstack)
{
return getUnlocalizedName() + "." + getEnergyCubeTier(itemstack).name;
return getUnlocalizedName() + "." + getEnergyCubeTier(itemstack).getBaseTier().getName();
}
@Override
@ -132,7 +132,7 @@ public class ItemBlockEnergyCube extends ItemBlock implements IEnergizedItem, IE
itemstack.setTagCompound(new NBTTagCompound());
}
itemstack.stackTagCompound.setString("tier", tier.name);
itemstack.stackTagCompound.setString("tier", tier.getBaseTier().getName());
}
@Override

View file

@ -82,7 +82,7 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IPe
@Override
public String getInventoryName()
{
return MekanismUtils.localize(getBlockType().getUnlocalizedName() + "." + tier.name + ".name");
return MekanismUtils.localize(getBlockType().getUnlocalizedName() + "." + tier.getBaseTier().getName() + ".name");
}
@Override
@ -219,7 +219,7 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IPe
@Override
public ArrayList getNetworkedData(ArrayList data)
{
data.add(tier.name);
data.add(tier.getBaseTier().getName());
super.getNetworkedData(data);
@ -242,7 +242,7 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IPe
{
super.writeToNBT(nbtTags);
nbtTags.setString("tier", tier.name);
nbtTags.setString("tier", tier.getBaseTier().getName());
nbtTags.setInteger("controlType", controlType.ordinal());
}

View file

@ -129,7 +129,7 @@ public class TileEntityFactory extends TileEntityNoisyElectricBlock implements I
public TileEntityFactory(FactoryTier type, MachineType machine)
{
super("null", type.name + "Factory", machine.baseEnergy);
super("null", type.getBaseTier().getName() + "Factory", machine.baseEnergy);
tier = type;
inventory = new ItemStack[5+type.processes*2];

View file

@ -0,0 +1,17 @@
package mekanism.common.tile;
import mekanism.common.Tier.InductionCellTier;
public class TileEntityInductionCell extends TileEntityBasicBlock
{
public InductionCellTier tier = InductionCellTier.BASIC;
@Override
public void onUpdate() {}
@Override
public boolean canUpdate()
{
return false;
}
}

View file

@ -0,0 +1,17 @@
package mekanism.common.tile;
import mekanism.common.Tier.InductionProviderTier;
public class TileEntityInductionProvider extends TileEntityBasicBlock
{
public InductionProviderTier tier = InductionProviderTier.BASIC;
@Override
public void onUpdate() {}
@Override
public boolean canUpdate()
{
return false;
}
}