From e027947fb0dc798a51deea2b347c36daf3a518d2 Mon Sep 17 00:00:00 2001 From: Waterpicker Date: Sat, 21 Jan 2017 06:54:20 -0600 Subject: [PATCH] Big batch of unfinished items. --- .../java/com/zixiken/dimdoors/DimDoors.java | 13 ++ .../zixiken/dimdoors/items/ItemDimDoor.java | 2 + .../dimdoors/items/ItemDimDoorGold.java | 2 + .../dimdoors/items/ItemDimDoorPersonal.java | 2 + .../dimdoors/items/ItemDimDoorUnstable.java | 3 +- .../dimdoors/items/ItemDimDoorWarp.java | 2 + .../zixiken/dimdoors/items/ItemDoorBase.java | 10 +- .../dimdoors/items/ItemLinkSignature.java | 38 ++++++ .../zixiken/dimdoors/items/ItemRiftBlade.java | 112 ++++++++++++++++++ .../dimdoors/items/ItemRiftRemover.java | 4 + .../dimdoors/items/ItemStablizedRiftSig.java | 4 + .../models/item/itemLinkSignature.json | 6 + .../dimdoors/models/item/itemRiftRemover.json | 6 + .../models/item/itemStabilizedRiftSig.json | 6 + 14 files changed, 200 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/zixiken/dimdoors/items/ItemLinkSignature.java create mode 100644 src/main/java/com/zixiken/dimdoors/items/ItemRiftRemover.java create mode 100644 src/main/java/com/zixiken/dimdoors/items/ItemStablizedRiftSig.java create mode 100644 src/main/resources/assets/dimdoors/models/item/itemLinkSignature.json create mode 100644 src/main/resources/assets/dimdoors/models/item/itemRiftRemover.json create mode 100644 src/main/resources/assets/dimdoors/models/item/itemStabilizedRiftSig.json diff --git a/src/main/java/com/zixiken/dimdoors/DimDoors.java b/src/main/java/com/zixiken/dimdoors/DimDoors.java index 11ce748d..e43c74ef 100644 --- a/src/main/java/com/zixiken/dimdoors/DimDoors.java +++ b/src/main/java/com/zixiken/dimdoors/DimDoors.java @@ -8,6 +8,7 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.util.text.TextComponentString; +import net.minecraft.util.text.translation.I18n; import net.minecraft.world.World; import net.minecraftforge.fml.common.FMLLog; import net.minecraftforge.fml.common.Mod; @@ -16,6 +17,8 @@ import net.minecraftforge.fml.common.event.*; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; +import java.util.List; + @Mod(modid = DimDoors.MODID, name = "Dimensional Doors", version = DimDoors.VERSION) public class DimDoors { @@ -75,4 +78,14 @@ public class DimDoors { public static void log(Class classFiredFrom, String text) { FMLLog.info("[DimDoors] " + text + " (" + classFiredFrom.toString() + " )", 0); } + + public static void translateAndAdd(String key, List list) { + for (int i = 0; i < 10; i++) { + if(I18n.canTranslate(key+Integer.toString(i))) { + String line = I18n.translateToLocal(key + Integer.toString(i)); + list.add(line); + } else + break; + } + } } diff --git a/src/main/java/com/zixiken/dimdoors/items/ItemDimDoor.java b/src/main/java/com/zixiken/dimdoors/items/ItemDimDoor.java index ebb8696a..37e06feb 100644 --- a/src/main/java/com/zixiken/dimdoors/items/ItemDimDoor.java +++ b/src/main/java/com/zixiken/dimdoors/items/ItemDimDoor.java @@ -9,6 +9,8 @@ import net.minecraft.init.Items; import net.minecraft.item.ItemDoor; import net.minecraft.item.ItemStack; +import static com.zixiken.dimdoors.DimDoors.translateAndAdd; + public class ItemDimDoor extends ItemDoorBase { public static final String ID = "itemDimDoor"; diff --git a/src/main/java/com/zixiken/dimdoors/items/ItemDimDoorGold.java b/src/main/java/com/zixiken/dimdoors/items/ItemDimDoorGold.java index 5db185b2..7643e5d6 100644 --- a/src/main/java/com/zixiken/dimdoors/items/ItemDimDoorGold.java +++ b/src/main/java/com/zixiken/dimdoors/items/ItemDimDoorGold.java @@ -7,6 +7,8 @@ import com.zixiken.dimdoors.blocks.ModBlocks; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import static com.zixiken.dimdoors.DimDoors.translateAndAdd; + public class ItemDimDoorGold extends ItemDoorBase { public static final String ID = "itemDimDoorGold"; diff --git a/src/main/java/com/zixiken/dimdoors/items/ItemDimDoorPersonal.java b/src/main/java/com/zixiken/dimdoors/items/ItemDimDoorPersonal.java index 3e420703..e3445213 100644 --- a/src/main/java/com/zixiken/dimdoors/items/ItemDimDoorPersonal.java +++ b/src/main/java/com/zixiken/dimdoors/items/ItemDimDoorPersonal.java @@ -7,6 +7,8 @@ import com.zixiken.dimdoors.blocks.ModBlocks; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import static com.zixiken.dimdoors.DimDoors.translateAndAdd; + public class ItemDimDoorPersonal extends ItemDoorBase { public static final String ID = "itemDimDoorQuartz"; diff --git a/src/main/java/com/zixiken/dimdoors/items/ItemDimDoorUnstable.java b/src/main/java/com/zixiken/dimdoors/items/ItemDimDoorUnstable.java index 635c8d4b..2faf2282 100644 --- a/src/main/java/com/zixiken/dimdoors/items/ItemDimDoorUnstable.java +++ b/src/main/java/com/zixiken/dimdoors/items/ItemDimDoorUnstable.java @@ -6,6 +6,7 @@ import com.zixiken.dimdoors.blocks.BlockDimDoorBase; import com.zixiken.dimdoors.blocks.ModBlocks; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.util.text.translation.I18n; public class ItemDimDoorUnstable extends ItemDoorBase { @@ -19,7 +20,7 @@ public class ItemDimDoorUnstable extends ItemDoorBase { @Override public void addInformation(ItemStack stack, EntityPlayer playerIn, List tooltip, boolean advanced) { - //tooltip.add(StatCollector.translateToLocal("info.chaosDoor")); + tooltip.add(I18n.translateToLocal("info.chaosDoor")); } @Override diff --git a/src/main/java/com/zixiken/dimdoors/items/ItemDimDoorWarp.java b/src/main/java/com/zixiken/dimdoors/items/ItemDimDoorWarp.java index 68e26539..413097c4 100644 --- a/src/main/java/com/zixiken/dimdoors/items/ItemDimDoorWarp.java +++ b/src/main/java/com/zixiken/dimdoors/items/ItemDimDoorWarp.java @@ -10,6 +10,8 @@ import net.minecraft.init.Items; import net.minecraft.item.ItemDoor; import net.minecraft.item.ItemStack; +import static com.zixiken.dimdoors.DimDoors.translateAndAdd; + public class ItemDimDoorWarp extends ItemDoorBase { public static final String ID = "itemDimDoorWarp"; diff --git a/src/main/java/com/zixiken/dimdoors/items/ItemDoorBase.java b/src/main/java/com/zixiken/dimdoors/items/ItemDoorBase.java index 02190d00..523c7847 100644 --- a/src/main/java/com/zixiken/dimdoors/items/ItemDoorBase.java +++ b/src/main/java/com/zixiken/dimdoors/items/ItemDoorBase.java @@ -21,6 +21,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.RayTraceResult; import net.minecraft.util.math.Vec3d; +import net.minecraft.util.text.translation.I18n; import net.minecraft.world.World; import net.minecraft.block.SoundType; import static net.minecraft.item.ItemDoor.placeDoor; @@ -170,13 +171,4 @@ public abstract class ItemDoorBase extends ItemDoor { Vec3d vec31 = vec3.addVector((double) f6 * d3, (double) f5 * d3, (double) f7 * d3); return world.rayTraceBlocks(vec3, vec31, useLiquids, !useLiquids, false); } - - public void translateAndAdd(String key, List list) { - for (int i = 0; i < 10; i++) { - /*if(StatCollector.canTranslate(key+Integer.toString(i))) { - String line = StatCollector.translateToLocal(key + Integer.toString(i)); - list.add(line); - } else */ break; - } - } } diff --git a/src/main/java/com/zixiken/dimdoors/items/ItemLinkSignature.java b/src/main/java/com/zixiken/dimdoors/items/ItemLinkSignature.java new file mode 100644 index 00000000..dc34f6b3 --- /dev/null +++ b/src/main/java/com/zixiken/dimdoors/items/ItemLinkSignature.java @@ -0,0 +1,38 @@ +package com.zixiken.dimdoors.items; + +import com.flowpowered.math.vector.Vector3d; +import com.zixiken.dimdoors.DimDoors; +import com.zixiken.dimdoors.blocks.ModBlocks; +import com.zixiken.dimdoors.tileentities.TileEntityRift; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +import java.util.List; + +import static com.zixiken.dimdoors.DimDoors.translateAndAdd; + +public class ItemLinkSignature extends Item { + public static final String ID = "itemLinkSignature"; + + public ItemLinkSignature() { + super(); + setCreativeTab(DimDoors.dimDoorsCreativeTab); + setUnlocalizedName(ID); + setRegistryName(ID); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean advanced) { + translateAndAdd("info.riftSignature.unbound", list); + } +} diff --git a/src/main/java/com/zixiken/dimdoors/items/ItemRiftBlade.java b/src/main/java/com/zixiken/dimdoors/items/ItemRiftBlade.java index 614514b9..890fb05a 100644 --- a/src/main/java/com/zixiken/dimdoors/items/ItemRiftBlade.java +++ b/src/main/java/com/zixiken/dimdoors/items/ItemRiftBlade.java @@ -1,7 +1,24 @@ package com.zixiken.dimdoors.items; import com.zixiken.dimdoors.DimDoors; +import com.zixiken.dimdoors.blocks.ModBlocks; +import com.zixiken.dimdoors.tileentities.TileEntityRift; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ActionResult; +import net.minecraft.util.EnumActionResult; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; +import net.minecraft.util.math.*; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +import java.util.List; /** * Created by Jared Johnson on 1/20/2017. @@ -15,4 +32,99 @@ public class ItemRiftBlade extends ItemSword { setUnlocalizedName(ID); setRegistryName(ID); } + + @Override + @SideOnly(Side.CLIENT) + public boolean hasEffect(ItemStack par1ItemStack) { + return true; + } + + private boolean teleportToEntity(ItemStack item, Entity par1Entity, EntityPlayer holder) { + Vec3d var2 = new Vec3d(holder.posX - par1Entity.posX, holder.getEntityBoundingBox().minY + holder.height / 2.0F - par1Entity.posY + par1Entity.getEyeHeight(), holder.posZ - par1Entity.posZ); + + double cooef =( var2.lengthVector()-2.5)/var2.lengthVector(); + var2.scale(cooef); + double var5 = holder.posX - var2.xCoord; + double var9 = holder.posZ - var2.zCoord; + + + double var7 = MathHelper.floor(holder.posY - var2.yCoord) ; + + int var14 = MathHelper.floor(var5); + int var15 = MathHelper.floor(var7); + int var16 = MathHelper.floor(var9); + while(!holder.world.isAirBlock(new BlockPos(var14, var15, var16))) { + var15++; + } + + var7=var15; + + + holder.setPositionAndUpdate(var5, var7, var9); + + return true; + } + + @Override + public ActionResult onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand) { + if (!world.isRemote) { + @SuppressWarnings("unchecked") + List list = world.getEntitiesWithinAABB(EntityLiving.class, new AxisAlignedBB(player.posX-10,player.posY-10, player.posZ-10, player.posX+10,player.posY+10, player.posZ+10)); + list.remove(player); + + for (EntityLiving ent : list) { + Vec3d var3 = player.getLook(1.0F).normalize(); + Vec3d var4 = new Vec3d(ent.posX - player.posX, ent.getEntityBoundingBox().minY + (ent.height) / 2.0F - ( player.posY + player.getEyeHeight()), ent.posZ - player.posZ); + double var5 = var4.lengthVector(); + var4 = var4.normalize(); + double var7 = var3.dotProduct(var4); + + if( (var7+.1) > 1.0D - 0.025D / var5 ? player.canEntityBeSeen(ent) : false) { + teleportToEntity(stack, ent, player); + stack.damageItem(3, player); + return ActionResult.newResult(EnumActionResult.PASS, stack); + } + } + + RayTraceResult hit = this.rayTrace(world, player, false); + if (hit != null) { + BlockPos pos = hit.getBlockPos(); + + TileEntity tile = world.getTileEntity(pos); + + if (tile != null && tile instanceof TileEntityRift) { + if (((TileEntityRift) tile).isPaired()) { + if (player.canPlayerEdit(pos, hit.sideHit, stack) && player.canPlayerEdit(pos.offset(EnumFacing.UP), hit.sideHit, stack)) + { + EnumFacing orientation = EnumFacing.fromAngle(player.rotationYaw).getOpposite(); + + if (ItemDoorBase.canPlace(world, pos) && ItemDoorBase.canPlace(world, pos.offset(EnumFacing.DOWN))) { + ItemDimDoor.placeDoor(world, pos.offset(EnumFacing.DOWN), orientation, ModBlocks.blockDimDoorTransient, true); + stack.damageItem(3, player); + return ActionResult.newResult(EnumActionResult.PASS, stack); + } + } + } + } + } + } + return ActionResult.newResult(EnumActionResult.PASS, stack); + } + + + /** + * Return whether this item is repairable in an anvil. + */ + @Override + public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) + { + //Don't include a call to super.getIsRepairable()! + //That would cause this sword to accept diamonds as a repair material (since we set material = Diamond). + return ModItems.itemStableFabric == par2ItemStack.getItem() ? true : false; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean advanced) { + DimDoors.translateAndAdd("info.riftblade", list); + } } diff --git a/src/main/java/com/zixiken/dimdoors/items/ItemRiftRemover.java b/src/main/java/com/zixiken/dimdoors/items/ItemRiftRemover.java new file mode 100644 index 00000000..92e376ff --- /dev/null +++ b/src/main/java/com/zixiken/dimdoors/items/ItemRiftRemover.java @@ -0,0 +1,4 @@ +package com.zixiken.dimdoors.items; + +public class ItemRiftRemover { +} diff --git a/src/main/java/com/zixiken/dimdoors/items/ItemStablizedRiftSig.java b/src/main/java/com/zixiken/dimdoors/items/ItemStablizedRiftSig.java new file mode 100644 index 00000000..9f12ef9b --- /dev/null +++ b/src/main/java/com/zixiken/dimdoors/items/ItemStablizedRiftSig.java @@ -0,0 +1,4 @@ +package com.zixiken.dimdoors.items; + +public class ItemStablizedRiftSig { +} diff --git a/src/main/resources/assets/dimdoors/models/item/itemLinkSignature.json b/src/main/resources/assets/dimdoors/models/item/itemLinkSignature.json new file mode 100644 index 00000000..7eecb983 --- /dev/null +++ b/src/main/resources/assets/dimdoors/models/item/itemLinkSignature.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "dimdoors:items/itemLinkSignature" + } +} diff --git a/src/main/resources/assets/dimdoors/models/item/itemRiftRemover.json b/src/main/resources/assets/dimdoors/models/item/itemRiftRemover.json new file mode 100644 index 00000000..1138dbc2 --- /dev/null +++ b/src/main/resources/assets/dimdoors/models/item/itemRiftRemover.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "dimdoors:items/itemRiftRemover" + } +} diff --git a/src/main/resources/assets/dimdoors/models/item/itemStabilizedRiftSig.json b/src/main/resources/assets/dimdoors/models/item/itemStabilizedRiftSig.json new file mode 100644 index 00000000..6335baf4 --- /dev/null +++ b/src/main/resources/assets/dimdoors/models/item/itemStabilizedRiftSig.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "dimdoors:items/itemStablizedRiftSig" + } +}