Fixed transporter item rendering, fixed WAILA display bug. Dispensers now eject balloon entities!
This commit is contained in:
parent
0528f1aace
commit
ead4af2f78
7 changed files with 60 additions and 3 deletions
|
@ -26,6 +26,13 @@ public class Pos3D
|
|||
yPos = y;
|
||||
zPos = z;
|
||||
}
|
||||
|
||||
public Pos3D(Coord4D coord)
|
||||
{
|
||||
xPos = coord.xCoord;
|
||||
yPos = coord.yCoord;
|
||||
zPos = coord.zCoord;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a Pos3D with an entity's posX, posY, and posZ values.
|
||||
|
|
|
@ -57,6 +57,7 @@ public abstract class GuiGauge<T> extends GuiElement
|
|||
{
|
||||
if(getScaledLevel() == 0 || getIcon() == null)
|
||||
{
|
||||
guiObj.drawTexturedRect(guiWidth + xLocation, guiHeight + yLocation, width, 0, width, height);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -7,14 +7,18 @@ import mekanism.api.EnumColor;
|
|||
import mekanism.api.Pos3D;
|
||||
import mekanism.common.entity.EntityBalloon;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import net.minecraft.block.BlockDispenser;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.dispenser.BehaviorDefaultDispenseItem;
|
||||
import net.minecraft.dispenser.IBlockSource;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
|
@ -24,6 +28,7 @@ public class ItemBalloon extends ItemMekanism
|
|||
{
|
||||
super();
|
||||
setHasSubtypes(true);
|
||||
BlockDispenser.dispenseBehaviorRegistry.putObject(this, new DispenserBehavior());
|
||||
}
|
||||
|
||||
public EnumColor getColor(ItemStack stack)
|
||||
|
@ -155,4 +160,46 @@ public class ItemBalloon extends ItemMekanism
|
|||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerIcons(IIconRegister register) {}
|
||||
|
||||
public class DispenserBehavior extends BehaviorDefaultDispenseItem
|
||||
{
|
||||
@Override
|
||||
public ItemStack dispenseStack(IBlockSource source, ItemStack stack)
|
||||
{
|
||||
Coord4D coord = new Coord4D(source.getXInt(), source.getYInt(), source.getZInt(), source.getWorld().provider.dimensionId);
|
||||
ForgeDirection side = ForgeDirection.getOrientation(BlockDispenser.func_149937_b(source.getBlockMetadata()).ordinal());
|
||||
|
||||
Pos3D pos = new Pos3D(coord);
|
||||
|
||||
switch(side)
|
||||
{
|
||||
case DOWN:
|
||||
pos.translate(0, -2.5, 0);
|
||||
break;
|
||||
case UP:
|
||||
pos.translate(0, 0, 0);
|
||||
break;
|
||||
case NORTH:
|
||||
pos.translate(0, -1, -0.5);
|
||||
break;
|
||||
case SOUTH:
|
||||
pos.translate(0, -1, 0.5);
|
||||
break;
|
||||
case WEST:
|
||||
pos.translate(-0.5, -1, 0);
|
||||
break;
|
||||
case EAST:
|
||||
pos.translate(0.5, -1, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
if(!source.getWorld().isRemote)
|
||||
{
|
||||
source.getWorld().spawnEntityInWorld(new EntityBalloon(source.getWorld(), pos.xPos, pos.yPos, pos.zPos, getColor(stack)));
|
||||
}
|
||||
|
||||
stack.stackSize--;
|
||||
return stack;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -82,7 +82,7 @@ public class PartLogisticalTransporter extends PartSidedPipe implements ILogisti
|
|||
@SideOnly(Side.CLIENT)
|
||||
public void renderDynamic(Vector3 pos, float f, int pass)
|
||||
{
|
||||
if(pass == 1)
|
||||
if(pass == 0)
|
||||
{
|
||||
RenderPartTransmitter.getInstance().renderContents(this, f, pos);
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@ public class PartMechanicalPipe extends PartTransmitter<FluidNetwork> implements
|
|||
|
||||
public PartMechanicalPipe(Tier.PipeTier pipeTier)
|
||||
{
|
||||
this.tier = pipeTier;
|
||||
tier = pipeTier;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -176,7 +176,7 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
|
|||
Block block = coord.getBlock(worldObj);
|
||||
int meta = coord.getMetadata(worldObj);
|
||||
|
||||
if(block == Blocks.air)
|
||||
if(block == null || coord.isAirBlock(worldObj))
|
||||
{
|
||||
toRemove.add(index);
|
||||
next = index + 1;
|
||||
|
|
|
@ -49,6 +49,7 @@ public class TransporterStack
|
|||
}
|
||||
|
||||
data.add(progress);
|
||||
originalLocation.write(data);
|
||||
data.add(pathType.ordinal());
|
||||
|
||||
if(pathToTarget.indexOf(Coord4D.get(tileEntity.getTile())) > 0)
|
||||
|
@ -80,6 +81,7 @@ public class TransporterStack
|
|||
}
|
||||
|
||||
progress = dataStream.readInt();
|
||||
originalLocation = Coord4D.read(dataStream);
|
||||
pathType = Path.values()[dataStream.readInt()];
|
||||
|
||||
if(dataStream.readBoolean())
|
||||
|
|
Loading…
Add table
Reference in a new issue