aboutsummaryrefslogtreecommitdiff
path: root/main/java/gregtech/api
diff options
context:
space:
mode:
Diffstat (limited to 'main/java/gregtech/api')
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java4
-rw-r--r--main/java/gregtech/api/items/GT_Spray_Foam_Item.java6
-rw-r--r--main/java/gregtech/api/metatileentity/BaseTileEntity.java4
-rw-r--r--main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java5
-rw-r--r--main/java/gregtech/api/util/GT_Config.java8
-rw-r--r--main/java/gregtech/api/util/GT_Utility.java11
6 files changed, 26 insertions, 12 deletions
diff --git a/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java b/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java
index b7fc797df6..7419214dcb 100644
--- a/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java
+++ b/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java
@@ -113,7 +113,9 @@ public interface IGregTechTileEntity extends ITexturedTileEntity, IGearEnergyTil
public ArrayList<ItemStack> getDrops();
-
+ /**
+ * 255 = 100%
+ */
public int getLightOpacity();
public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, List<AxisAlignedBB> outputAABB, Entity collider);
diff --git a/main/java/gregtech/api/items/GT_Spray_Foam_Item.java b/main/java/gregtech/api/items/GT_Spray_Foam_Item.java
index 3c89d6ca14..20f2971e87 100644
--- a/main/java/gregtech/api/items/GT_Spray_Foam_Item.java
+++ b/main/java/gregtech/api/items/GT_Spray_Foam_Item.java
@@ -111,7 +111,7 @@ public class GT_Spray_Foam_Item extends GT_Tool_Item {
}
switch (0) {
case 0:
- if (GT_Utility.isAirBlock(aWorld, aX, aY, aZ) && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) {
+ if (GT_Utility.isBlockAir(aWorld, aX, aY, aZ) && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) {
GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ);
aWorld.setBlock(aX, aY, aZ, GT_Utility.getBlockFromStack(tStack), tStack.getItemDamage(), 3);
return true;
@@ -119,7 +119,7 @@ public class GT_Spray_Foam_Item extends GT_Tool_Item {
break;
case 1:
for (byte i = 0; i < 4; i++) {
- if (GT_Utility.isAirBlock(aWorld, aX, aY, aZ) && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) {
+ if (GT_Utility.isBlockAir(aWorld, aX, aY, aZ) && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) {
GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ);
aWorld.setBlock(aX, aY, aZ, GT_Utility.getBlockFromStack(tStack), tStack.getItemDamage(), 3);
} else {
@@ -142,7 +142,7 @@ public class GT_Spray_Foam_Item extends GT_Tool_Item {
aZ -= (tZFactor ? 1 : 0);
for (byte i = 0; i < 3; i++) for (byte j = 0; j < 3; j++) {
- if (GT_Utility.isAirBlock(aWorld, aX + (tXFactor?i:0), aY + (!tXFactor&&tYFactor?i:0) + (!tZFactor&&tYFactor?j:0), aZ + (tZFactor?j:0))) {
+ if (GT_Utility.isBlockAir(aWorld, aX + (tXFactor?i:0), aY + (!tXFactor&&tYFactor?i:0) + (!tZFactor&&tYFactor?j:0), aZ + (tZFactor?j:0))) {
if (GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) {
GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ);
aWorld.setBlock(aX + (tXFactor?i:0), aY + (!tXFactor&&tYFactor?i:0) + (!tZFactor&&tYFactor?j:0), aZ + (tZFactor?j:0), GT_Utility.getBlockFromStack(tStack), tStack.getItemDamage(), 3);
diff --git a/main/java/gregtech/api/metatileentity/BaseTileEntity.java b/main/java/gregtech/api/metatileentity/BaseTileEntity.java
index 169998b5e5..49e7f4eca6 100644
--- a/main/java/gregtech/api/metatileentity/BaseTileEntity.java
+++ b/main/java/gregtech/api/metatileentity/BaseTileEntity.java
@@ -127,13 +127,13 @@ public abstract class BaseTileEntity extends TileEntity implements IHasWorldObje
@Override
public final boolean getOpacity(int aX, int aY, int aZ) {
if (ignoreUnloadedChunks && crossedChunkBorder(aX, aZ) && !worldObj.blockExists(aX, aY, aZ)) return false;
- return GT_Utility.isOpaqueBlock(worldObj, aX, aY, aZ);
+ return GT_Utility.isBlockOpaque(worldObj, aX, aY, aZ,true,true);
}
@Override
public final boolean getAir(int aX, int aY, int aZ) {
if (ignoreUnloadedChunks && crossedChunkBorder(aX, aZ) && !worldObj.blockExists(aX, aY, aZ)) return true;
- return GT_Utility.isAirBlock(worldObj, aX, aY, aZ);
+ return GT_Utility.isBlockAir(worldObj, aX, aY, aZ);
}
@Override
diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
index 45b9205d9f..58336d2116 100644
--- a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
+++ b/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
@@ -336,7 +336,10 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
}
if (mInventory[1] != null && getBaseMetaTileEntity().getRandomNumber(2) == 0 &&!mInventory[1].getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.")) {
if(mInventory[1].getItem() instanceof GT_MetaGenerated_Tool_01){
- ((GT_MetaGenerated_Tool)mInventory[1].getItem()).doDamage(mInventory[1], mEUt/5);
+ ((GT_MetaGenerated_Tool)mInventory[1].getItem()).doDamage(mInventory[1], (long) Math.min(mEUt/5, Math.pow(mEUt, 0.7)));
+ if(mInventory[1]!=null&&mInventory[1].getItem().getDamage(mInventory[1])>mInventory[1].getMaxDamage()){
+ mInventory[1]=null;
+ }
}
}
}
diff --git a/main/java/gregtech/api/util/GT_Config.java b/main/java/gregtech/api/util/GT_Config.java
index 93b3a51e45..9ad2ebab50 100644
--- a/main/java/gregtech/api/util/GT_Config.java
+++ b/main/java/gregtech/api/util/GT_Config.java
@@ -36,11 +36,15 @@ public class GT_Config implements Runnable {
Object rName = GT_OreDictUnificator.getAssociation(aStack);
if (rName != null) return rName.toString();
try {if (GT_Utility.isStringValid(rName = aStack.getUnlocalizedName())) return rName.toString();} catch (Throwable e) {/*Do nothing*/}
- return aStack.getItem() + "." + aStack.getItemDamage();
+ String sName = aStack.getItem().toString();
+ String[] tmp = sName.split("@");
+ if(tmp.length>0)sName=tmp[0];
+ return sName + "." + aStack.getItemDamage();
}
public boolean get(Object aCategory, ItemStack aStack, boolean aDefault) {
- return get(aCategory, getStackConfigName(aStack), aDefault);
+ String aName = getStackConfigName(aStack);
+ return get(aCategory, aName , aDefault);
}
public boolean get(Object aCategory, String aName, boolean aDefault) {
diff --git a/main/java/gregtech/api/util/GT_Utility.java b/main/java/gregtech/api/util/GT_Utility.java
index 2bfae10fee..3285661d8f 100644
--- a/main/java/gregtech/api/util/GT_Utility.java
+++ b/main/java/gregtech/api/util/GT_Utility.java
@@ -1149,11 +1149,16 @@ public class GT_Utility {
return aStack;
}
- public static boolean isOpaqueBlock(World aWorld, int aX, int aY, int aZ) {
- return aWorld.getBlock(aX, aY, aZ).isOpaqueCube();
+ public static boolean isBlockOccluded(World aWorld, int aX, int aY, int aZ, boolean aIgnoreUnloadedChunks, boolean aDefault) {
+ return isBlockOpaque(aWorld, aX+1, aY, aZ, aIgnoreUnloadedChunks, aDefault) && isBlockOpaque(aWorld, aX-1, aY, aZ, aIgnoreUnloadedChunks, aDefault) && isBlockOpaque(aWorld, aX, aY+1, aZ, T, aDefault) && isBlockOpaque(aWorld, aX, aY-1, aZ, T, aDefault) && isBlockOpaque(aWorld, aX, aY, aZ+1, aIgnoreUnloadedChunks, aDefault) && isBlockOpaque(aWorld, aX, aY, aZ-1, aIgnoreUnloadedChunks, aDefault);
}
- public static boolean isAirBlock(World aWorld, int aX, int aY, int aZ) {
+ public static boolean isBlockOpaque(World aWorld, int aX, int aY, int aZ, boolean aIgnoreUnloadedChunks, boolean aDefault) {
+ if (aIgnoreUnloadedChunks || aWorld.blockExists(aX, aY, aZ)) return aWorld.getBlock(aX, aY, aZ).isOpaqueCube();
+ return aDefault;
+ }
+
+ public static boolean isBlockAir(World aWorld, int aX, int aY, int aZ) {
return aWorld.getBlock(aX, aY, aZ).isAir(aWorld, aX, aY, aZ);
}