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.BlockConveyorBelt;
|
||||||
import assemblyline.belts.TileEntityConveyorBelt;
|
import assemblyline.belts.TileEntityConveyorBelt;
|
||||||
import assemblyline.interaction.BlockInteraction;
|
import assemblyline.interaction.BlockInteraction;
|
||||||
import assemblyline.interaction.BlockInteraction.InteractMachineMetadata;
|
import assemblyline.interaction.BlockInteraction.MachineType;
|
||||||
import assemblyline.interaction.ItemBlockInteraction;
|
import assemblyline.interaction.ItemBlockInteraction;
|
||||||
import assemblyline.interaction.TileEntityEjector;
|
import assemblyline.interaction.TileEntityEjector;
|
||||||
import assemblyline.interaction.TileEntityInjector;
|
import assemblyline.interaction.TileEntityInjector;
|
||||||
|
@ -73,8 +73,8 @@ public class AssemblyLine
|
||||||
proxy.init();
|
proxy.init();
|
||||||
// Names
|
// Names
|
||||||
LanguageRegistry.addName(new ItemStack(blockConveyorBelt, 1), "Coneveyor Belt");
|
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, MachineType.EJECTOR.metadata), MachineType.EJECTOR.name);
|
||||||
LanguageRegistry.addName(new ItemStack(blockInteraction, 1, InteractMachineMetadata.INJECTOR.metadata), InteractMachineMetadata.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, 8), "FutureBlock");
|
||||||
LanguageRegistry.addName(new ItemStack(blockInteraction, 1, 12), "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.Material;
|
||||||
import net.minecraft.src.TileEntity;
|
import net.minecraft.src.TileEntity;
|
||||||
import net.minecraft.src.World;
|
import net.minecraft.src.World;
|
||||||
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
import universalelectricity.prefab.BlockMachine;
|
import universalelectricity.prefab.BlockMachine;
|
||||||
import assemblyline.AssemblyLine;
|
import assemblyline.AssemblyLine;
|
||||||
import assemblyline.render.RenderHelper;
|
import assemblyline.render.RenderHelper;
|
||||||
|
@ -16,49 +17,93 @@ import assemblyline.render.RenderHelper;
|
||||||
*/
|
*/
|
||||||
public class BlockInteraction extends BlockMachine
|
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 String name;
|
||||||
public int metadata;
|
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.name = name;
|
||||||
this.metadata = metadata;
|
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]; }
|
for(MachineType value : MachineType.values())
|
||||||
else if (metadata >= 4 && metadata < 8) { return InteractMachineMetadata.values()[4]; }
|
{
|
||||||
else if (metadata >= 8 && metadata < 12) { return InteractMachineMetadata.values()[8]; }
|
if(metadata >= value.metadata && metadata < value.metadata + 4)
|
||||||
else { return InteractMachineMetadata.values()[12]; }
|
{
|
||||||
|
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)
|
public BlockInteraction(int id)
|
||||||
{
|
{
|
||||||
super("Machine", id, Material.iron);
|
super("Interaction Machine", id, Material.iron);
|
||||||
this.setCreativeTab(CreativeTabs.tabTransport);
|
this.setCreativeTab(CreativeTabs.tabTransport);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int damageDropped(int metadata)
|
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)
|
public boolean onMachineActivated(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)
|
|
||||||
{
|
{
|
||||||
if (!par1World.isRemote)
|
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;
|
||||||
}
|
}
|
||||||
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)
|
public boolean onUseWrench(World par1World, int x, int y, int z, EntityPlayer par5EntityPlayer)
|
||||||
{
|
{
|
||||||
int metadata = par1World.getBlockMetadata(x, y, z);
|
int metadata = par1World.getBlockMetadata(x, y, z);
|
||||||
|
MachineType machineType = MachineType.getBase(metadata);
|
||||||
if (metadata == 3)
|
par1World.setBlockAndMetadataWithNotify(x, y, z, this.blockID, machineType.getNextDirectionMeta(MachineType.getDirection(metadata)));
|
||||||
{
|
|
||||||
par1World.setBlockAndMetadataWithNotify(x, y, z, this.blockID, 0);
|
|
||||||
return true;
|
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
@Override
|
||||||
* gets the correct facing direction from meta
|
public boolean onSneakUseWrench(World par1World, int x, int y, int z, EntityPlayer par5EntityPlayer)
|
||||||
* data
|
|
||||||
*
|
|
||||||
* @param meta
|
|
||||||
* @return facing direction(int)
|
|
||||||
*/
|
|
||||||
public byte getDirection(int meta)
|
|
||||||
{
|
{
|
||||||
|
return this.onUseWrench(par1World, x, y, z, 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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TileEntity createNewTileEntity(World var1, int metadata)
|
public TileEntity createNewTileEntity(World var1, int metadata)
|
||||||
{
|
{
|
||||||
if (metadata >= 0 && metadata < 4) { return new TileEntityEjector(); }
|
return MachineType.getBase(metadata).instantiateTileEntity();
|
||||||
if (metadata >= 4 && metadata < 8) { return new TileEntityInjector(); }
|
|
||||||
if (metadata >= 8 && metadata < 12) { return null; }
|
|
||||||
if (metadata >= 12 && metadata < 16) { return null; }
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -10,7 +10,7 @@ import net.minecraft.src.ItemStack;
|
||||||
import net.minecraft.src.MathHelper;
|
import net.minecraft.src.MathHelper;
|
||||||
import net.minecraft.src.World;
|
import net.minecraft.src.World;
|
||||||
import assemblyline.AssemblyLine;
|
import assemblyline.AssemblyLine;
|
||||||
import assemblyline.interaction.BlockInteraction.InteractMachineMetadata;
|
import assemblyline.interaction.BlockInteraction.MachineType;
|
||||||
|
|
||||||
public class ItemBlockInteraction extends ItemBlock
|
public class ItemBlockInteraction extends ItemBlock
|
||||||
{
|
{
|
||||||
|
@ -23,7 +23,7 @@ public class ItemBlockInteraction extends ItemBlock
|
||||||
|
|
||||||
public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List)
|
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));
|
par3List.add(new ItemStack(AssemblyLine.blockInteraction, 1, machine.metadata));
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@ public class ItemBlockInteraction extends ItemBlock
|
||||||
|
|
||||||
public String getItemNameIS(ItemStack itemstack)
|
public String getItemNameIS(ItemStack itemstack)
|
||||||
{
|
{
|
||||||
return InteractMachineMetadata.getBase(itemstack.getItemDamage()).name;
|
return MachineType.getBase(itemstack.getItemDamage()).name;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -5,6 +5,7 @@ import net.minecraft.src.TileEntitySpecialRenderer;
|
||||||
|
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import assemblyline.AssemblyLine;
|
||||||
import assemblyline.belts.TileEntityConveyorBelt;
|
import assemblyline.belts.TileEntityConveyorBelt;
|
||||||
import assemblyline.model.ModelConveyorBelt;
|
import assemblyline.model.ModelConveyorBelt;
|
||||||
|
|
||||||
|
@ -23,7 +24,7 @@ public class RenderConveyorBelt extends TileEntitySpecialRenderer
|
||||||
GL11.glRotatef(180f, 0f, 0f, 1f);
|
GL11.glRotatef(180f, 0f, 0f, 1f);
|
||||||
|
|
||||||
int pos = 0;
|
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==2){ GL11.glRotatef(180f, 0f, 1f, 0f);}
|
||||||
if(face==3){ GL11.glRotatef(0f, 0f, 1f, 0f);}
|
if(face==3){ GL11.glRotatef(0f, 0f, 1f, 0f);}
|
||||||
if(face==4){ GL11.glRotatef(90f, 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 org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
import assemblyline.AssemblyLine;
|
import assemblyline.AssemblyLine;
|
||||||
import assemblyline.interaction.BlockInteraction.InteractMachineMetadata;
|
import assemblyline.interaction.BlockInteraction.MachineType;
|
||||||
import assemblyline.model.ModelConveyorBelt;
|
import assemblyline.model.ModelConveyorBelt;
|
||||||
import assemblyline.model.ModelEjector;
|
import assemblyline.model.ModelEjector;
|
||||||
import assemblyline.model.ModelInjector;
|
import assemblyline.model.ModelInjector;
|
||||||
|
@ -31,15 +31,15 @@ public class RenderHelper implements ISimpleBlockRenderingHandler
|
||||||
GL11.glPushMatrix();
|
GL11.glPushMatrix();
|
||||||
GL11.glTranslatef((float) 0.0F, (float) 1.5F, (float) 0.0F);
|
GL11.glTranslatef((float) 0.0F, (float) 1.5F, (float) 0.0F);
|
||||||
GL11.glRotatef(180f, 0f, 0f, 1f);
|
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);
|
modelConveyorBelt.render(0.0625F, 0, false, false, false);
|
||||||
GL11.glPopMatrix();
|
GL11.glPopMatrix();
|
||||||
}
|
}
|
||||||
else if (block.blockID == AssemblyLine.blockInteraction.blockID)
|
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.glPushMatrix();
|
||||||
GL11.glTranslatef((float) 0.6F, (float) 1.5F, (float) 0.6F);
|
GL11.glTranslatef((float) 0.6F, (float) 1.5F, (float) 0.6F);
|
||||||
GL11.glRotatef(180f, 0f, 0f, 1f);
|
GL11.glRotatef(180f, 0f, 0f, 1f);
|
||||||
|
@ -48,9 +48,9 @@ public class RenderHelper implements ISimpleBlockRenderingHandler
|
||||||
modelEjector.renderPiston(0.0625F, 1);
|
modelEjector.renderPiston(0.0625F, 1);
|
||||||
GL11.glPopMatrix();
|
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.glPushMatrix();
|
||||||
GL11.glTranslatef((float) 0.6F, (float) 1.5F, (float) 0.6F);
|
GL11.glTranslatef((float) 0.6F, (float) 1.5F, (float) 0.6F);
|
||||||
GL11.glRotatef(180f, 0f, 0f, 1f);
|
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);
|
int ent = tileEntity.worldObj.getBlockId(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord);
|
||||||
model.render(0.0625F, true, 0);
|
model.render(0.0625F, true, 0);
|
||||||
//TODO change the true part to check if there is a TE on the input side
|
//TODO change the true part to check if there is a TE on the input side
|
||||||
System.out.println("RENDERING MACHINE BELT");
|
|
||||||
GL11.glPopMatrix();
|
GL11.glPopMatrix();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue