dim doors place on rifts if you click the rifts
they dont close with items Signed-off-by: StevenRS11 <stevenrs11@aol.com>
This commit is contained in:
@@ -7,8 +7,8 @@ import net.minecraft.block.BlockContainer;
|
|||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.client.renderer.texture.IconRegister;
|
import net.minecraft.client.renderer.texture.IconRegister;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
|
import net.minecraft.entity.EntityLiving;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.entity.player.EntityPlayerMP;
|
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
@@ -41,6 +41,7 @@ public class dimDoor extends BlockContainer
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//spawns the rift attatched to the block. Doesnt work in creative mode for some reason
|
//spawns the rift attatched to the block. Doesnt work in creative mode for some reason
|
||||||
//TODO make work in creative
|
//TODO make work in creative
|
||||||
public void onBlockDestroyedByPlayer(World par1World, int par2, int par3, int par4, int par5)
|
public void onBlockDestroyedByPlayer(World par1World, int par2, int par3, int par4, int par5)
|
||||||
@@ -105,13 +106,20 @@ public class dimDoor extends BlockContainer
|
|||||||
|
|
||||||
|
|
||||||
dimHelper.instance.teleportToPocket(par1World, linkData, par5Entity);
|
dimHelper.instance.teleportToPocket(par1World, linkData, par5Entity);
|
||||||
|
|
||||||
|
if(par5Entity instanceof EntityLiving)
|
||||||
|
{
|
||||||
this.onPoweredBlockChange(par1World, par2, par3, par4, false);
|
this.onPoweredBlockChange(par1World, par2, par3, par4, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (!(par5Entity instanceof EntityPlayer)&&num>3)
|
else if (!(par5Entity instanceof EntityPlayer)&&num>3)
|
||||||
|
{
|
||||||
|
if(par5Entity instanceof EntityLiving)
|
||||||
{
|
{
|
||||||
this.onPoweredBlockChange(par1World, par2, par3, par4, false);
|
this.onPoweredBlockChange(par1World, par2, par3, par4, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
dimHelper.instance.teleportToPocket(par1World, linkData, par5Entity);
|
dimHelper.instance.teleportToPocket(par1World, linkData, par5Entity);
|
||||||
@@ -138,7 +146,7 @@ public class dimDoor extends BlockContainer
|
|||||||
{
|
{
|
||||||
var12=dimHelper.instance.flipDoorMetadata(var12);
|
var12=dimHelper.instance.flipDoorMetadata(var12);
|
||||||
}
|
}
|
||||||
par1World.setBlockMetadataWithNotify(par2, par3-1, par4, var12,1);
|
par1World.setBlockMetadataWithNotify(par2, par3-1, par4, var12,2);
|
||||||
if( dimHelper.instance.getLinkDataFromCoords(par2, par3, par4, par1World)!=null)
|
if( dimHelper.instance.getLinkDataFromCoords(par2, par3, par4, par1World)!=null)
|
||||||
{
|
{
|
||||||
dimHelper.instance.getLinkDataFromCoords(par2, par3, par4, par1World).linkOrientation= par1World.getBlockMetadata(par2, par3-1, par4);
|
dimHelper.instance.getLinkDataFromCoords(par2, par3, par4, par1World).linkOrientation= par1World.getBlockMetadata(par2, par3-1, par4);
|
||||||
@@ -152,7 +160,7 @@ public class dimDoor extends BlockContainer
|
|||||||
{
|
{
|
||||||
var12=dimHelper.instance.flipDoorMetadata(var12);
|
var12=dimHelper.instance.flipDoorMetadata(var12);
|
||||||
}
|
}
|
||||||
par1World.setBlockMetadataWithNotify(par2, par3, par4, var12,1);
|
par1World.setBlockMetadataWithNotify(par2, par3, par4, var12,2);
|
||||||
if( dimHelper.instance.getLinkDataFromCoords(par2, par3+1, par4, par1World)!=null)
|
if( dimHelper.instance.getLinkDataFromCoords(par2, par3+1, par4, par1World)!=null)
|
||||||
{
|
{
|
||||||
dimHelper.instance.getLinkDataFromCoords(par2, par3+1, par4, par1World).linkOrientation= par1World.getBlockMetadata(par2, par3, par4);
|
dimHelper.instance.getLinkDataFromCoords(par2, par3+1, par4, par1World).linkOrientation= par1World.getBlockMetadata(par2, par3, par4);
|
||||||
@@ -183,12 +191,12 @@ public class dimDoor extends BlockContainer
|
|||||||
|
|
||||||
if ((var10 & 8) == 0)
|
if ((var10 & 8) == 0)
|
||||||
{
|
{
|
||||||
par1World.setBlockMetadataWithNotify(par2, par3, par4, var11,1);
|
par1World.setBlockMetadataWithNotify(par2, par3, par4, var11,2);
|
||||||
par1World.markBlockRangeForRenderUpdate(par2, par3, par4, par2, par3, par4);
|
par1World.markBlockRangeForRenderUpdate(par2, par3, par4, par2, par3, par4);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
par1World.setBlockMetadataWithNotify(par2, par3 - 1, par4, var11,1);
|
par1World.setBlockMetadataWithNotify(par2, par3 - 1, par4, var11,2);
|
||||||
par1World.markBlockRangeForRenderUpdate(par2, par3 - 1, par4, par2, par3, par4);
|
par1World.markBlockRangeForRenderUpdate(par2, par3 - 1, par4, par2, par3, par4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -349,7 +349,7 @@ public class dimHelper extends DimensionManager
|
|||||||
|
|
||||||
|
|
||||||
this.teleportEntity(world, entity, linkData);
|
this.teleportEntity(world, entity, linkData);
|
||||||
if(entity instanceof EntityPlayerMP)
|
if(entity instanceof EntityPlayerMP&&world.provider.dimensionId!=linkData.destDimID)
|
||||||
{
|
{
|
||||||
GameRegistry.onPlayerChangedDimension((EntityPlayer)entity);
|
GameRegistry.onPlayerChangedDimension((EntityPlayer)entity);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,10 +6,15 @@ import net.minecraft.block.Block;
|
|||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.client.renderer.texture.IconRegister;
|
import net.minecraft.client.renderer.texture.IconRegister;
|
||||||
import net.minecraft.creativetab.CreativeTabs;
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
|
import net.minecraft.entity.EntityLiving;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.entity.player.EntityPlayerMP;
|
||||||
import net.minecraft.item.ItemDoor;
|
import net.minecraft.item.ItemDoor;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
import net.minecraft.util.MathHelper;
|
import net.minecraft.util.MathHelper;
|
||||||
|
import net.minecraft.util.MovingObjectPosition;
|
||||||
|
import net.minecraft.util.Vec3;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class itemDimDoor extends ItemDoor
|
public class itemDimDoor extends ItemDoor
|
||||||
@@ -96,6 +101,91 @@ public class itemDimDoor extends ItemDoor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MovingObjectPosition getMovingObjectPositionFromPlayer(World par1World, EntityPlayer par2EntityPlayer, boolean par3)
|
||||||
|
{
|
||||||
|
float var4 = 1.0F;
|
||||||
|
float var5 = par2EntityPlayer.prevRotationPitch + (par2EntityPlayer.rotationPitch - par2EntityPlayer.prevRotationPitch) * var4;
|
||||||
|
float var6 = par2EntityPlayer.prevRotationYaw + (par2EntityPlayer.rotationYaw - par2EntityPlayer.prevRotationYaw) * var4;
|
||||||
|
double var7 = par2EntityPlayer.prevPosX + (par2EntityPlayer.posX - par2EntityPlayer.prevPosX) * (double)var4;
|
||||||
|
double var9 = par2EntityPlayer.prevPosY + (par2EntityPlayer.posY - par2EntityPlayer.prevPosY) * (double)var4 + 1.62D - (double)par2EntityPlayer.yOffset;
|
||||||
|
double var11 = par2EntityPlayer.prevPosZ + (par2EntityPlayer.posZ - par2EntityPlayer.prevPosZ) * (double)var4;
|
||||||
|
Vec3 var13 = par1World.getWorldVec3Pool().getVecFromPool(var7, var9, var11);
|
||||||
|
float var14 = MathHelper.cos(-var6 * 0.017453292F - (float)Math.PI);
|
||||||
|
float var15 = MathHelper.sin(-var6 * 0.017453292F - (float)Math.PI);
|
||||||
|
float var16 = -MathHelper.cos(-var5 * 0.017453292F);
|
||||||
|
float var17 = MathHelper.sin(-var5 * 0.017453292F);
|
||||||
|
float var18 = var15 * var16;
|
||||||
|
float var20 = var14 * var16;
|
||||||
|
double var21 = 5.0D;
|
||||||
|
if (par2EntityPlayer instanceof EntityPlayerMP)
|
||||||
|
{
|
||||||
|
var21 = 4;
|
||||||
|
}
|
||||||
|
Vec3 var23 = var13.addVector((double)var18 * var21, (double)var17 * var21, (double)var20 * var21);
|
||||||
|
return par1World.rayTraceBlocks_do_do(var13, var23, true, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
|
||||||
|
{
|
||||||
|
Boolean didFindThing=false;
|
||||||
|
MovingObjectPosition hit = this.getMovingObjectPositionFromPlayer(par3EntityPlayer.worldObj, par3EntityPlayer, false );
|
||||||
|
if(hit!=null&&!par2World.isRemote)
|
||||||
|
{
|
||||||
|
if(par2World.getBlockId(hit.blockX, hit.blockY, hit.blockZ)==mod_pocketDim.blockRiftID)
|
||||||
|
{
|
||||||
|
LinkData link = dimHelper.instance.getLinkDataFromCoords(hit.blockX, hit.blockY, hit.blockZ, par2World);
|
||||||
|
if(link!=null)
|
||||||
|
{
|
||||||
|
Block var11;
|
||||||
|
if(par1ItemStack.getItem() instanceof itemExitDoor )
|
||||||
|
{
|
||||||
|
var11 = mod_pocketDim.ExitDoor;
|
||||||
|
}
|
||||||
|
|
||||||
|
else if(par1ItemStack.getItem() instanceof ItemChaosDoor )
|
||||||
|
{
|
||||||
|
var11 = mod_pocketDim.chaosDoor;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var11 = mod_pocketDim.dimDoor;
|
||||||
|
}
|
||||||
|
|
||||||
|
int par4 = hit.blockX;
|
||||||
|
int par5 = hit.blockY-1;
|
||||||
|
int par6 = hit.blockZ;
|
||||||
|
int par7 = 0 ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (par3EntityPlayer.canPlayerEdit(par4, par5, par6, par7, par1ItemStack) && par3EntityPlayer.canPlayerEdit(par4, par5 + 1, par6, par7, par1ItemStack)&&!par2World.isRemote)
|
||||||
|
{
|
||||||
|
int var12 = MathHelper.floor_double((double)((par3EntityPlayer.rotationYaw + 180.0F) * 4.0F / 360.0F) - 0.5D) & 3;
|
||||||
|
|
||||||
|
if (!this.canPlace(par2World, par4, par5, par6, var12)||dimHelper.instance.getLinkDataFromCoords(par4, par5+1, par6, par2World)==null)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
placeDoorBlock(par2World, par4, par5, par6, var12, var11);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--par1ItemStack.stackSize;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return par1ItemStack;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public boolean canPlace(World world,int i, int j, int k, int p)
|
public boolean canPlace(World world,int i, int j, int k, int p)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user