diff options
Diffstat (limited to 'src/main/java/com/detrav/items')
4 files changed, 190 insertions, 11 deletions
diff --git a/src/main/java/com/detrav/items/DetravMetaGeneratedItem01.java b/src/main/java/com/detrav/items/DetravMetaGeneratedItem01.java index 6f0f278726..8edeb87b30 100644 --- a/src/main/java/com/detrav/items/DetravMetaGeneratedItem01.java +++ b/src/main/java/com/detrav/items/DetravMetaGeneratedItem01.java @@ -43,13 +43,11 @@ public class DetravMetaGeneratedItem01 extends DetravMetaGeneratedItem { return aDoShowAllItems || !aPrefix.name().startsWith("toolHead"); } - public boolean isConfiguredCircuit(ItemStack aStack) - { - return aStack.getUnlocalizedName().indexOf("gt.detrav.metaitem.01." + (mOffset+1)) == 0; + public boolean isConfiguredCircuit(ItemStack aStack) { + return aStack.getUnlocalizedName().indexOf("gt.detrav.metaitem.01." + (mOffset + 1)) == 0; } - public void addAdditionalToolTips(List aList, ItemStack aStack, EntityPlayer aPlayer) { int tOffset = aList.size(); String name = aStack.getUnlocalizedName(); @@ -65,11 +63,9 @@ public class DetravMetaGeneratedItem01 extends DetravMetaGeneratedItem { tOffset = addToList(tOffset, aList, detravPosition, "Percent", true); tOffset = addToList(tOffset, aList, detravPosition, "XCurrent", true); tOffset = addToList(tOffset, aList, detravPosition, "ZCurrent", true); - tOffset = addToList(tOffset, aList, detravPosition, "XFrom", true); - tOffset = addToList(tOffset, aList, detravPosition, "XTo", true); - tOffset = addToList(tOffset, aList, detravPosition, "ZFrom", true); - tOffset = addToList(tOffset, aList, detravPosition, "ZTo", true); - tOffset = addToList(tOffset, aList, detravPosition, "Configurated", false); + tOffset = addToList(tOffset, aList, detravPosition, "X", "XFrom", "XTo"); + tOffset = addToList(tOffset, aList, detravPosition, "Z", "ZFrom", "ZTo"); + tOffset = addToList(tOffset, aList, detravPosition, "Y", "YFrom", "YTo"); } } } @@ -77,7 +73,7 @@ public class DetravMetaGeneratedItem01 extends DetravMetaGeneratedItem { } } - public int addToList(int tOffset, List aList, NBTTagCompound tag,String name, boolean integer) { + public int addToList(int tOffset, List aList, NBTTagCompound tag, String name, boolean integer) { if (!tag.hasKey(name)) return tOffset; if (integer) { @@ -88,6 +84,36 @@ public class DetravMetaGeneratedItem01 extends DetravMetaGeneratedItem { aList.add(tOffset, EnumChatFormatting.WHITE + name + EnumChatFormatting.GRAY); } } - return tOffset + 1; + return tOffset + 1; + } + + + public int addToList(int tOffset, List aList, NBTTagCompound tag, String text, String from, String to) { + String i_from = ""; + String i_to = ""; + boolean noFrom = true; + boolean noTo = true; + if (tag.hasKey(from)) { + i_from = "" + tag.getInteger(from); + noFrom = false; + } + + if (tag.hasKey(to)) { + i_to = "" + tag.getInteger(to); + noTo = false; + } + + if (noFrom && noTo) + return tOffset; + + if (!noFrom && !noTo) + aList.add(tOffset, EnumChatFormatting.WHITE + text + " from " + i_from + " to " + i_to + EnumChatFormatting.GRAY); + else if (noFrom) + aList.add(tOffset, EnumChatFormatting.WHITE + text + " to " + i_to + EnumChatFormatting.GRAY); + else + aList.add(tOffset, EnumChatFormatting.WHITE + text + " from " + i_from + EnumChatFormatting.GRAY); + + + return tOffset + 1; } } diff --git a/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java b/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java index 7ffd561169..5ae33a60c8 100644 --- a/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java +++ b/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java @@ -38,6 +38,7 @@ public class DetravMetaGeneratedTool01 extends GT_MetaGenerated_Tool { addTool(102, "Electric Prospector's Scanner (MV)", "", new DetravToolMVElectricProPick(), new Object[]{DetravToolDictNames.craftingToolElectricProPick, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L)); addTool(104, "Electric Prospector's Scanner (HV)", "", new DetravToolHVElectricProPick(), new Object[]{DetravToolDictNames.craftingToolElectricProPick, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L)); addTool(106, "Portable Battery Charger", "", new DetravToolPortableCharger(), new Object[]{DetravToolDictNames.craftingToolPortableCharger, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.AURAM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L)); + addTool(108, "Circuit Confugurator", "", new DetravToolCircuitConfigurator(), new Object[]{DetravToolDictNames.craftingToolCictuitConfigurator, new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO,10L) }); setCreativeTab(DetravScannerMod.TAB_DETRAV); } @@ -115,6 +116,9 @@ public class DetravMetaGeneratedTool01 extends GT_MetaGenerated_Tool { aList.add(tOffset + 3, "x4 charge speed for tools"); aList.add(tOffset + 4, "Right click to open GUI"); break; + case 108: + aList.add(tOffset + 0, EnumChatFormatting.WHITE + "It can configure any programmed circuit" + EnumChatFormatting.GRAY); + break; } } } diff --git a/src/main/java/com/detrav/items/behaviours/BehaviourDetravConfigurator.java b/src/main/java/com/detrav/items/behaviours/BehaviourDetravConfigurator.java new file mode 100644 index 0000000000..8ff2f3edec --- /dev/null +++ b/src/main/java/com/detrav/items/behaviours/BehaviourDetravConfigurator.java @@ -0,0 +1,78 @@ +package com.detrav.items.behaviours; + +import com.detrav.enums.DetravItemList; +import gregtech.api.items.GT_MetaBase_Item; +import gregtech.common.items.behaviors.Behaviour_None; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; +import net.minecraft.world.chunk.IChunkProvider; + +/** + * Created by Detrav on 29.04.2017. + */ +public class BehaviourDetravConfigurator extends Behaviour_None { + public ItemStack onItemRightClick(GT_MetaBase_Item aItem, ItemStack aStack, World aWorld, EntityPlayer aPlayer) { + + InventoryPlayer inv = aPlayer.inventory; + if (inv != null) { + for (int i = 0; i < inv.mainInventory.length; i++) { + if (inv.mainInventory[i].getUnlocalizedName().startsWith("gt.integrated_circuit") + && inv.mainInventory[i].stackSize == 1) { + + int circuit_config = inv.mainInventory[i].getItemDamage(); + if(circuit_config > 5) + circuit_config = 5; + circuit_config *= 2; + circuit_config++; + inv.mainInventory[i] = DetravItemList.ConfiguredCircuit.get(1); + ItemStack aCircuit = inv.mainInventory[i]; + + //in here if circuit is empty set data to chunk + + + NBTTagCompound aNBT = aCircuit.getTagCompound(); + if (aNBT == null) { + aNBT = new NBTTagCompound(); + NBTTagCompound detravPosition = new NBTTagCompound(); + aNBT.setTag("DetravPosition", detravPosition); + aCircuit.setTagCompound(aNBT); + } + + NBTTagCompound detravPosition = aNBT.getCompoundTag("DetravPosition"); + if (detravPosition == null) { + detravPosition = new NBTTagCompound(); + aNBT.setTag("DetravPosition", detravPosition); + } + + + int x_from = ((((int) aPlayer.posX) >> 4) - circuit_config + 1) * 16; + int x_to = ((((int) aPlayer.posX) >> 4) + circuit_config) * 16; + int x_current = x_from; + int z_from = ((((int) aPlayer.posZ) >> 4) - circuit_config + 1) * 16; + int z_to = ((((int) aPlayer.posZ) >> 4) + circuit_config) * 16; + int z_current = z_from; + + + int y_from = (int) aPlayer.posY + 1; + int y_to = (int) aPlayer.posY - 10; + + detravPosition.setInteger("XFrom", x_from); + detravPosition.setInteger("XTo", x_to); + detravPosition.setInteger("XCurrent", x_current); + detravPosition.setInteger("ZFrom", z_from); + detravPosition.setInteger("ZTo", z_to); + detravPosition.setInteger("ZCurrent", z_current); + detravPosition.setInteger("YFrom", y_from); + detravPosition.setInteger("YTo", y_to); + return super.onItemRightClick(aItem, aStack, aWorld, aPlayer); + } + } + + } + return super.onItemRightClick(aItem, aStack, aWorld, aPlayer); + + } +} diff --git a/src/main/java/com/detrav/items/tools/DetravToolCircuitConfigurator.java b/src/main/java/com/detrav/items/tools/DetravToolCircuitConfigurator.java new file mode 100644 index 0000000000..de95f5bc41 --- /dev/null +++ b/src/main/java/com/detrav/items/tools/DetravToolCircuitConfigurator.java @@ -0,0 +1,71 @@ +package com.detrav.items.tools; + + + +import com.detrav.enums.Textures01; +import com.detrav.items.behaviours.BehaviourDetravConfigurator; +import gregtech.api.GregTech_API; +import gregtech.api.interfaces.IIconContainer; +import gregtech.api.items.GT_MetaGenerated_Tool; +import gregtech.common.tools.GT_Tool; +import net.minecraft.block.Block; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IChatComponent; + +import java.util.List; + +/** + * Created by Detrav on 29.04.2017. + */ +public class DetravToolCircuitConfigurator extends GT_Tool { + public float getBaseDamage() { + return 0.25F; + } + + public float getSpeedMultiplier() { + return 0.3F; + } + + public float getMaxDurabilityMultiplier() { + return 0.50F; + } + + public String getCraftingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(101)); + } + + public String getEntityHitSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(101)); + } + + public String getBreakingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public String getMiningSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(101)); + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + return false; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? Textures01.mTextures[8] : null; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } + + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + aItem.addItemBehavior(aID, new BehaviourDetravConfigurator()); + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got stuck trying to escape through a Pipe while fighting " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); + } +} |