Implement rift remover
This commit is contained in:
parent
07d6e48647
commit
7a65d60c4b
3 changed files with 56 additions and 1 deletions
src/main/java/com/zixiken/dimdoors
|
@ -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() {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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(
|
||||
|
|
Loading…
Add table
Reference in a new issue