aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorDetrav <witalyezep@gmail.com>2016-11-25 21:46:30 +0300
committerDetrav <witalyezep@gmail.com>2016-11-25 21:46:30 +0300
commit46abca1bb6254c6cd6d971d4ec8ffd2955b43609 (patch)
treecb5390c1f71365b5c8ef4c6e72f36c48dbc9f3ff /src/main/java
parent996ad06c0bf4132288b77ddffd3427ee91a4dfd7 (diff)
downloadGT5-Unofficial-46abca1bb6254c6cd6d971d4ec8ffd2955b43609.tar.gz
GT5-Unofficial-46abca1bb6254c6cd6d971d4ec8ffd2955b43609.tar.bz2
GT5-Unofficial-46abca1bb6254c6cd6d971d4ec8ffd2955b43609.zip
Updated repair tool
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/detrav/DetravScannerMod.java2
-rw-r--r--src/main/java/com/detrav/gui/containers/DetravPortableAnvilContainer.java7
-rw-r--r--src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java52
-rw-r--r--src/main/java/com/detrav/utils/PortableAnvilInventory.java20
4 files changed, 74 insertions, 7 deletions
diff --git a/src/main/java/com/detrav/DetravScannerMod.java b/src/main/java/com/detrav/DetravScannerMod.java
index 29b53fa16d..1d00a570cc 100644
--- a/src/main/java/com/detrav/DetravScannerMod.java
+++ b/src/main/java/com/detrav/DetravScannerMod.java
@@ -22,7 +22,7 @@ import net.minecraftforge.common.config.Configuration;
public class DetravScannerMod
{
public static final String MODID = "detravscannermod";
- public static final String VERSION = "0.28";
+ public static final String VERSION = "0.29";
public static final CreativeTabs TAB_DETRAV = new DetravCreativeTab();
diff --git a/src/main/java/com/detrav/gui/containers/DetravPortableAnvilContainer.java b/src/main/java/com/detrav/gui/containers/DetravPortableAnvilContainer.java
index fb18b539f3..8ea738df2c 100644
--- a/src/main/java/com/detrav/gui/containers/DetravPortableAnvilContainer.java
+++ b/src/main/java/com/detrav/gui/containers/DetravPortableAnvilContainer.java
@@ -24,7 +24,7 @@ public class DetravPortableAnvilContainer extends Container {
worldObj = world;
inventoryPlayer = inventory;
stack = currentEquippedItem;
- slots = new PortableAnvilInventory("Item", false, 3);
+ slots = new PortableAnvilInventory(stack,"Item", false, 3);
this.addSlotToContainer(new Slot(this.slots, 0, 27, 47));
this.addSlotToContainer(new Slot(this.slots, 1, 76, 47));
@@ -66,6 +66,11 @@ public class DetravPortableAnvilContainer extends Container {
if (stack == null || !DetravMetaGeneratedTool01.INSTANCE.setItemStackToDetravData(stack, itemstack)) {
p_75134_1_.dropPlayerItemWithRandomChoice(itemstack, false);
}
+ itemstack = this.slots.getStackInSlot(2);
+
+ if (itemstack != null) {
+ p_75134_1_.dropPlayerItemWithRandomChoice(itemstack, false);
+ }
//itemstack.writeToNBT()
}
}
diff --git a/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java b/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java
index 276d67518a..461ca97fe3 100644
--- a/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java
+++ b/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java
@@ -61,6 +61,18 @@ public class DetravMetaGeneratedTool01 extends GT_MetaGenerated_Tool {
aList.add(tOffset + 7, "Large: 60-99");
aList.add(tOffset + 8, "Very large: 100-***");
break;
+ case 2:
+ int count;
+ count = ((int)(getLevel(aStack,0)*100)); if(count > 0) {aList.add(tOffset, "Bonus 0 level: +" + count + "%");tOffset++;}
+ count = ((int)(getLevel(aStack,1)*100)); if(count > 0) {aList.add(tOffset, "Bonus 1 level: +" + count + "%");tOffset++;}
+ count = ((int)(getLevel(aStack,2)*100)); if(count > 0) {aList.add(tOffset, "Bonus 2 level: +" + count + "%");tOffset++;}
+ count = ((int)(getLevel(aStack,3)*100)); if(count > 0) {aList.add(tOffset, "Bonus 3 level: +" + count + "%");tOffset++;}
+ count = ((int)(getLevel(aStack,4)*100)); if(count > 0) {aList.add(tOffset, "Bonus 4 level: +" + count + "%");tOffset++;}
+ count = ((int)(getLevel(aStack,5)*100)); if(count > 0) {aList.add(tOffset, "Bonus 5 level: +" + count + "%");tOffset++;}
+ count = ((int)(getLevel(aStack,6)*100)); if(count > 0) {aList.add(tOffset, "Bonus 6 level: +" + count + "%");tOffset++;}
+ count = ((int)(getLevel(aStack,7)*100)); if(count > 0) {aList.add(tOffset, "Bonus 7 level: +" + count + "%");tOffset++;}
+ count = ((int)(getLevel(aStack,8)*100)); if(count > 0) {aList.add(tOffset, "Bonus 8 level: +" + count + "%");tOffset++;}
+ break;
case 100:
case 101:
case 102:
@@ -135,6 +147,46 @@ public class DetravMetaGeneratedTool01 extends GT_MetaGenerated_Tool {
return false;
}
+ public void setLevelToItemStack(ItemStack aStack, int level, float percent)
+ {
+ if(aStack == null) return;
+ NBTTagCompound aNBT = aStack.getTagCompound();
+ if(aNBT == null) {
+ aNBT = new NBTTagCompound();
+ NBTTagCompound detravLevel = new NBTTagCompound();
+ aNBT.setTag("DetravLevel", detravLevel);
+ aStack.setTagCompound(aNBT);
+ }
+ {
+ NBTTagCompound detravLevel = aNBT.getCompoundTag("DetravLevel");
+ if (detravLevel == null || hasnolevel(detravLevel)) {
+ detravLevel = new NBTTagCompound();
+ aNBT.setTag("DetravLevel", detravLevel);
+ }
+ detravLevel.setFloat("level"+Integer.toString(level),percent);
+ }
+ }
+
+ private boolean hasnolevel(NBTTagCompound detravLevel)
+ {
+ for(int i=0;i<9;i++)
+ {
+ detravLevel.hasKey("level"+Integer.toString(i));
+ return false;
+ }
+ return true;
+ }
+
+ public float getLevel(ItemStack aStack, int level)
+ {
+ if(aStack == null) return 0;
+ NBTTagCompound aNBT = aStack.getTagCompound();
+ if(aNBT ==null) return 0;
+ NBTTagCompound detravLevel = aNBT.getCompoundTag("DetravLevel");
+ if(detravLevel == null) return 0;
+ return detravLevel.getFloat("level"+Integer.toString(level));
+ }
+
public boolean setItemStackToDetravData(ItemStack aStack, ItemStack what)
{
if(aStack == null) return false;
diff --git a/src/main/java/com/detrav/utils/PortableAnvilInventory.java b/src/main/java/com/detrav/utils/PortableAnvilInventory.java
index e6d56a3464..05502b090e 100644
--- a/src/main/java/com/detrav/utils/PortableAnvilInventory.java
+++ b/src/main/java/com/detrav/utils/PortableAnvilInventory.java
@@ -1,5 +1,6 @@
package com.detrav.utils;
+import com.detrav.items.DetravMetaGeneratedTool01;
import gregtech.api.enums.Materials;
import gregtech.api.items.GT_MetaGenerated_Tool;
import gregtech.api.util.GT_Recipe;
@@ -13,10 +14,12 @@ import net.minecraftforge.fluids.FluidStack;
* Created by Detrav on 30.10.2016.
*/
public class PortableAnvilInventory extends InventoryBasic {
- public PortableAnvilInventory(String p_i1561_1_, boolean p_i1561_2_, int p_i1561_3_) {
+ public PortableAnvilInventory(ItemStack me,String p_i1561_1_, boolean p_i1561_2_, int p_i1561_3_) {
super(p_i1561_1_, p_i1561_2_, p_i1561_3_);
+ meStack = me;
}
+ ItemStack meStack;
public void setInventorySlotContents(int slot, ItemStack stack) {
super.setInventorySlotContents(slot, stack);
@@ -37,16 +40,23 @@ public class PortableAnvilInventory extends InventoryBasic {
if (fStack.getFluidID() == fluidID) {
ItemStack gtCopy = gtTool;
//make copy
- float amount = fStack.amount * 2f / 1000f;
+ float amount = fStack.amount / 1000f;
long maxDamage = GT_MetaGenerated_Tool.getToolMaxDamage(gtCopy);
long damage = GT_MetaGenerated_Tool.getToolDamage(gtCopy);
if (damage == 0) {
super.setInventorySlotContents(2, null);
return;
}
- maxDamage = (long) (maxDamage * amount);
- damage -= maxDamage;
- if (damage < 0) damage = 0;
+ float flevel = DetravMetaGeneratedTool01.INSTANCE.getLevel(meStack,mat.mToolQuality);
+ int level = ((int)flevel + 1)*((int)flevel + 1);
+ long repair = (long) (maxDamage * amount * (flevel+1));
+ repair = Math.min(repair,damage);
+ damage -= repair;
+
+ float delta = ((float)repair) / ((float)maxDamage) / ((float)level);
+ flevel += delta;
+ DetravMetaGeneratedTool01.INSTANCE.setLevelToItemStack(meStack,mat.mToolQuality,flevel);
+
GT_MetaGenerated_Tool.setToolDamage(gtCopy, damage);
if (gtMaterial.stackSize > 1)
gtMaterial.stackSize -= 1;