Enum Organization
This commit is contained in:
parent
cbad7f40cd
commit
4bbaded7a4
6 changed files with 86 additions and 110 deletions
|
@ -13,7 +13,7 @@ import universalelectricity.prefab.network.PacketManager;
|
|||
import assemblyline.belts.BlockConveyorBelt;
|
||||
import assemblyline.belts.TileEntityConveyorBelt;
|
||||
import assemblyline.interaction.BlockInteraction;
|
||||
import assemblyline.interaction.BlockInteraction.InteractMachineMetadata;
|
||||
import assemblyline.interaction.BlockInteraction.MachineType;
|
||||
import assemblyline.interaction.ItemBlockInteraction;
|
||||
import assemblyline.interaction.TileEntityEjector;
|
||||
import assemblyline.interaction.TileEntityInjector;
|
||||
|
@ -73,8 +73,8 @@ public class AssemblyLine
|
|||
proxy.init();
|
||||
// Names
|
||||
LanguageRegistry.addName(new ItemStack(blockConveyorBelt, 1), "Coneveyor Belt");
|
||||
LanguageRegistry.addName(new ItemStack(blockInteraction, 1, InteractMachineMetadata.EJECTOR.metadata), InteractMachineMetadata.EJECTOR.name);
|
||||
LanguageRegistry.addName(new ItemStack(blockInteraction, 1, InteractMachineMetadata.INJECTOR.metadata), InteractMachineMetadata.EJECTOR.name);
|
||||
LanguageRegistry.addName(new ItemStack(blockInteraction, 1, MachineType.EJECTOR.metadata), MachineType.EJECTOR.name);
|
||||
LanguageRegistry.addName(new ItemStack(blockInteraction, 1, MachineType.INJECTOR.metadata), MachineType.EJECTOR.name);
|
||||
LanguageRegistry.addName(new ItemStack(blockInteraction, 1, 8), "FutureBlock");
|
||||
LanguageRegistry.addName(new ItemStack(blockInteraction, 1, 12), "FutureBlock");
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import net.minecraft.src.EntityPlayer;
|
|||
import net.minecraft.src.Material;
|
||||
import net.minecraft.src.TileEntity;
|
||||
import net.minecraft.src.World;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import universalelectricity.prefab.BlockMachine;
|
||||
import assemblyline.AssemblyLine;
|
||||
import assemblyline.render.RenderHelper;
|
||||
|
@ -16,49 +17,93 @@ import assemblyline.render.RenderHelper;
|
|||
*/
|
||||
public class BlockInteraction extends BlockMachine
|
||||
{
|
||||
public static enum InteractMachineMetadata
|
||||
public static enum MachineType
|
||||
{
|
||||
EJECTOR("Ejector", 0), INJECTOR("Injector", 4);
|
||||
EJECTOR("Ejector", 0, TileEntityEjector.class),
|
||||
INJECTOR("Injector", 4, TileEntityInjector.class),
|
||||
INVALID_1("Invalid", 8, null),
|
||||
INVALID_2("Invalid", 12, null);
|
||||
|
||||
public String name;
|
||||
public int metadata;
|
||||
public Class<? extends TileEntity> tileEntity;
|
||||
|
||||
InteractMachineMetadata(String name, int metadata)
|
||||
MachineType(String name, int metadata, Class<? extends TileEntity> tileEntity)
|
||||
{
|
||||
this.name = name;
|
||||
this.metadata = metadata;
|
||||
this.tileEntity = tileEntity;
|
||||
}
|
||||
|
||||
public static InteractMachineMetadata getBase(int metadata)
|
||||
public static MachineType getBase(int metadata)
|
||||
{
|
||||
if (metadata >= 0 && metadata < 4) { return InteractMachineMetadata.values()[0]; }
|
||||
else if (metadata >= 4 && metadata < 8) { return InteractMachineMetadata.values()[4]; }
|
||||
else if (metadata >= 8 && metadata < 12) { return InteractMachineMetadata.values()[8]; }
|
||||
else { return InteractMachineMetadata.values()[12]; }
|
||||
for(MachineType value : MachineType.values())
|
||||
{
|
||||
if(metadata >= value.metadata && metadata < value.metadata + 4)
|
||||
{
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the direction based on the metadata
|
||||
* @return A direction value from 0 to 4.
|
||||
*/
|
||||
public static int getDirection(int metadata)
|
||||
{
|
||||
return metadata - MachineType.getBase(metadata).metadata;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param currentDirection - An integer from 0 to 4.
|
||||
* @return The metadata this block should change into.
|
||||
*/
|
||||
public int getNextDirectionMeta(int currentDirection)
|
||||
{
|
||||
currentDirection ++;
|
||||
|
||||
if(currentDirection >= 4)
|
||||
{
|
||||
currentDirection = 0;
|
||||
}
|
||||
|
||||
return currentDirection + this.metadata;
|
||||
}
|
||||
|
||||
public TileEntity instantiateTileEntity()
|
||||
{
|
||||
try
|
||||
{
|
||||
return this.tileEntity.newInstance();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public BlockInteraction(int id)
|
||||
{
|
||||
super("Machine", id, Material.iron);
|
||||
super("Interaction Machine", id, Material.iron);
|
||||
this.setCreativeTab(CreativeTabs.tabTransport);
|
||||
}
|
||||
|
||||
public int damageDropped(int metadata)
|
||||
{
|
||||
return InteractMachineMetadata.getBase(metadata).metadata;
|
||||
return MachineType.getBase(metadata).metadata;
|
||||
}
|
||||
|
||||
public boolean onSneakUseWrench(World par1World, int x, int y, int z, EntityPlayer par5EntityPlayer)
|
||||
{
|
||||
return this.onSneakMachineActivated(par1World, x, y, z, par5EntityPlayer);
|
||||
}
|
||||
|
||||
public boolean onSneakMachineActivated(World par1World, int x, int y, int z, EntityPlayer par5EntityPlayer)
|
||||
public boolean onMachineActivated(World par1World, int x, int y, int z, EntityPlayer par5EntityPlayer)
|
||||
{
|
||||
if (!par1World.isRemote)
|
||||
{
|
||||
par5EntityPlayer.openGui(AssemblyLine.instance, 0, par1World, x, y, z);
|
||||
int metadata = par1World.getBlockMetadata(x, y, z);
|
||||
par5EntityPlayer.openGui(AssemblyLine.instance, MachineType.getBase(metadata).metadata, par1World, x, y, z);
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
|
@ -68,90 +113,21 @@ public class BlockInteraction extends BlockMachine
|
|||
public boolean onUseWrench(World par1World, int x, int y, int z, EntityPlayer par5EntityPlayer)
|
||||
{
|
||||
int metadata = par1World.getBlockMetadata(x, y, z);
|
||||
|
||||
if (metadata == 3)
|
||||
{
|
||||
par1World.setBlockAndMetadataWithNotify(x, y, z, this.blockID, 0);
|
||||
MachineType machineType = MachineType.getBase(metadata);
|
||||
par1World.setBlockAndMetadataWithNotify(x, y, z, this.blockID, machineType.getNextDirectionMeta(MachineType.getDirection(metadata)));
|
||||
return true;
|
||||
}
|
||||
else if (metadata == 7)
|
||||
{
|
||||
par1World.setBlockAndMetadataWithNotify(x, y, z, this.blockID, 4);
|
||||
return true;
|
||||
}
|
||||
else if (metadata == 11)
|
||||
{
|
||||
par1World.setBlockAndMetadataWithNotify(x, y, z, this.blockID, 8);
|
||||
return true;
|
||||
}
|
||||
else if (metadata == 15)
|
||||
{
|
||||
par1World.setBlockAndMetadataWithNotify(x, y, z, this.blockID, 12);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
par1World.setBlockAndMetadataWithNotify(x, y, z, this.blockID, metadata + 1);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gets the correct facing direction from meta
|
||||
* data
|
||||
*
|
||||
* @param meta
|
||||
* @return facing direction(int)
|
||||
*/
|
||||
public byte getDirection(int meta)
|
||||
@Override
|
||||
public boolean onSneakUseWrench(World par1World, int x, int y, int z, EntityPlayer par5EntityPlayer)
|
||||
{
|
||||
|
||||
switch (meta)
|
||||
{
|
||||
case 0:
|
||||
return 2;
|
||||
case 1:
|
||||
return 5;
|
||||
case 2:
|
||||
return 3;
|
||||
case 3:
|
||||
return 4;
|
||||
case 4:
|
||||
return 2;
|
||||
case 5:
|
||||
return 5;
|
||||
case 6:
|
||||
return 3;
|
||||
case 7:
|
||||
return 4;
|
||||
case 8:
|
||||
return 2;
|
||||
case 9:
|
||||
return 5;
|
||||
case 10:
|
||||
return 3;
|
||||
case 11:
|
||||
return 4;
|
||||
case 12:
|
||||
return 2;
|
||||
case 13:
|
||||
return 5;
|
||||
case 14:
|
||||
return 3;
|
||||
case 15:
|
||||
return 4;
|
||||
}
|
||||
return 0;
|
||||
return this.onUseWrench(par1World, x, y, z, par5EntityPlayer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World var1, int metadata)
|
||||
{
|
||||
if (metadata >= 0 && metadata < 4) { return new TileEntityEjector(); }
|
||||
if (metadata >= 4 && metadata < 8) { return new TileEntityInjector(); }
|
||||
if (metadata >= 8 && metadata < 12) { return null; }
|
||||
if (metadata >= 12 && metadata < 16) { return null; }
|
||||
return null;
|
||||
return MachineType.getBase(metadata).instantiateTileEntity();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -10,7 +10,7 @@ import net.minecraft.src.ItemStack;
|
|||
import net.minecraft.src.MathHelper;
|
||||
import net.minecraft.src.World;
|
||||
import assemblyline.AssemblyLine;
|
||||
import assemblyline.interaction.BlockInteraction.InteractMachineMetadata;
|
||||
import assemblyline.interaction.BlockInteraction.MachineType;
|
||||
|
||||
public class ItemBlockInteraction extends ItemBlock
|
||||
{
|
||||
|
@ -23,7 +23,7 @@ public class ItemBlockInteraction extends ItemBlock
|
|||
|
||||
public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List)
|
||||
{
|
||||
for (InteractMachineMetadata machine : InteractMachineMetadata.values())
|
||||
for (MachineType machine : MachineType.values())
|
||||
{
|
||||
par3List.add(new ItemStack(AssemblyLine.blockInteraction, 1, machine.metadata));
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ public class ItemBlockInteraction extends ItemBlock
|
|||
|
||||
public String getItemNameIS(ItemStack itemstack)
|
||||
{
|
||||
return InteractMachineMetadata.getBase(itemstack.getItemDamage()).name;
|
||||
return MachineType.getBase(itemstack.getItemDamage()).name;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -5,6 +5,7 @@ import net.minecraft.src.TileEntitySpecialRenderer;
|
|||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import assemblyline.AssemblyLine;
|
||||
import assemblyline.belts.TileEntityConveyorBelt;
|
||||
import assemblyline.model.ModelConveyorBelt;
|
||||
|
||||
|
@ -23,7 +24,7 @@ public class RenderConveyorBelt extends TileEntitySpecialRenderer
|
|||
GL11.glRotatef(180f, 0f, 0f, 1f);
|
||||
|
||||
int pos = 0;
|
||||
bindTextureByName("/textures/BeltTexture"+flip+".png");
|
||||
bindTextureByName(AssemblyLine.TEXTURE_PATH+"BeltTexture"+flip+".png");
|
||||
if(face==2){ GL11.glRotatef(180f, 0f, 1f, 0f);}
|
||||
if(face==3){ GL11.glRotatef(0f, 0f, 1f, 0f);}
|
||||
if(face==4){ GL11.glRotatef(90f, 0f, 1f, 0f);}
|
||||
|
|
|
@ -7,7 +7,7 @@ import net.minecraft.src.RenderBlocks;
|
|||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import assemblyline.AssemblyLine;
|
||||
import assemblyline.interaction.BlockInteraction.InteractMachineMetadata;
|
||||
import assemblyline.interaction.BlockInteraction.MachineType;
|
||||
import assemblyline.model.ModelConveyorBelt;
|
||||
import assemblyline.model.ModelEjector;
|
||||
import assemblyline.model.ModelInjector;
|
||||
|
@ -31,15 +31,15 @@ public class RenderHelper implements ISimpleBlockRenderingHandler
|
|||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float) 0.0F, (float) 1.5F, (float) 0.0F);
|
||||
GL11.glRotatef(180f, 0f, 0f, 1f);
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture("/textures/BeltTexture.png"));
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture(AssemblyLine.TEXTURE_PATH+"BeltTexture.png"));
|
||||
modelConveyorBelt.render(0.0625F, 0, false, false, false);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
else if (block.blockID == AssemblyLine.blockInteraction.blockID)
|
||||
{
|
||||
if(metadata == InteractMachineMetadata.EJECTOR.metadata)
|
||||
if(metadata == MachineType.EJECTOR.metadata)
|
||||
{
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture("/textures/Ejector.png"));
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture(AssemblyLine.TEXTURE_PATH+"ejector.png"));
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float) 0.6F, (float) 1.5F, (float) 0.6F);
|
||||
GL11.glRotatef(180f, 0f, 0f, 1f);
|
||||
|
@ -48,9 +48,9 @@ public class RenderHelper implements ISimpleBlockRenderingHandler
|
|||
modelEjector.renderPiston(0.0625F, 1);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
else if(metadata == InteractMachineMetadata.INJECTOR.metadata)
|
||||
else if(metadata == MachineType.INJECTOR.metadata)
|
||||
{
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture("/textures/Ejector.png"));
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture(AssemblyLine.TEXTURE_PATH+"injector.png"));
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float) 0.6F, (float) 1.5F, (float) 0.6F);
|
||||
GL11.glRotatef(180f, 0f, 0f, 1f);
|
||||
|
|
|
@ -33,7 +33,6 @@ public class RenderInjector extends TileEntitySpecialRenderer
|
|||
int ent = tileEntity.worldObj.getBlockId(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord);
|
||||
model.render(0.0625F, true, 0);
|
||||
//TODO change the true part to check if there is a TE on the input side
|
||||
System.out.println("RENDERING MACHINE BELT");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue