Start work on Miner, make the Bin only eject items when front side is clicked!
This commit is contained in:
parent
c1288c514e
commit
995207bcab
11 changed files with 99 additions and 233 deletions
|
@ -68,6 +68,7 @@ import mekanism.common.tileentity.TileEntityBin;
|
|||
import mekanism.common.tileentity.TileEntityChargepad;
|
||||
import mekanism.common.tileentity.TileEntityCombiner;
|
||||
import mekanism.common.tileentity.TileEntityCrusher;
|
||||
import mekanism.common.tileentity.TileEntityDigitalMiner;
|
||||
import mekanism.common.tileentity.TileEntityDynamicTank;
|
||||
import mekanism.common.tileentity.TileEntityDynamicValve;
|
||||
import mekanism.common.tileentity.TileEntityElectricChest;
|
||||
|
@ -104,6 +105,7 @@ import cpw.mods.fml.client.registry.ClientRegistry;
|
|||
import cpw.mods.fml.client.registry.KeyBindingRegistry;
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import cpw.mods.fml.common.network.NetworkRegistry;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import cpw.mods.fml.common.registry.TickRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
@ -226,7 +228,7 @@ public class ClientProxy extends CommonProxy
|
|||
ClientRegistry.registerTileEntity(TileEntityEnrichmentChamber.class, "EnrichmentChamber", new RenderConfigurableMachine());
|
||||
ClientRegistry.registerTileEntity(TileEntityOsmiumCompressor.class, "OsmiumCompressor", new RenderConfigurableMachine());
|
||||
ClientRegistry.registerTileEntity(TileEntityCombiner.class, "Combiner", new RenderConfigurableMachine());
|
||||
ClientRegistry.registerTileEntity(TileEntityCrusher.class, "Crusher", new RenderConfigurableMachine()); //TODO model
|
||||
ClientRegistry.registerTileEntity(TileEntityCrusher.class, "Crusher", new RenderConfigurableMachine());
|
||||
ClientRegistry.registerTileEntity(TileEntityFactory.class, "SmeltingFactory", new RenderConfigurableMachine());
|
||||
ClientRegistry.registerTileEntity(TileEntityAdvancedFactory.class, "AdvancedSmeltingFactory", new RenderConfigurableMachine());
|
||||
ClientRegistry.registerTileEntity(TileEntityEliteFactory.class, "UltimateSmeltingFactory", new RenderConfigurableMachine());
|
||||
|
@ -247,6 +249,7 @@ public class ClientProxy extends CommonProxy
|
|||
ClientRegistry.registerTileEntity(TileEntityLogisticalTransporter.class, "LogisticalTransporter", new RenderLogisticalTransporter());
|
||||
ClientRegistry.registerTileEntity(TileEntityLogisticalSorter.class, "LogisticalSorter", new RenderLogisticalSorter());
|
||||
ClientRegistry.registerTileEntity(TileEntityBin.class, "Bin", new RenderBin());
|
||||
GameRegistry.registerTileEntity(TileEntityDigitalMiner.class, "DigitalMiner"); //TODO model
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -296,6 +299,8 @@ public class ClientProxy extends CommonProxy
|
|||
{
|
||||
case 1:
|
||||
return new GuiCredits();
|
||||
case 2:
|
||||
//DigitalMiner GUI TODO
|
||||
case 3:
|
||||
return new GuiEnrichmentChamber(player.inventory, (TileEntityElectricMachine)tileEntity);
|
||||
case 4:
|
||||
|
@ -411,6 +416,12 @@ public class ClientProxy extends CommonProxy
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getReach(EntityPlayer player)
|
||||
{
|
||||
return Minecraft.getMinecraft().playerController.getBlockReachDistance();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPaused()
|
||||
{
|
||||
|
|
|
@ -1,121 +0,0 @@
|
|||
package mekanism.client.model;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.model.ModelBase;
|
||||
import net.minecraft.client.model.ModelRenderer;
|
||||
import net.minecraft.entity.Entity;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class ModelCrusher extends ModelBase
|
||||
{
|
||||
ModelRenderer Top;
|
||||
ModelRenderer Base;
|
||||
ModelRenderer RightWall;
|
||||
ModelRenderer RightWall2;
|
||||
ModelRenderer PistonDecor;
|
||||
ModelRenderer PistonRod;
|
||||
ModelRenderer Pad;
|
||||
ModelRenderer PistonHead;
|
||||
ModelRenderer BackWall;
|
||||
ModelRenderer BackWall2;
|
||||
ModelRenderer TopTop;
|
||||
|
||||
public ModelCrusher()
|
||||
{
|
||||
textureWidth = 128;
|
||||
textureHeight = 64;
|
||||
|
||||
Top = new ModelRenderer(this, 0, 18);
|
||||
Top.addBox(0F, 0F, 0F, 14, 1, 8);
|
||||
Top.setRotationPoint(-7F, 14F, -4F);
|
||||
Top.setTextureSize(128, 64);
|
||||
Top.mirror = true;
|
||||
setRotation(Top, 0F, 0F, 0F);
|
||||
Base = new ModelRenderer(this, 0, 0);
|
||||
Base.addBox(0F, 0F, 0F, 16, 1, 16);
|
||||
Base.setRotationPoint(-8F, 23F, -8F);
|
||||
Base.setTextureSize(128, 64);
|
||||
Base.mirror = true;
|
||||
setRotation(Base, 0F, 0F, 0F);
|
||||
RightWall = new ModelRenderer(this, 0, 28);
|
||||
RightWall.addBox(0F, 0F, 0F, 4, 6, 14);
|
||||
RightWall.setRotationPoint(-8F, 17F, -7F);
|
||||
RightWall.setTextureSize(128, 64);
|
||||
RightWall.mirror = true;
|
||||
setRotation(RightWall, 0F, 0F, 0F);
|
||||
RightWall2 = new ModelRenderer(this, 0, 49);
|
||||
RightWall2.addBox(0F, 0F, 0F, 4, 2, 12);
|
||||
RightWall2.setRotationPoint(-8F, 15F, -6F);
|
||||
RightWall2.setTextureSize(128, 64);
|
||||
RightWall2.mirror = true;
|
||||
setRotation(RightWall2, 0F, 0F, 0F);
|
||||
PistonDecor = new ModelRenderer(this, 65, 0);
|
||||
PistonDecor.addBox(0F, 0F, 0F, 7, 1, 7);
|
||||
PistonDecor.setRotationPoint(-0.5F, 14.5F, -3.5F);
|
||||
PistonDecor.setTextureSize(128, 64);
|
||||
PistonDecor.mirror = true;
|
||||
setRotation(PistonDecor, 0F, 0F, 0F);
|
||||
PistonRod = new ModelRenderer(this, 45, 18);
|
||||
PistonRod.addBox(0F, 0F, 0F, 1, 6, 1);
|
||||
PistonRod.setRotationPoint(2.5F, 13F, -0.5F);
|
||||
PistonRod.setTextureSize(128, 64);
|
||||
PistonRod.mirror = true;
|
||||
setRotation(PistonRod, 0F, 0F, 0F);
|
||||
Pad = new ModelRenderer(this, 50, 18);
|
||||
Pad.addBox(0F, 0F, 0F, 4, 1, 4);
|
||||
Pad.setRotationPoint(1F, 22.7F, -2F);
|
||||
Pad.setTextureSize(128, 64);
|
||||
Pad.mirror = true;
|
||||
setRotation(Pad, 0F, 0F, 0F);
|
||||
PistonHead = new ModelRenderer(this, 67, 18);
|
||||
PistonHead.addBox(0F, 0F, 0F, 4, 1, 4);
|
||||
PistonHead.setRotationPoint(1F, 19F, -2F);
|
||||
PistonHead.setTextureSize(128, 64);
|
||||
PistonHead.mirror = true;
|
||||
setRotation(PistonHead, 0F, 0F, 0F);
|
||||
BackWall = new ModelRenderer(this, 94, 0);
|
||||
BackWall.addBox(0F, 0F, 0F, 11, 6, 2);
|
||||
BackWall.setRotationPoint(-4F, 17F, 5F);
|
||||
BackWall.setTextureSize(128, 64);
|
||||
BackWall.mirror = true;
|
||||
setRotation(BackWall, 0F, 0F, 0F);
|
||||
BackWall2 = new ModelRenderer(this, 90, 9);
|
||||
BackWall2.addBox(0F, 0F, 0F, 11, 2, 3);
|
||||
BackWall2.setRotationPoint(-4F, 15F, 3F);
|
||||
BackWall2.setTextureSize(128, 64);
|
||||
BackWall2.mirror = true;
|
||||
setRotation(BackWall2, 0F, 0F, 0F);
|
||||
TopTop = new ModelRenderer(this, 90, 15);
|
||||
TopTop.addBox(0F, 0F, 0F, 6, 5, 6);
|
||||
TopTop.setRotationPoint(0F, 12F, -3F);
|
||||
TopTop.setTextureSize(128, 64);
|
||||
TopTop.mirror = true;
|
||||
setRotation(TopTop, 0F, 0F, 0F);
|
||||
}
|
||||
|
||||
public void render(float size, float depth)
|
||||
{
|
||||
PistonRod.setRotationPoint(2.5F, 13F+depth, -0.5F);
|
||||
PistonHead.setRotationPoint(1F, 19F+depth, -2F);
|
||||
|
||||
Top.render(size);
|
||||
Base.render(size);
|
||||
RightWall.render(size);
|
||||
RightWall2.render(size);
|
||||
PistonDecor.render(size);
|
||||
PistonRod.render(size);
|
||||
Pad.render(size);
|
||||
PistonHead.render(size);
|
||||
BackWall.render(size);
|
||||
BackWall2.render(size);
|
||||
TopTop.render(size);
|
||||
}
|
||||
|
||||
private void setRotation(ModelRenderer model, float x, float y, float z)
|
||||
{
|
||||
model.rotateAngleX = x;
|
||||
model.rotateAngleY = y;
|
||||
model.rotateAngleZ = z;
|
||||
}
|
||||
}
|
|
@ -2,12 +2,10 @@ package mekanism.client.render.block;
|
|||
|
||||
import mekanism.client.ClientProxy;
|
||||
import mekanism.client.model.ModelChargepad;
|
||||
import mekanism.client.model.ModelCrusher;
|
||||
import mekanism.client.model.ModelElectricPump;
|
||||
import mekanism.client.model.ModelLogisticalSorter;
|
||||
import mekanism.client.model.ModelMetallurgicInfuser;
|
||||
import mekanism.client.render.MekanismRenderer;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.block.BlockMachine.MachineType;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import mekanism.common.util.MekanismUtils.ResourceType;
|
||||
|
@ -29,7 +27,6 @@ public class MachineRenderingHandler implements ISimpleBlockRenderingHandler
|
|||
public ModelMetallurgicInfuser metallurgicInfuser = new ModelMetallurgicInfuser();
|
||||
public ModelChargepad chargepad = new ModelChargepad();
|
||||
public ModelLogisticalSorter logisticalSorter = new ModelLogisticalSorter();
|
||||
public ModelCrusher crusher = new ModelCrusher();
|
||||
|
||||
@Override
|
||||
public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer)
|
||||
|
@ -73,14 +70,6 @@ public class MachineRenderingHandler implements ISimpleBlockRenderingHandler
|
|||
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "LogisticalSorter.png"));
|
||||
logisticalSorter.render(0.0625F, false);
|
||||
}
|
||||
/*else if(metadata == MachineType.CRUSHER.meta)
|
||||
{
|
||||
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
|
||||
GL11.glRotatef(270F, 0.0F, -1.0F, 0.0F);
|
||||
GL11.glTranslatef(0.0F, -1.0F, 0.0F);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "Crusher.png"));
|
||||
crusher.render(0.0625F, 0.0F);
|
||||
} TODO model */
|
||||
else {
|
||||
MekanismRenderer.renderItem(renderer, metadata, block);
|
||||
}
|
||||
|
|
|
@ -1,44 +0,0 @@
|
|||
package mekanism.client.render.tileentity;
|
||||
|
||||
import mekanism.client.model.ModelCrusher;
|
||||
import mekanism.common.tileentity.TileEntityCrusher;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import mekanism.common.util.MekanismUtils.ResourceType;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class RenderCrusher extends TileEntitySpecialRenderer
|
||||
{
|
||||
private ModelCrusher model = new ModelCrusher();
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float partialTick)
|
||||
{
|
||||
renderAModelAt((TileEntityCrusher)tileEntity, x, y, z, partialTick);
|
||||
}
|
||||
|
||||
private void renderAModelAt(TileEntityCrusher tileEntity, double x, double y, double z, float partialTick)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float)x + 0.5F, (float)y + 1.5F, (float)z + 0.5F);
|
||||
bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "Crusher.png"));
|
||||
|
||||
switch(tileEntity.facing)
|
||||
{
|
||||
case 2: GL11.glRotatef(0, 0.0F, 1.0F, 0.0F); break;
|
||||
case 3: GL11.glRotatef(180, 0.0F, 1.0F, 0.0F); break;
|
||||
case 4: GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); break;
|
||||
case 5: GL11.glRotatef(270, 0.0F, 1.0F, 0.0F); break;
|
||||
}
|
||||
|
||||
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
|
||||
model.render(0.0625F, tileEntity.isActive ? tileEntity.getMatrix() : 0.0F);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
|
@ -25,6 +25,7 @@ import mekanism.common.tileentity.TileEntityChargepad;
|
|||
import mekanism.common.tileentity.TileEntityCombiner;
|
||||
import mekanism.common.tileentity.TileEntityContainerBlock;
|
||||
import mekanism.common.tileentity.TileEntityCrusher;
|
||||
import mekanism.common.tileentity.TileEntityDigitalMiner;
|
||||
import mekanism.common.tileentity.TileEntityDynamicTank;
|
||||
import mekanism.common.tileentity.TileEntityDynamicValve;
|
||||
import mekanism.common.tileentity.TileEntityElectricChest;
|
||||
|
@ -46,6 +47,7 @@ import mekanism.common.tileentity.TileEntityPurificationChamber;
|
|||
import mekanism.common.tileentity.TileEntityTeleporter;
|
||||
import mekanism.common.tileentity.TileEntityUniversalCable;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
@ -89,6 +91,7 @@ public class CommonProxy
|
|||
GameRegistry.registerTileEntity(TileEntityLogisticalTransporter.class, "LogisticalTransporter");
|
||||
GameRegistry.registerTileEntity(TileEntityLogisticalSorter.class, "LogisticalSorter");
|
||||
GameRegistry.registerTileEntity(TileEntityBin.class, "Bin");
|
||||
GameRegistry.registerTileEntity(TileEntityDigitalMiner.class, "DigitalMiner");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -240,6 +243,8 @@ public class CommonProxy
|
|||
|
||||
switch(ID)
|
||||
{
|
||||
case 2:
|
||||
//DIGITAL MINER CONTAINER TODO
|
||||
case 3:
|
||||
return new ContainerElectricMachine(player.inventory, (TileEntityElectricMachine)tileEntity);
|
||||
case 4:
|
||||
|
@ -303,6 +308,16 @@ public class CommonProxy
|
|||
return null;
|
||||
}
|
||||
|
||||
public double getReach(EntityPlayer player)
|
||||
{
|
||||
if(player instanceof EntityPlayerMP)
|
||||
{
|
||||
return ((EntityPlayerMP)player).theItemInWorldManager.getBlockReachDistance();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the Minecraft base directory.
|
||||
* @return base directory
|
||||
|
|
|
@ -39,6 +39,7 @@ import net.minecraft.world.World;
|
|||
import net.minecraftforge.common.ForgeDirection;
|
||||
import net.minecraftforge.fluids.FluidContainerRegistry;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import codechicken.lib.raytracer.RayTracer;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
|
@ -217,17 +218,21 @@ public class BlockBasic extends Block
|
|||
int meta = world.getBlockMetadata(x, y, z);
|
||||
|
||||
if(!world.isRemote && meta == 6)
|
||||
{
|
||||
{
|
||||
TileEntityBin bin = (TileEntityBin)world.getBlockTileEntity(x, y, z);
|
||||
MovingObjectPosition pos = MekanismUtils.rayTrace(world, player);
|
||||
|
||||
if(bin.getStack() != null)
|
||||
if(pos != null && pos.sideHit == bin.facing)
|
||||
{
|
||||
if(!player.isSneaking())
|
||||
if(bin.getStack() != null)
|
||||
{
|
||||
world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, bin.removeStack().copy()));
|
||||
}
|
||||
else {
|
||||
world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, bin.remove(1).copy()));
|
||||
if(!player.isSneaking())
|
||||
{
|
||||
world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, bin.removeStack().copy()));
|
||||
}
|
||||
else {
|
||||
world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, bin.remove(1).copy()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,6 +31,7 @@ import mekanism.common.tileentity.TileEntityChargepad;
|
|||
import mekanism.common.tileentity.TileEntityCombiner;
|
||||
import mekanism.common.tileentity.TileEntityContainerBlock;
|
||||
import mekanism.common.tileentity.TileEntityCrusher;
|
||||
import mekanism.common.tileentity.TileEntityDigitalMiner;
|
||||
import mekanism.common.tileentity.TileEntityElectricBlock;
|
||||
import mekanism.common.tileentity.TileEntityElectricChest;
|
||||
import mekanism.common.tileentity.TileEntityElectricPump;
|
||||
|
@ -75,7 +76,7 @@ import cpw.mods.fml.relauncher.SideOnly;
|
|||
* 1: Osmium Compressor
|
||||
* 2: Combiner
|
||||
* 3: Crusher
|
||||
* 4: OPEN
|
||||
* 4: Digital Miner
|
||||
* 5: Basic Factory
|
||||
* 6: Advanced Factory
|
||||
* 7: Elite Factory
|
||||
|
@ -128,14 +129,6 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds
|
|||
icons[blockID][7][0] = register.registerIcon("mekanism:EliteFactoryFront");
|
||||
icons[blockID][7][1] = register.registerIcon("mekanism:EliteFactorySide");
|
||||
icons[blockID][7][2] = register.registerIcon("mekanism:EliteFactoryTop");
|
||||
icons[blockID][8][0] = register.registerIcon("mekanism:MetallurgicInfuserFrontOff");
|
||||
icons[blockID][8][1] = register.registerIcon("mekanism:MetallurgicInfuserFrontOn");
|
||||
icons[blockID][8][2] = register.registerIcon("mekanism:MetallurgicInfuserSideOff");
|
||||
icons[blockID][8][3] = register.registerIcon("mekanism:MetallurgicInfuserSideOn");
|
||||
icons[blockID][8][4] = register.registerIcon("mekanism:MetallurgicInfuserTopOff");
|
||||
icons[blockID][8][5] = register.registerIcon("mekanism:MetallurgicInfuserTopOn");
|
||||
icons[blockID][8][6] = register.registerIcon("mekanism:MetallurgicInfuserBackOff");
|
||||
icons[blockID][8][7] = register.registerIcon("mekanism:MetallurgicInfuserBackOn");
|
||||
icons[blockID][9][0] = register.registerIcon("mekanism:PurificationChamberFrontOff");
|
||||
icons[blockID][9][1] = register.registerIcon("mekanism:PurificationChamberFrontOn");
|
||||
icons[blockID][9][2] = register.registerIcon("mekanism:SteelCasing");
|
||||
|
@ -184,6 +177,19 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock(World world, int x, int y, int z, int i1, int i2)
|
||||
{
|
||||
TileEntityElectricBlock tileEntity = (TileEntityElectricBlock)world.getBlockTileEntity(x, y, z);
|
||||
|
||||
if(tileEntity instanceof IBoundingBlock)
|
||||
{
|
||||
((IBoundingBlock)tileEntity).onBreak();
|
||||
}
|
||||
|
||||
super.breakBlock(world, x, y, z, i1, i2);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void randomDisplayTick(World world, int x, int y, int z, Random random)
|
||||
|
@ -332,24 +338,6 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds
|
|||
return icons[blockID][7][1];
|
||||
}
|
||||
}
|
||||
else if(meta == 8)
|
||||
{
|
||||
if(side == 0 || side == 1)
|
||||
{
|
||||
return icons[blockID][8][4];
|
||||
}
|
||||
else if(side == 3)
|
||||
{
|
||||
return icons[blockID][8][0];
|
||||
}
|
||||
else if(side == 2)
|
||||
{
|
||||
return icons[blockID][8][6];
|
||||
}
|
||||
else {
|
||||
return icons[blockID][8][2];
|
||||
}
|
||||
}
|
||||
else if(meta == 9)
|
||||
{
|
||||
if(side == 3)
|
||||
|
@ -468,26 +456,6 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds
|
|||
return icons[blockID][7][1];
|
||||
}
|
||||
}
|
||||
else if(metadata == 8)
|
||||
{
|
||||
if(side == 0 || side == 1)
|
||||
{
|
||||
return MekanismUtils.isActive(world, x, y, z) ? icons[blockID][8][5] : icons[blockID][8][4];
|
||||
}
|
||||
else {
|
||||
if(side == tileEntity.facing)
|
||||
{
|
||||
return MekanismUtils.isActive(world, x, y, z) ? icons[blockID][8][1] : icons[blockID][8][0];
|
||||
}
|
||||
else if(side == ForgeDirection.getOrientation(tileEntity.facing).getOpposite().ordinal())
|
||||
{
|
||||
return MekanismUtils.isActive(world, x, y, z) ? icons[blockID][8][7] : icons[blockID][8][6];
|
||||
}
|
||||
else {
|
||||
return MekanismUtils.isActive(world, x, y, z) ? icons[blockID][8][3] : icons[blockID][8][2];
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(metadata == 9)
|
||||
{
|
||||
if(side == tileEntity.facing)
|
||||
|
@ -530,6 +498,7 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds
|
|||
list.add(new ItemStack(i, 1, 1));
|
||||
list.add(new ItemStack(i, 1, 2));
|
||||
list.add(new ItemStack(i, 1, 3));
|
||||
//TODO DIGITAL MINER
|
||||
|
||||
for(RecipeType type : RecipeType.values())
|
||||
{
|
||||
|
@ -930,6 +899,7 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds
|
|||
OSMIUM_COMPRESSOR(Mekanism.machineBlockID, 1, "OsmiumCompressor", 4, Mekanism.osmiumCompressorUsage*400, TileEntityOsmiumCompressor.class, false),
|
||||
COMBINER(Mekanism.machineBlockID, 2, "Combiner", 5, Mekanism.combinerUsage*400, TileEntityCombiner.class, false),
|
||||
CRUSHER(Mekanism.machineBlockID, 3, "Crusher", 6, Mekanism.crusherUsage*400, TileEntityCrusher.class, false),
|
||||
DIGITAL_MINER(Mekanism.machineBlockID, 4, "DigitalMiner", 2, 100000, TileEntityDigitalMiner.class, true),
|
||||
BASIC_FACTORY(Mekanism.machineBlockID, 5, "BasicFactory", 11, Mekanism.factoryUsage*3*400, TileEntityFactory.class, false),
|
||||
ADVANCED_FACTORY(Mekanism.machineBlockID, 6, "AdvancedFactory", 11, Mekanism.factoryUsage*5*400, TileEntityAdvancedFactory.class, false),
|
||||
ELITE_FACTORY(Mekanism.machineBlockID, 7, "EliteFactory", 11, Mekanism.factoryUsage*7*400, TileEntityEliteFactory.class, false),
|
||||
|
|
|
@ -58,7 +58,7 @@ import cpw.mods.fml.relauncher.SideOnly;
|
|||
* 1: Osmium Compressor
|
||||
* 2: Combiner
|
||||
* 3: Crusher
|
||||
* 4: OPEN
|
||||
* 4: Digital Miner
|
||||
* 5: Basic Factory
|
||||
* 6: Advanced Factory
|
||||
* 7: Elite Factory
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
package mekanism.common.tileentity;
|
||||
|
||||
import mekanism.common.block.BlockMachine.MachineType;
|
||||
|
||||
public class TileEntityDigitalMiner extends TileEntityElectricBlock
|
||||
{
|
||||
public TileEntityDigitalMiner()
|
||||
{
|
||||
super("Digital Miner", MachineType.DIGITAL_MINER.baseEnergy);
|
||||
}
|
||||
}
|
|
@ -41,13 +41,14 @@ import net.minecraft.block.Block;
|
|||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.item.ItemDye;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.crafting.CraftingManager;
|
||||
import net.minecraft.item.crafting.IRecipe;
|
||||
import net.minecraft.network.packet.Packet3Chat;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
|
@ -1028,6 +1029,34 @@ public final class MekanismUtils
|
|||
return false;
|
||||
}
|
||||
|
||||
public static MovingObjectPosition rayTrace(World world, EntityPlayer player)
|
||||
{
|
||||
double reach = Mekanism.proxy.getReach(player);
|
||||
|
||||
Vec3 headVec = getHeadVec(player);
|
||||
Vec3 lookVec = player.getLook(1);
|
||||
Vec3 endVec = headVec.addVector(lookVec.xCoord * reach, lookVec.yCoord * reach, lookVec.zCoord * reach);
|
||||
|
||||
return world.rayTraceBlocks_do_do(headVec, endVec, true, false);
|
||||
}
|
||||
|
||||
public static Vec3 getHeadVec(EntityPlayer player)
|
||||
{
|
||||
Vec3 vec = Vec3.createVectorHelper(player.posX, player.posY, player.posZ);
|
||||
|
||||
if(!player.worldObj.isRemote)
|
||||
{
|
||||
vec.yCoord+=player.getEyeHeight();
|
||||
|
||||
if(player instanceof EntityPlayerMP && player.isSneaking())
|
||||
{
|
||||
vec.yCoord-=0.08;
|
||||
}
|
||||
}
|
||||
|
||||
return vec;
|
||||
}
|
||||
|
||||
public static boolean useBuildcraft()
|
||||
{
|
||||
return Mekanism.hooks.BuildCraftLoaded || Mekanism.forceBuildcraft;
|
||||
|
|
|
@ -55,6 +55,7 @@ tile.MachineBlock.ElectricPump.name=Electric Pump
|
|||
tile.MachineBlock.ElectricChest.name=Electric Chest
|
||||
tile.MachineBlock.Chargepad.name=Chargepad
|
||||
tile.MachineBlock.LogisticalSorter.name=Logistical Sorter
|
||||
tile.MachineBlock.DigitalMiner.name=Digital Miner
|
||||
|
||||
//Ore Block
|
||||
tile.OreBlock.OsmiumOre.name=Osmium Ore
|
||||
|
|
Loading…
Reference in a new issue