diff options
Diffstat (limited to 'main/java/gregtech/api')
7 files changed, 108 insertions, 8 deletions
diff --git a/main/java/gregtech/api/enums/OrePrefixes.java b/main/java/gregtech/api/enums/OrePrefixes.java index ad2231a6e4..06e1ae97b7 100644 --- a/main/java/gregtech/api/enums/OrePrefixes.java +++ b/main/java/gregtech/api/enums/OrePrefixes.java @@ -121,6 +121,7 @@ public enum OrePrefixes { toolHeadDrill ("Drill Tips" , "" , " Drill Tip" ,T,T,F,F,F,F,T,T,F,F, B[6] , M * 4 , 16, 40), // consisting out of 4 Ingots. toolHeadChainsaw ("Chainsaw Tips" , "" , " Chainsaw Tip" ,T,T,F,F,F,F,T,T,F,F, B[6] , M * 2 , 16, 41), // consisting out of 2 Ingots. toolHeadWrench ("Wrench Tips" , "" , " Wrench Tip" ,T,T,F,F,F,F,T,T,F,F, B[6] , M * 4 , 16, 42), // consisting out of 4 Ingots. + turbineBlade ("Turbine Blades" , "" , " Turbine Blade" ,T,T,F,F,F,F,T,T,F,F, B[6] , M * 6 , 64, 100), // consisting out of 6 Ingots. toolSword ("Swords" , "" , "" ,F,T,F,F,F,F,T,F,T,F, B[6] , M * 2 , 1, -1), // vanilly Sword toolPickaxe ("Pickaxes" , "" , "" ,F,T,F,F,F,F,T,F,T,F, B[6] , M * 3 , 1, -1), // vanilly Pickaxe toolShovel ("Shovels" , "" , "" ,F,T,F,F,F,F,T,F,T,F, B[6] , M * 1 , 1, -1), // vanilly Shovel diff --git a/main/java/gregtech/api/enums/TextureSet.java b/main/java/gregtech/api/enums/TextureSet.java index bae20e91f5..4a4bf6165e 100644 --- a/main/java/gregtech/api/enums/TextureSet.java +++ b/main/java/gregtech/api/enums/TextureSet.java @@ -152,7 +152,7 @@ public class TextureSet { mTextures[ 97] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/crateGtIngot"); mTextures[ 98] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/crateGtGem"); mTextures[ 99] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/crateGtPlate"); - mTextures[100] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); + mTextures[100] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/turbineBlade"); mTextures[101] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); mTextures[102] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); mTextures[103] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); diff --git a/main/java/gregtech/api/enums/Textures.java b/main/java/gregtech/api/enums/Textures.java index f7278f0d8a..f749a2d2d5 100644 --- a/main/java/gregtech/api/enums/Textures.java +++ b/main/java/gregtech/api/enums/Textures.java @@ -323,7 +323,7 @@ public class Textures { , HANDLE_SWORD, HANDLE_FILE, HANDLE_SAW, HANDLE_SCREWDRIVER, HANDLE_BUZZSAW, HANDLE_ELECTRIC_SCREWDRIVER, HANDLE_SOLDERING , POWER_UNIT_LV, POWER_UNIT_MV, POWER_UNIT_HV , DURABILITY_BAR_0, DURABILITY_BAR_1, DURABILITY_BAR_2, DURABILITY_BAR_3, DURABILITY_BAR_4, DURABILITY_BAR_5, DURABILITY_BAR_6, DURABILITY_BAR_7, DURABILITY_BAR_8 - , ENERGY_BAR_0, ENERGY_BAR_1, ENERGY_BAR_2, ENERGY_BAR_3, ENERGY_BAR_4, ENERGY_BAR_5, ENERGY_BAR_6, ENERGY_BAR_7, ENERGY_BAR_8 + , ENERGY_BAR_0, ENERGY_BAR_1, ENERGY_BAR_2, ENERGY_BAR_3, ENERGY_BAR_4, ENERGY_BAR_5, ENERGY_BAR_6, ENERGY_BAR_7, ENERGY_BAR_8, TURBINE ; public static final IIconContainer[] diff --git a/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java b/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java index 4942ff2a8d..d4e13ad232 100644 --- a/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java +++ b/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java @@ -13,6 +13,7 @@ import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; +import gregtech.common.tools.GT_Tool_Turbine; import java.util.*; import java.util.Map.Entry; @@ -238,11 +239,19 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements IToolStats tStats = getToolStats(aStack); int tOffset = getElectricStats(aStack) != null ? 2 : 1; if (tStats != null) { + String name = aStack.getUnlocalizedName(); + if(name.equals("gt.metatool.01.170")||name.equals("gt.metatool.01.172")||name.equals("gt.metatool.01.174")||name.equals("gt.metatool.01.176")){ + aList.add(tOffset + 0, EnumChatFormatting.WHITE + "Durability: " + EnumChatFormatting.GREEN + (tMaxDamage - getToolDamage(aStack)) + " / " + tMaxDamage + EnumChatFormatting.GRAY); + aList.add(tOffset + 1, EnumChatFormatting.WHITE + tMaterial.mDefaultLocalName + EnumChatFormatting.YELLOW + " lvl " + getHarvestLevel(aStack, "") + EnumChatFormatting.GRAY); + aList.add(tOffset + 2, EnumChatFormatting.WHITE + "Turbine Efficency: " + EnumChatFormatting.BLUE + (50.0F+(10.0F*getToolCombatDamage(aStack))) + EnumChatFormatting.GRAY); + aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Optimal Steam flow: " + EnumChatFormatting.LIGHT_PURPLE + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed*20) + EnumChatFormatting.GRAY+ "L/sec"); + + }else{ aList.add(tOffset + 0, EnumChatFormatting.WHITE + "Durability: " + EnumChatFormatting.GREEN + (tMaxDamage - getToolDamage(aStack)) + " / " + tMaxDamage + EnumChatFormatting.GRAY); aList.add(tOffset + 1, EnumChatFormatting.WHITE + tMaterial.mDefaultLocalName + EnumChatFormatting.YELLOW + " lvl " + getHarvestLevel(aStack, "") + EnumChatFormatting.GRAY); aList.add(tOffset + 2, EnumChatFormatting.WHITE + "Attack Damage: " + EnumChatFormatting.BLUE + getToolCombatDamage(aStack) + EnumChatFormatting.GRAY); aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Mining Speed: " + EnumChatFormatting.LIGHT_PURPLE + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed) + EnumChatFormatting.GRAY); - } + }} } public static final Materials getPrimaryMaterial(ItemStack aStack) { diff --git a/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java index a7d92915f5..5a3dfd4e8b 100644 --- a/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java +++ b/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java @@ -2,6 +2,7 @@ package gregtech.api.metatileentity; import static gregtech.api.enums.GT_Values.NW; import static gregtech.api.enums.GT_Values.V; +import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.ItemList; import gregtech.api.enums.Textures; @@ -387,7 +388,9 @@ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileE || (getCoverIDAtSide((byte)4) == 0 && worldObj.getPrecipitationHeight(xCoord-1, zCoord ) - 1 < yCoord) || (getCoverIDAtSide((byte)5) == 0 && worldObj.getPrecipitationHeight(xCoord+1, zCoord ) - 1 < yCoord)) { if (GregTech_API.sMachineRainExplosions && worldObj.isRaining() && getBiome().rainfall > 0) { - if (getRandomNumber(10)==0) doEnergyExplosion(); else setOnFire(); + if (getRandomNumber(10)==0) {doEnergyExplosion(); + GT_Mod.instance.achievements.issueAchievement(this.getWorldObj().getPlayerEntityByName(mOwnerName), "badweather"); + }else setOnFire(); } if (!hasValidMetaTileEntity()) { mRunningThroughTick = false; @@ -395,6 +398,7 @@ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileE } if (GregTech_API.sMachineThunderExplosions && worldObj.isThundering() && getBiome().rainfall > 0 && getRandomNumber(3) == 0) { doEnergyExplosion(); + GT_Mod.instance.achievements.issueAchievement(this.getWorldObj().getPlayerEntityByName(mOwnerName), "badweather"); } } } @@ -683,7 +687,7 @@ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileE public boolean playerOwnsThis(EntityPlayer aPlayer, boolean aCheckPrecicely) {if (!canAccessData()) return false; if (aCheckPrecicely || privateAccess() || mOwnerName.equals("")) if (mOwnerName.equals("")&&isServerSide()) setOwnerName(aPlayer.getDisplayName()); else if (privateAccess() && !aPlayer.getDisplayName().equals("Player") && !mOwnerName.equals("Player") && !mOwnerName.equals(aPlayer.getDisplayName())) return false; return true;} public boolean privateAccess() {if (!canAccessData()) return mLockUpgrade; return mLockUpgrade || mMetaTileEntity.ownerControl();} - public void doEnergyExplosion() {if (getUniversalEnergyCapacity() > 0 && getUniversalEnergyStored() >= getUniversalEnergyCapacity()/5) doExplosion(oOutput*(getUniversalEnergyStored() >= getUniversalEnergyCapacity()?4:getUniversalEnergyStored() >= getUniversalEnergyCapacity()/2?2:1));} + public void doEnergyExplosion() {if (getUniversalEnergyCapacity() > 0 && getUniversalEnergyStored() >= getUniversalEnergyCapacity()/5) {doExplosion(oOutput*(getUniversalEnergyStored() >= getUniversalEnergyCapacity()?4:getUniversalEnergyStored() >= getUniversalEnergyCapacity()/2?2:1)); GT_Mod.instance.achievements.issueAchievement(this.getWorldObj().getPlayerEntityByName(mOwnerName), "electricproblems");}} @Override public void doExplosion(long aAmount) { 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 4411c528df..b93e467111 100644 --- a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java +++ b/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java @@ -1,6 +1,7 @@ package gregtech.api.metatileentity.implementations; import static gregtech.api.enums.GT_Values.V; +import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.ConfigCategories; import gregtech.api.gui.GT_Container_MultiMachine; @@ -179,10 +180,9 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { if (!polluteEnvironment(getPollutionPerTick(mInventory[1]))) { stopMachine(); } - if (mMaxProgresstime > 0 && ++mProgresstime>=mMaxProgresstime) { - if (mOutputItems != null) for (ItemStack tStack : mOutputItems) if (tStack != null) addOutput(tStack); - if (mOutputFluids != null&&mOutputFluids.length==1) {for (FluidStack tStack : mOutputFluids) if (tStack != null) addOutput(tStack);} + if (mOutputItems != null) for (ItemStack tStack : mOutputItems) if (tStack != null) {GT_Mod.instance.achievements.issueAchivementHatch(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), tStack);addOutput(tStack);} + if (mOutputFluids != null&&mOutputFluids.length==1) {for (FluidStack tStack : mOutputFluids) if (tStack != null) {addOutput(tStack);}} else if(mOutputFluids!=null&&mOutputFluids.length>1){ addFluidOutputs(mOutputFluids);} mEfficiency = Math.max(0, Math.min(mEfficiency + mEfficiencyIncrease, getMaxEfficiency(mInventory[1]) - ((getIdealStatus() - getRepairStatus()) * 1000))); @@ -191,6 +191,12 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { mMaxProgresstime = 0; mEfficiencyIncrease = 0; if (aBaseMetaTileEntity.isAllowedToWork()) checkRecipe(mInventory[1]); + if(mOutputFluids!=null&&mOutputFluids.length>0){ + System.out.println("fluids"+mOutputFluids.length); + GT_Mod.instance.achievements.issueAchivementHatchFluid(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), mOutputFluids[0]); + if(mOutputFluids.length>1){GT_Mod.instance.achievements.issueAchievement(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), "oilplant");} + mOutputFluids = null; + } } } } else { diff --git a/main/java/gregtech/api/util/GT_ModHandler.java b/main/java/gregtech/api/util/GT_ModHandler.java index 6f44731c62..91addfbdec 100644 --- a/main/java/gregtech/api/util/GT_ModHandler.java +++ b/main/java/gregtech/api/util/GT_ModHandler.java @@ -16,6 +16,7 @@ import ic2.api.reactor.IReactorComponent; import ic2.api.recipe.IRecipeInput; import ic2.api.recipe.RecipeInputItemStack; import ic2.api.recipe.RecipeOutput; +import ic2.core.AdvRecipe; import java.util.*; import java.util.Map.Entry; @@ -1010,6 +1011,85 @@ public class GT_ModHandler { return rReturn; } +// public static int replaceRecipe(ItemStack aOldItem, ItemStack aNewItem){ +// int replaced =0; +// ArrayList<IRecipe> tList = (ArrayList<IRecipe>)CraftingManager.getInstance().getRecipeList(); +// System.out.println("tList.size "+tList.size()); +// for (int i = 0; i < tList.size(); i++){ +// System.out.println(tList.get(i).getClass()); +// if(tList.get(i) instanceof ShapedRecipes){ +// ShapedRecipes tRecipe = (ShapedRecipes)tList.get(i); +// System.out.println("found recipe!"); +// for( int g =0 ; g < tRecipe.recipeItems.length;g++){ +// if(GT_Utility.areStacksEqual(aOldItem, tRecipe.recipeItems[g], true)){ +// ItemStack[] tItems = tRecipe.recipeItems; +// for(int f = 0; f < tItems.length;f++){ +// if(GT_Utility.areStacksEqual(aOldItem, tItems[f], true)){ +// tItems[f]=aNewItem; +// } +// } +// ShapedRecipes nRecipe = new ShapedRecipes(tRecipe.recipeWidth,tRecipe.recipeHeight,tItems,tRecipe.getRecipeOutput()); +// tList.set(i, nRecipe); +// replaced++; +// } +// } +// } +// +// if(tList.get(i) instanceof AdvRecipe){ +// AdvRecipe tRecipe = (AdvRecipe)tList.get(i); +// System.out.println("found recipe!"); +// for( int g =0 ; g < tRecipe.input.length;g++){ +// if(GT_Utility.areStacksEqual(aOldItem, (ItemStack) tRecipe.input[g], true)){ +// ItemStack[] tItems = (ItemStack[]) tRecipe.input; +// for(int f = 0; f < tItems.length;f++){ +// if(GT_Utility.areStacksEqual(aOldItem, tItems[f], true)){ +// tItems[f]=aNewItem; +// } +// } +// System.out.println("converted Recipe"); +// AdvRecipe nRecipe = new AdvRecipe(tRecipe.getRecipeOutput(),tItems); +// tList.set(i, nRecipe); +// replaced++; +// } +// } +// } +//// if(tList.get(i) instanceof GT_Shaped_Recipe){ +//// GT_Shaped_Recipe tRecipe = (GT_Shaped_Recipe)tList.get(i); +//// System.out.println("found recipe!"); +//// for( int g =0 ; g < tRecipe.getInput().length;g++){ +//// if(GT_Utility.areStacksEqual(aOldItem, (ItemStack)tRecipe.getInput()[g], true)){ +//// ItemStack[] tItems = (ItemStack[]) tRecipe.getInput(); +//// for(int f = 0; f < tItems.length;f++){ +//// if(GT_Utility.areStacksEqual(aOldItem, tItems[f], true)){ +//// tItems[f]=aNewItem; +//// } +//// } +//// GT_Shaped_Recipe nRecipe = new GT_Shaped_Recipe(tItems,tRecipe.getRecipeOutput()); +//// tList.set(i, nRecipe); +//// replaced++; +//// } +//// } +//// } +// if(tList.get(i) instanceof ShapelessRecipes){ +// ShapelessRecipes tRecipe = (ShapelessRecipes)tList.get(i); +// System.out.println("found recipe!"); +// for( int g =0 ; g < tRecipe.recipeItems.size();g++){ +// if(GT_Utility.areStacksEqual(aOldItem, (ItemStack) tRecipe.recipeItems.get(g), true)){ +// List tItems = tRecipe.recipeItems; +// for(int f = 0; f < tItems.size();f++){ +// if(GT_Utility.areStacksEqual(aOldItem, (ItemStack) tItems.get(f), true)){ +// tItems.set(f,aNewItem); +// } +// } +// ShapelessRecipes nRecipe = new ShapelessRecipes(tRecipe.getRecipeOutput(),tItems); +// tList.set(i, nRecipe); +// replaced++; +// } +// } +// } +// }return replaced; +// } + public static boolean removeRecipeByOutput(ItemStack aOutput) { return removeRecipeByOutput(aOutput, T, F, F); } |