Skip to content

Commit 7a65d60

Browse files
committed
Implement rift remover
1 parent 07d6e48 commit 7a65d60

3 files changed

Lines changed: 56 additions & 1 deletion

File tree

src/main/java/com/zixiken/dimdoors/client/ModelManager.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public static void registerModels() {
4242
register(ModItems.WORLD_THREAD);
4343
register(ModItems.RIFT_CONNECTION_TOOL);
4444
register(ModItems.RIFT_BLADE);
45+
register(ModItems.RIFT_REMOVER);
4546
}
4647

4748
public static void registerModelVariants() {
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.zixiken.dimdoors.shared.items;
2+
3+
import com.zixiken.dimdoors.DimDoors;
4+
import com.zixiken.dimdoors.shared.RayTraceHelper;
5+
import com.zixiken.dimdoors.shared.tileentities.TileEntityFloatingRift;
6+
import ddutils.I18nUtils;
7+
import net.minecraft.client.util.ITooltipFlag;
8+
import net.minecraft.entity.player.EntityPlayer;
9+
import net.minecraft.init.Blocks;
10+
import net.minecraft.item.Item;
11+
import net.minecraft.item.ItemStack;
12+
import net.minecraft.util.ActionResult;
13+
import net.minecraft.util.EnumActionResult;
14+
import net.minecraft.util.EnumHand;
15+
import net.minecraft.util.ResourceLocation;
16+
import net.minecraft.util.math.RayTraceResult;
17+
import net.minecraft.world.World;
18+
19+
import java.util.List;
20+
21+
public class ItemRiftRemover extends Item {
22+
public static final String ID = "rift_remover";
23+
24+
public ItemRiftRemover() {
25+
setCreativeTab(DimDoors.DIM_DOORS_CREATIVE_TAB);
26+
setUnlocalizedName(ID);
27+
setRegistryName(new ResourceLocation(DimDoors.MODID, ID));
28+
}
29+
30+
@Override
31+
public void addInformation(ItemStack stack, World worldIn, List<String> tooltip, ITooltipFlag flagIn) {
32+
I18nUtils.translateAndAdd("info.rift_remover", tooltip);
33+
}
34+
35+
@Override
36+
public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer playerIn, EnumHand handIn) {
37+
ItemStack stack = playerIn.getHeldItem(handIn);
38+
39+
if (world.isRemote) {
40+
return new ActionResult<>(EnumActionResult.FAIL, stack);
41+
}
42+
RayTraceResult hit = rayTrace(world, playerIn, true);
43+
if (RayTraceHelper.isRift(hit, world)) {
44+
TileEntityFloatingRift rift = (TileEntityFloatingRift) world.getTileEntity(hit.getBlockPos());
45+
world.setBlockState(rift.getPos(), Blocks.AIR.getDefaultState());
46+
47+
stack.damageItem(1, playerIn);
48+
return new ActionResult<>(EnumActionResult.SUCCESS, stack);
49+
}
50+
return new ActionResult<>(EnumActionResult.FAIL, stack);
51+
}
52+
}

src/main/java/com/zixiken/dimdoors/shared/items/ModItems.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public final class ModItems {
2626
// Tools
2727
public static final ItemRiftConnectionTool RIFT_CONNECTION_TOOL = new ItemRiftConnectionTool();
2828
public static final ItemRiftBlade RIFT_BLADE = new ItemRiftBlade();
29+
public static final ItemRiftRemover RIFT_REMOVER = new ItemRiftRemover();
2930

3031
// ItemBlocks
3132
public static final ItemFabric FABRIC = new ItemFabric();
@@ -44,7 +45,8 @@ public static void registerItems(RegistryEvent.Register<Item> event) {
4445
UNSTABLE_DIMENSIONAL_DOOR,
4546
WORLD_THREAD,
4647
RIFT_CONNECTION_TOOL,
47-
RIFT_BLADE);
48+
RIFT_BLADE,
49+
RIFT_REMOVER);
4850

4951
// ItemBlocks
5052
event.getRegistry().registerAll(

0 commit comments

Comments
 (0)