From 7a65d60c4b4b11783af677f03e51d2a4e48b1b2a Mon Sep 17 00:00:00 2001 From: Runemoro Date: Tue, 26 Dec 2017 04:39:43 -0500 Subject: [PATCH] Implement rift remover --- .../zixiken/dimdoors/client/ModelManager.java | 1 + .../shared/items/ItemRiftRemover.java | 52 +++++++++++++++++++ .../dimdoors/shared/items/ModItems.java | 4 +- 3 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/zixiken/dimdoors/shared/items/ItemRiftRemover.java diff --git a/src/main/java/com/zixiken/dimdoors/client/ModelManager.java b/src/main/java/com/zixiken/dimdoors/client/ModelManager.java index d2e614d2..df365ec9 100644 --- a/src/main/java/com/zixiken/dimdoors/client/ModelManager.java +++ b/src/main/java/com/zixiken/dimdoors/client/ModelManager.java @@ -42,6 +42,7 @@ public final class ModelManager { register(ModItems.WORLD_THREAD); register(ModItems.RIFT_CONNECTION_TOOL); register(ModItems.RIFT_BLADE); + register(ModItems.RIFT_REMOVER); } public static void registerModelVariants() { diff --git a/src/main/java/com/zixiken/dimdoors/shared/items/ItemRiftRemover.java b/src/main/java/com/zixiken/dimdoors/shared/items/ItemRiftRemover.java new file mode 100644 index 00000000..486427b2 --- /dev/null +++ b/src/main/java/com/zixiken/dimdoors/shared/items/ItemRiftRemover.java @@ -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 tooltip, ITooltipFlag flagIn) { + I18nUtils.translateAndAdd("info.rift_remover", tooltip); + } + + @Override + public ActionResult 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); + } +} diff --git a/src/main/java/com/zixiken/dimdoors/shared/items/ModItems.java b/src/main/java/com/zixiken/dimdoors/shared/items/ModItems.java index fe1b70ae..e70c69fe 100644 --- a/src/main/java/com/zixiken/dimdoors/shared/items/ModItems.java +++ b/src/main/java/com/zixiken/dimdoors/shared/items/ModItems.java @@ -26,6 +26,7 @@ public final class ModItems { // Tools public static final ItemRiftConnectionTool RIFT_CONNECTION_TOOL = new ItemRiftConnectionTool(); public static final ItemRiftBlade RIFT_BLADE = new ItemRiftBlade(); + public static final ItemRiftRemover RIFT_REMOVER = new ItemRiftRemover(); // ItemBlocks public static final ItemFabric FABRIC = new ItemFabric(); @@ -44,7 +45,8 @@ public final class ModItems { UNSTABLE_DIMENSIONAL_DOOR, WORLD_THREAD, RIFT_CONNECTION_TOOL, - RIFT_BLADE); + RIFT_BLADE, + RIFT_REMOVER); // ItemBlocks event.getRegistry().registerAll(