rift blade creates rifts, doors can teleport carts and items
Signed-off-by: StevenRS11 <stevenrs11@aol.com>
This commit is contained in:
105
StevenDimDoors/mod_pocketDim/RailTeleporter.java
Normal file
105
StevenDimDoors/mod_pocketDim/RailTeleporter.java
Normal file
@@ -0,0 +1,105 @@
|
||||
package StevenDimDoors.mod_pocketDim;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.item.EntityMinecart;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.Teleporter;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.WorldServer;
|
||||
|
||||
public class RailTeleporter extends Teleporter
|
||||
{
|
||||
int x,y,z;
|
||||
World world;
|
||||
LinkData sendingLink;
|
||||
|
||||
|
||||
public RailTeleporter(WorldServer par1WorldServer, LinkData link)
|
||||
|
||||
{
|
||||
|
||||
|
||||
super(par1WorldServer);
|
||||
this.x=link.destXCoord;
|
||||
this.y=link.destYCoord;
|
||||
this.z=link.destZCoord;
|
||||
this.sendingLink=link;
|
||||
world = par1WorldServer;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Create a new portal near an entity.
|
||||
*/
|
||||
@Override
|
||||
public void placeInPortal(Entity par1Entity, double par2, double par4, double par6, float par8)
|
||||
{
|
||||
|
||||
|
||||
int id;
|
||||
|
||||
|
||||
id=dimHelper.instance.getDestOrientation(sendingLink);
|
||||
//System.out.println("Teleporting with link oreintation "+id);
|
||||
|
||||
|
||||
par1Entity.rotationYaw=(id*90)+90;
|
||||
if(id==2||id==6)
|
||||
{
|
||||
|
||||
|
||||
this.setEntityPosition(par1Entity, x+2.5, y, z+.5 );
|
||||
|
||||
|
||||
}
|
||||
else if(id==3||id==7)
|
||||
{
|
||||
|
||||
this.setEntityPosition(par1Entity, x+.5, y, z+2.5 );
|
||||
|
||||
|
||||
}
|
||||
else if(id==0||id==4)
|
||||
{
|
||||
|
||||
this.setEntityPosition(par1Entity,x-1.5, y, z+.5);
|
||||
|
||||
}
|
||||
else if(id==1||id==5)
|
||||
{
|
||||
|
||||
this.setEntityPosition(par1Entity,x+.5, y, z-1.5);
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
this.setEntityPosition(par1Entity,x, y, z);
|
||||
|
||||
}
|
||||
|
||||
par1Entity.worldObj.updateEntityWithOptionalForce(par1Entity, false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public void setEntityPosition(Entity entity, double x, double y, double z)
|
||||
{
|
||||
entity.lastTickPosX = entity.prevPosX = entity.posX = x;
|
||||
entity.lastTickPosY = entity.prevPosY = entity.posY = y + (double)entity.yOffset;
|
||||
entity.lastTickPosZ = entity.prevPosZ = entity.posZ = z;
|
||||
entity.setPosition(x, y, z);
|
||||
}
|
||||
@Override
|
||||
public boolean func_85188_a(Entity par1Entity)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public void func_85189_a(long par1)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user