i dont think i posted enough of the code. hehe here is the full file. also as of right now the block faces whereever it damn well pleases. If i mess with a few of the paramaters in the last block of code then it changes on me again.
package fergy.apocolypse.block;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import fergy.apocolypse.common.apocolypse;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Icon;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
public class BlockPurifier extends Block {
@SideOnly(Side.CLIENT)
private Icon grateTexture;
@SideOnly(Side.CLIENT)
private Icon sideTexture;
public BlockPurifier(int par1, Material par2Material) {
super(par1, Material.iron);
this.setCreativeTab(apocolypse.TabApocolypse);
}
public void registerIcons(IconRegister iconRegister) {
grateTexture = iconRegister.registerIcon("apocolypse:purifiergrate");
sideTexture = iconRegister.registerIcon("apocolypse:purifiersides");
}
@SideOnly(Side.CLIENT)
public Icon getIcon(int side, int meta) {
if (side != meta ) {
return this.sideTexture;
}
return this.grateTexture;
}
@Override
public void onBlockAdded(World world, int x, int y, int z) {
super.onBlockAdded(world, x, y, z);
setDefaultDirection(world, x, y, z);
}
private void setDefaultDirection(World world, int x, int y, int z){
if(!world.isRemote) {
int zNeg = world.getBlockId(x, y, z - 1);
int zPos = world.getBlockId(x, y, z + 1);
int xNeg = world.getBlockId(x - 1, y, z);
int xPos = world.getBlockId(x + 1, y, z);
int yNeg = world.getBlockId(x, y - 1, z);
int yPos = world.getBlockId(x, y + 1, z);
byte meta = 3;
if(Block.opaqueCubeLookup[xNeg] && !Block.opaqueCubeLookup[xPos]) {
meta = 5;
}
if(Block.opaqueCubeLookup[xPos] && !Block.opaqueCubeLookup[xNeg]) {
meta = 4;
}
if(Block.opaqueCubeLookup[zNeg] && !Block.opaqueCubeLookup[zPos]) {
meta = 3;
}
if(Block.opaqueCubeLookup[zPos] && !Block.opaqueCubeLookup[zNeg]) {
meta = 2;
}
if(Block.opaqueCubeLookup[yNeg] && !Block.opaqueCubeLookup[yPos]) {
meta = 0;
}
if(Block.opaqueCubeLookup[yPos] && !Block.opaqueCubeLookup[yNeg]) {
meta = 1;
}
world.setBlockMetadataWithNotify(x, y, z, meta, 2);
}
}
@Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entity, ItemStack itemstack) {
int rotation = MathHelper.floor_double((double)(entity.rotationYaw * 4F / 360F) * (double)(entity.rotationPitch * 1F / 180F)) & 3;
world.setBlockMetadataWithNotify(x, y, z, rotation, 2);
}
}
How does minecraft control pitch? Does looking down start at 0? then straight ahead 90 degrees?