From d3ff196ec0a07dd02f8c405365c66905eac80999 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Wed, 21 Oct 2015 18:31:35 +0200 Subject: [PATCH] Tweaked Laser Wrench & Phantom Connector --- .../blocks/BlockLaserRelay.java | 2 +- .../crafting/ItemCrafting.java | 4 ++ .../items/ItemLaserWrench.java | 65 +++++++++---------- .../items/ItemPhantomConnector.java | 21 ++++++ .../misc/LaserRelayConnectionHandler.java | 6 ++ .../assets/actuallyadditions/lang/en_US.lang | 5 +- 6 files changed, 65 insertions(+), 38 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLaserRelay.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLaserRelay.java index 094194e80..a61b7410e 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLaserRelay.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLaserRelay.java @@ -36,7 +36,7 @@ public class BlockLaserRelay extends BlockContainerBase implements IActAddItemOr this.setStepSound(soundTypeStone); float f = 1F/16F; - this.setBlockBounds(3*f, 0F, 3*f, 1-3*f, 1F, 1-3*f); + this.setBlockBounds(2*f, 0F, 2*f, 1-2*f, 1-1*f, 1-2*f); } @Override diff --git a/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java b/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java index a6a513e9c..d4fd0c062 100644 --- a/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java @@ -78,6 +78,10 @@ public class ItemCrafting{ GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(InitItems.itemLexicon), new ItemStack(InitItems.itemCanolaSeed), new ItemStack(Items.paper))); recipeBook = Util.GetRecipes.lastIRecipe(); + //Clearing NBT Storage + GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemLaserWrench), new ItemStack(InitItems.itemLaserWrench)); + GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemPhantomConnector), new ItemStack(InitItems.itemPhantomConnector)); + //Rice Stuff if(ConfigCrafting.RICE_GADGETS.isEnabled()){ GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Items.paper, 3), diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java b/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java index d3dd94893..a667c8d1e 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java @@ -16,6 +16,7 @@ import ellpeck.actuallyadditions.misc.LaserRelayConnectionHandler; import ellpeck.actuallyadditions.tile.TileEntityLaserRelay; import ellpeck.actuallyadditions.util.IActAddItemOrBlock; import ellpeck.actuallyadditions.util.ModUtil; +import ellpeck.actuallyadditions.util.StringUtil; import ellpeck.actuallyadditions.util.WorldPos; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; @@ -25,29 +26,22 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; -import net.minecraft.util.Vec3; import net.minecraft.world.World; +import java.util.List; + public class ItemLaserWrench extends Item implements IActAddItemOrBlock{ public ItemLaserWrench(){ this.setMaxStackSize(1); } - @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player){ - if(player.isSneaking() && !world.isRemote){ - ItemPhantomConnector.clearStorage(stack); - player.addChatComponentMessage(new ChatComponentText("Storage cleared!")); - } - return stack; - } - @Override public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int par7, float par8, float par9, float par10){ TileEntity tile = world.getTileEntity(x, y, z); - if(tile instanceof TileEntityLaserRelay && !player.isSneaking()){ + if(tile instanceof TileEntityLaserRelay){ if(!world.isRemote){ if(ItemPhantomConnector.getStoredPosition(stack) == null){ ItemPhantomConnector.storeConnection(stack, x, y, z, world); @@ -55,33 +49,16 @@ public class ItemLaserWrench extends Item implements IActAddItemOrBlock{ } else{ WorldPos savedPos = ItemPhantomConnector.getStoredPosition(stack); - if(savedPos.getTileEntity() instanceof TileEntityLaserRelay){ - WorldPos otherPos = new WorldPos(world, x, y, z); - int distance = (int)Vec3.createVectorHelper(otherPos.getX(), otherPos.getY(), otherPos.getZ()).distanceTo(Vec3.createVectorHelper(savedPos.getX(), savedPos.getY(), savedPos.getZ())); - if(distance <= 15){ - if(!savedPos.isEqual(otherPos) && savedPos.getWorld() == otherPos.getWorld()){ - if(LaserRelayConnectionHandler.getInstance().addConnection(savedPos, otherPos)){ - player.addChatComponentMessage(new ChatComponentText("Connected!")); - ItemPhantomConnector.clearStorage(stack); + WorldPos otherPos = new WorldPos(world, x, y, z); + if(savedPos.getTileEntity() instanceof TileEntityLaserRelay && LaserRelayConnectionHandler.getInstance().addConnection(savedPos, otherPos)){ + player.addChatComponentMessage(new ChatComponentText("Connected!")); + ItemPhantomConnector.clearStorage(stack); - savedPos.update(); - otherPos.update(); - } - else{ - player.addChatComponentMessage(new ChatComponentText("Couldn't connect!")); - } - } - else{ - player.addChatComponentMessage(new ChatComponentText("Can't connect a Laser Relay to itself!")); - } - } - else{ - player.addChatComponentMessage(new ChatComponentText("Too far away! Distance is "+distance+ "blocks!")); - } + savedPos.update(); + otherPos.update(); } else{ - player.addChatComponentMessage(new ChatComponentText("The Laser Relay you were trying to connect to doesn't exist!")); - ItemPhantomConnector.clearStorage(stack); + player.addChatComponentMessage(new ChatComponentText("Couldn't connect!")); } } } @@ -90,6 +67,24 @@ public class ItemLaserWrench extends Item implements IActAddItemOrBlock{ return false; } + @Override + @SuppressWarnings("unchecked") + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean isHeld){ + WorldPos coords = ItemPhantomConnector.getStoredPosition(stack); + if(coords != null){ + World world = coords.getWorld(); + if(world != null){ + list.add(StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".boundTo.desc")+":"); + list.add("X: "+coords.getX()); + list.add("Y: "+coords.getY()); + list.add("Z: "+coords.getZ()); + list.add(StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".inWorld.desc")+" "+world.provider.dimensionId); + list.add(EnumChatFormatting.ITALIC+StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".clearStorage.desc")); + } + } + } + @Override public boolean getShareTag(){ return true; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java b/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java index 812200431..b32333e5f 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java @@ -26,10 +26,13 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.world.World; import net.minecraftforge.common.DimensionManager; +import java.util.List; + public class ItemPhantomConnector extends Item implements IActAddItemOrBlock{ public ItemPhantomConnector(){ @@ -73,6 +76,24 @@ public class ItemPhantomConnector extends Item implements IActAddItemOrBlock{ } } + @Override + @SuppressWarnings("unchecked") + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean isHeld){ + WorldPos coords = getStoredPosition(stack); + if(coords != null){ + World world = coords.getWorld(); + if(world != null){ + list.add(StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".boundTo.desc")+":"); + list.add("X: "+coords.getX()); + list.add("Y: "+coords.getY()); + list.add("Z: "+coords.getZ()); + list.add(StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".inWorld.desc")+" "+world.provider.dimensionId); + list.add(EnumChatFormatting.ITALIC+StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".clearStorage.desc")); + } + } + } + public static WorldPos getStoredPosition(ItemStack stack){ NBTTagCompound tag = stack.getTagCompound(); if(tag != null){ diff --git a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java index 4a6c84e86..149496939 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java @@ -16,6 +16,7 @@ import ellpeck.actuallyadditions.util.WorldPos; import ellpeck.actuallyadditions.util.WorldUtil; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.util.ForgeDirection; @@ -99,6 +100,11 @@ public class LaserRelayConnectionHandler{ * (Puts it into the correct network!) */ public boolean addConnection(WorldPos firstRelay, WorldPos secondRelay){ + int distance = (int)Vec3.createVectorHelper(firstRelay.getX(), firstRelay.getY(), firstRelay.getZ()).distanceTo(Vec3.createVectorHelper(secondRelay.getX(), secondRelay.getY(), secondRelay.getZ())); + if(distance > 15 || firstRelay.isEqual(secondRelay) || firstRelay.getWorld() != secondRelay.getWorld()){ + return false; + } + ArrayList firstNetwork = this.getNetworkFor(firstRelay); ArrayList secondNetwork = this.getNetworkFor(secondRelay); diff --git a/src/main/resources/assets/actuallyadditions/lang/en_US.lang b/src/main/resources/assets/actuallyadditions/lang/en_US.lang index 5e5dbaaa7..70bb20771 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_US.lang +++ b/src/main/resources/assets/actuallyadditions/lang/en_US.lang @@ -276,8 +276,9 @@ tooltip.actuallyadditions.onSuffix.desc=On tooltip.actuallyadditions.phantom.connected.desc= tooltip.actuallyadditions.phantom.stored.desc= tooltip.actuallyadditions.phantom.unbound.desc=The Connection was cleared! -tooltip.actuallyadditions.phantom.inWorld.desc=In World -tooltip.actuallyadditions.phantom.boundTo.desc=Bound to +tooltip.actuallyadditions.inWorld.desc=In World +tooltip.actuallyadditions.boundTo.desc=Bound to +tooltip.actuallyadditions.clearStorage.desc=Place in Crafting Grid to clear storage! tooltip.actuallyadditions.phantom.connectedRange.desc=The Connection is fine and working. tooltip.actuallyadditions.phantom.connectedNoRange.desc=The Connection is obstructed: It is either not in Range, not in loaded Chunks or not the right type of Block for this Phantom Device. tooltip.actuallyadditions.phantom.notConnected.desc=This isn't connected to anything!