Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* BlockTeleport */
- package me.robert.teleport.blocks;
- import me.robert.teleport.Teleport;
- import me.robert.teleport.blocks.tileentities.TileEntityTeleport;
- import me.robert.teleport.init.ModItems;
- import net.minecraft.block.Block;
- import net.minecraft.block.material.Material;
- import net.minecraft.block.state.IBlockState;
- import net.minecraft.entity.Entity;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.item.Item;
- import net.minecraft.item.ItemStack;
- import net.minecraft.nbt.NBTTagCompound;
- import net.minecraft.tileentity.TileEntity;
- import net.minecraft.util.BlockPos;
- import net.minecraft.world.World;
- public class BlockTeleport extends Block {
- public BlockTeleport() {
- super(Material.rock);
- setCreativeTab(Teleport.tabTeleport);
- }
- @Override
- public void onLanded(World worldIn, Entity entityIn) {
- TileEntityTeleport tile = (TileEntityTeleport) worldIn.getTileEntity(entityIn.getPosition());
- if (tile != null) {
- int dim = tile.dim;
- int posX = tile.posX;
- int posY = tile.posY;
- int posZ = tile.posZ;
- entityIn.travelToDimension(dim);
- entityIn.setPositionAndUpdate(posX, posY, posZ);
- }
- }
- @Override
- public TileEntity createTileEntity(World world, IBlockState state) {
- return new TileEntityTeleport();
- }
- }
- /* TileEntityTeleport */
- package me.robert.teleport.blocks.tileentities;
- import net.minecraft.nbt.NBTTagCompound;
- import net.minecraft.tileentity.TileEntity;
- public class TileEntityTeleport extends TileEntity {
- public int dim;
- public int posX;
- public int posY;
- public int posZ;
- @Override
- public void writeToNBT(NBTTagCompound compound) {
- super.writeToNBT(compound);
- compound.setInteger("dim", dim);
- compound.setInteger("posX", posX);
- compound.setInteger("posY", posY);
- compound.setInteger("posZ", posZ);
- }
- @Override
- public void readFromNBT(NBTTagCompound compound) {
- super.readFromNBT(compound);
- compound.getInteger("dim");
- compound.getInteger("posX");
- compound.getInteger("posY");
- compound.getInteger("posZ");
- }
- }
- /* ItemCoordCache */
- package me.robert.teleport.items;
- import java.util.List;
- import org.lwjgl.input.Keyboard;
- import me.robert.teleport.blocks.tileentities.TileEntityTeleport;
- import me.robert.teleport.init.ModBlocks;
- import net.minecraft.client.gui.GuiScreen;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.item.Item;
- import net.minecraft.item.ItemStack;
- import net.minecraft.nbt.NBTTagCompound;
- import net.minecraft.util.BlockPos;
- import net.minecraft.util.ChatComponentText;
- import net.minecraft.util.EnumChatFormatting;
- import net.minecraft.util.EnumFacing;
- import net.minecraft.util.IChatComponent;
- import net.minecraft.world.World;
- import net.minecraft.world.WorldProvider;
- import net.minecraftforge.fml.relauncher.Side;
- import net.minecraftforge.fml.relauncher.SideOnly;
- public class ItemCoordCache extends Item {
- @Override
- public boolean onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ) {
- if (!playerIn.isSneaking()) {
- if (stack.getTagCompound() == null) {
- stack.setTagCompound(new NBTTagCompound());
- NBTTagCompound nbt = new NBTTagCompound();
- nbt.setInteger("dim", playerIn.dimension);
- nbt.setInteger("posX", pos.getX());
- nbt.setInteger("posY", pos.getY());
- nbt.setInteger("posZ", pos.getZ());
- stack.getTagCompound().setTag("coord", nbt);
- stack.setStackDisplayName(EnumChatFormatting.AQUA + "Coordanite Cache");
- } else {
- if (worldIn.getBlockState(pos).getBlock().equals(ModBlocks.block_teleport)) {
- TileEntityTeleport tile = (TileEntityTeleport) worldIn.getTileEntity(pos);
- NBTTagCompound nbt = stack.getTagCompound().getCompoundTag("coord");
- tile.dim = nbt.getInteger("dim");
- tile.posX = nbt.getInteger("posX");
- tile.posY = nbt.getInteger("posY");
- tile.posZ = nbt.getInteger("posZ");
- }
- }
- }
- return false;
- }
- @Override
- public ItemStack onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn) {
- if (playerIn.isSneaking()) {
- if (itemStackIn.getTagCompound() != null) {
- itemStackIn.getTagCompound().removeTag("coord");
- itemStackIn.clearCustomName();
- }
- }
- return itemStackIn;
- }
- @Override
- @SideOnly(Side.CLIENT)
- public void addInformation(ItemStack stack, EntityPlayer playerIn, List tooltip, boolean advanced) {
- if (stack.getTagCompound() != null) {
- if (stack.getTagCompound().hasKey("coord")) {
- NBTTagCompound nbt = (NBTTagCompound) stack.getTagCompound().getTag("coord");
- int dim = nbt.getInteger("dim");
- int posX = nbt.getInteger("posX");
- int posY = nbt.getInteger("posY");
- int posZ = nbt.getInteger("posZ");
- String aqua = EnumChatFormatting.AQUA + "";
- String purple = EnumChatFormatting.DARK_PURPLE + "";
- String dimName = WorldProvider.getProviderForDimension(dim).getDimensionName();
- if (GuiScreen.isShiftKeyDown()) {
- tooltip.add(aqua + "Dim: " + purple + dimName);
- tooltip.add(aqua + "X: " + purple + posX);
- tooltip.add(aqua + "Y: " + purple + posY);
- tooltip.add(aqua + "Z: " + purple + posZ);
- } else {
- tooltip.add(aqua + "Hold SHIFT for more information");
- }
- }
- }
- }
- @Override
- public boolean hasEffect(ItemStack stack) {
- if (stack.getTagCompound() != null) {
- return stack.getTagCompound().hasKey("coord");
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment