Implement rift remover

This commit is contained in:
Runemoro 2017-12-26 04:39:43 -05:00
parent 07d6e48647
commit 7a65d60c4b
3 changed files with 56 additions and 1 deletions

View file

@ -42,6 +42,7 @@ public final class ModelManager {
register(ModItems.WORLD_THREAD); register(ModItems.WORLD_THREAD);
register(ModItems.RIFT_CONNECTION_TOOL); register(ModItems.RIFT_CONNECTION_TOOL);
register(ModItems.RIFT_BLADE); register(ModItems.RIFT_BLADE);
register(ModItems.RIFT_REMOVER);
} }
public static void registerModelVariants() { public static void registerModelVariants() {

View file

@ -0,0 +1,52 @@
package com.zixiken.dimdoors.shared.items;
import com.zixiken.dimdoors.DimDoors;
import com.zixiken.dimdoors.shared.RayTraceHelper;
import com.zixiken.dimdoors.shared.tileentities.TileEntityFloatingRift;
import ddutils.I18nUtils;
import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ActionResult;
import net.minecraft.util.EnumActionResult;
import net.minecraft.util.EnumHand;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.RayTraceResult;
import net.minecraft.world.World;
import java.util.List;
public class ItemRiftRemover extends Item {
public static final String ID = "rift_remover";
public ItemRiftRemover() {
setCreativeTab(DimDoors.DIM_DOORS_CREATIVE_TAB);
setUnlocalizedName(ID);
setRegistryName(new ResourceLocation(DimDoors.MODID, ID));
}
@Override
public void addInformation(ItemStack stack, World worldIn, List<String> tooltip, ITooltipFlag flagIn) {
I18nUtils.translateAndAdd("info.rift_remover", tooltip);
}
@Override
public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer playerIn, EnumHand handIn) {
ItemStack stack = playerIn.getHeldItem(handIn);
if (world.isRemote) {
return new ActionResult<>(EnumActionResult.FAIL, stack);
}
RayTraceResult hit = rayTrace(world, playerIn, true);
if (RayTraceHelper.isRift(hit, world)) {
TileEntityFloatingRift rift = (TileEntityFloatingRift) world.getTileEntity(hit.getBlockPos());
world.setBlockState(rift.getPos(), Blocks.AIR.getDefaultState());
stack.damageItem(1, playerIn);
return new ActionResult<>(EnumActionResult.SUCCESS, stack);
}
return new ActionResult<>(EnumActionResult.FAIL, stack);
}
}

View file

@ -26,6 +26,7 @@ public final class ModItems {
// Tools // Tools
public static final ItemRiftConnectionTool RIFT_CONNECTION_TOOL = new ItemRiftConnectionTool(); public static final ItemRiftConnectionTool RIFT_CONNECTION_TOOL = new ItemRiftConnectionTool();
public static final ItemRiftBlade RIFT_BLADE = new ItemRiftBlade(); public static final ItemRiftBlade RIFT_BLADE = new ItemRiftBlade();
public static final ItemRiftRemover RIFT_REMOVER = new ItemRiftRemover();
// ItemBlocks // ItemBlocks
public static final ItemFabric FABRIC = new ItemFabric(); public static final ItemFabric FABRIC = new ItemFabric();
@ -44,7 +45,8 @@ public final class ModItems {
UNSTABLE_DIMENSIONAL_DOOR, UNSTABLE_DIMENSIONAL_DOOR,
WORLD_THREAD, WORLD_THREAD,
RIFT_CONNECTION_TOOL, RIFT_CONNECTION_TOOL,
RIFT_BLADE); RIFT_BLADE,
RIFT_REMOVER);
// ItemBlocks // ItemBlocks
event.getRegistry().registerAll( event.getRegistry().registerAll(