aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbartimaeusnek <lokko12@web.de>2019-11-09 16:24:16 +0100
committerbartimaeusnek <lokko12@web.de>2019-11-09 16:24:16 +0100
commit0819c0dd1f2e55d1e1e3d3a1f319cbd461d19d28 (patch)
tree795ed44e2d75fee194fc06161573cc9d2d6d9f89 /src
parent6d7a985fce0dbcb1301833e4dd9d3f02689f28fe (diff)
downloadGT5-Unofficial-0819c0dd1f2e55d1e1e3d3a1f319cbd461d19d28.tar.gz
GT5-Unofficial-0819c0dd1f2e55d1e1e3d3a1f319cbd461d19d28.tar.bz2
GT5-Unofficial-0819c0dd1f2e55d1e1e3d3a1f319cbd461d19d28.zip
added SmallOres fortune
+modified NEI handler Signed-off-by: bartimaeusnek <lokko12@web.de> Former-commit-id: 67fa75d497e38016116b612f34b378f4578ec338
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaBlastFurnace.java91
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/neiHandler/BW_NEI_OreHandler.java33
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGeneratedOreTE.java2
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGeneratedSmallOreTE.java14
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Ores.java4
5 files changed, 106 insertions, 38 deletions
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaBlastFurnace.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaBlastFurnace.java
index 31cf20c428..229cfa0169 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaBlastFurnace.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaBlastFurnace.java
@@ -27,9 +27,11 @@ import com.github.bartimaeusnek.bartworks.common.loaders.ItemRegistry;
import com.github.bartimaeusnek.bartworks.util.BW_Util;
import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
import gregtech.api.GregTech_API;
+import gregtech.api.enums.GT_Values;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase;
import gregtech.api.util.GT_Recipe;
@@ -39,6 +41,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StatCollector;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.FluidStack;
@@ -79,6 +82,7 @@ public class GT_TileEntity_MegaBlastFurnace extends GT_MetaTileEntity_ElectricBl
super.saveNBTData(aNBT);
aNBT.setByte("glasTier",glasTier);
aNBT.setByte("circuitMode",circuitMode);
+ aNBT.setLong("lEUt",lEUt);
}
@Override
@@ -86,8 +90,59 @@ public class GT_TileEntity_MegaBlastFurnace extends GT_MetaTileEntity_ElectricBl
super.loadNBTData(aNBT);
this.circuitMode = aNBT.getByte("circuitMode");
this.glasTier = aNBT.getByte("glasTier");
+ this.lEUt = aNBT.getLong("lEUt");
}
+ @Override
+ public boolean onRunningTick(ItemStack aStack) {
+ if (this.lEUt > 0) {
+ this.addEnergyOutput((long)this.lEUt * (long)this.mEfficiency / 10000L);
+ return true;
+ } else if (this.lEUt < 0 && !this.drainEnergyInput((long)(-this.lEUt) * 10000L / (long)Math.max(1000, this.mEfficiency))) {
+ this.stopMachine();
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+
+ @Override
+ public void stopMachine() {
+ this.mOutputItems = null;
+ this.mEUt = 0;
+ this.lEUt = 0;
+ this.mEfficiency = 0;
+ this.mProgresstime = 0;
+ this.mMaxProgresstime = 0;
+ this.mEfficiencyIncrease = 0;
+ this.getBaseMetaTileEntity().disableWorking();
+ }
+
+ public String[] getInfoData() {
+ int mPollutionReduction = 0;
+
+ for (GT_MetaTileEntity_Hatch_Muffler e : this.mMufflerHatches) {
+ if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(e)) {
+ mPollutionReduction = Math.max(e.calculatePollutionReduction(this.mPollution), mPollutionReduction);
+ }
+ }
+
+ long storedEnergy = 0L;
+ long maxEnergy = 0L;
+
+ for (GT_MetaTileEntity_Hatch_Energy tHatch : this.mEnergyHatches) {
+ if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
+ storedEnergy += tHatch.getBaseMetaTileEntity().getStoredEU();
+ maxEnergy += tHatch.getBaseMetaTileEntity().getEUCapacity();
+ }
+ }
+
+ return new String[]{StatCollector.translateToLocal("GT5U.multiblock.Progress") + ": " + EnumChatFormatting.GREEN + Integer.toString(this.mProgresstime / 20) + EnumChatFormatting.RESET + " s / " + EnumChatFormatting.YELLOW + Integer.toString(this.mMaxProgresstime / 20) + EnumChatFormatting.RESET + " s", StatCollector.translateToLocal("GT5U.multiblock.energy") + ": " + EnumChatFormatting.GREEN + Long.toString(storedEnergy) + EnumChatFormatting.RESET + " EU / " + EnumChatFormatting.YELLOW + Long.toString(maxEnergy) + EnumChatFormatting.RESET + " EU", StatCollector.translateToLocal("GT5U.multiblock.usage") + ": " + EnumChatFormatting.RED + Long.toString(-this.lEUt) + EnumChatFormatting.RESET + " EU/t", StatCollector.translateToLocal("GT5U.multiblock.mei") + ": " + EnumChatFormatting.YELLOW + Long.toString(this.getMaxInputVoltage()) + EnumChatFormatting.RESET + " EU/t(*2A) " + StatCollector.translateToLocal("GT5U.machines.tier") + ": " + EnumChatFormatting.YELLOW + GT_Values.VN[GT_Utility.getTier(this.getMaxInputVoltage())] + EnumChatFormatting.RESET, StatCollector.translateToLocal("GT5U.multiblock.problems") + ": " + EnumChatFormatting.RED + (this.getIdealStatus() - this.getRepairStatus()) + EnumChatFormatting.RESET + " " + StatCollector.translateToLocal("GT5U.multiblock.efficiency") + ": " + EnumChatFormatting.YELLOW + Float.toString((float)this.mEfficiency / 100.0F) + EnumChatFormatting.RESET + " %", StatCollector.translateToLocal("GT5U.multiblock.pollution") + ": " + EnumChatFormatting.GREEN + mPollutionReduction + EnumChatFormatting.RESET + " %"};
+ }
+
+ private long lEUt = 0;
+
public boolean drainEnergyInput(long aEU) {
if (aEU <= 0)
return true;
@@ -197,23 +252,23 @@ public class GT_TileEntity_MegaBlastFurnace extends GT_MetaTileEntity_ElectricBl
byte overclockCount = 0;
long actualEUT = (long) (tRecipe.mEUt) * processed;
- if (actualEUT > Integer.MAX_VALUE) {
- byte divider = 0;
- while (actualEUT > Integer.MAX_VALUE) {
- actualEUT = actualEUT / 2;
- divider++;
- }
- overclockCount = this.calculateOverclockednessEBF((int) (actualEUT / (divider * 2)), tRecipe.mDuration * (divider * 2), nominalV);
- } else
+// if (actualEUT > Integer.MAX_VALUE) {
+// byte divider = 0;
+// while (actualEUT > Integer.MAX_VALUE) {
+// actualEUT = actualEUT / 2;
+// divider++;
+// }
+// overclockCount = this.calculateOverclockednessEBF((int) (actualEUT / (divider * 2)), tRecipe.mDuration * (divider * 2), nominalV);
+// } else
overclockCount = this.calculateOverclockednessEBF(actualEUT, tRecipe.mDuration, nominalV);
//In case recipe is too OP for that machine
- if (this.mMaxProgresstime == Integer.MAX_VALUE - 1 && this.mEUt == Integer.MAX_VALUE - 1)
+ if (this.mMaxProgresstime == Integer.MAX_VALUE - 1 && this.lEUt == Integer.MAX_VALUE - 1)
return false;
- if (this.mEUt > 0) {
- this.mEUt = (-this.mEUt);
+ if (this.lEUt > 0) {
+ this.lEUt = (-this.lEUt);
}
if (tHeatCapacityDivTiers > 0) {
- this.mEUt = (int) (this.mEUt * (Math.pow(0.95, tHeatCapacityDivTiers)));
+ this.lEUt = (int) (this.lEUt * (Math.pow(0.95, tHeatCapacityDivTiers)));
this.mMaxProgresstime >>= Math.min(tHeatCapacityDivTiers / 2, overclockCount); //extra free overclocking if possible
if (this.mMaxProgresstime < 1)
this.mMaxProgresstime = 1;//no eu efficiency correction
@@ -245,10 +300,10 @@ public class GT_TileEntity_MegaBlastFurnace extends GT_MetaTileEntity_ElectricBl
long xMaxProgresstime = ((long) aDuration) << 1;
if (xMaxProgresstime > Integer.MAX_VALUE - 1) {
//make impossible if too long
- this.mEUt = Integer.MAX_VALUE - 1;
+ this.lEUt = Integer.MAX_VALUE - 1;
this.mMaxProgresstime = Integer.MAX_VALUE - 1;
} else {
- this.mEUt = (int) (aEUt >> 2);
+ this.lEUt = (int) (aEUt >> 2);
this.mMaxProgresstime = (int) xMaxProgresstime;
}
//return 0;
@@ -273,12 +328,12 @@ public class GT_TileEntity_MegaBlastFurnace extends GT_MetaTileEntity_ElectricBl
timesOverclocked--;
}
if (xEUt > Integer.MAX_VALUE - 1) {
- this.mEUt = Integer.MAX_VALUE - 1;
+ this.lEUt = Integer.MAX_VALUE - 1;
this.mMaxProgresstime = Integer.MAX_VALUE - 1;
} else {
- this.mEUt = (int) xEUt;
- if (this.mEUt == 0)
- this.mEUt = 1;
+ this.lEUt = (int) xEUt;
+ if (this.lEUt == 0)
+ this.lEUt = 1;
if (this.mMaxProgresstime <= 0)
this.mMaxProgresstime = 1;//set time to 1 tick
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/neiHandler/BW_NEI_OreHandler.java b/src/main/java/com/github/bartimaeusnek/bartworks/neiHandler/BW_NEI_OreHandler.java
index cbd5706d16..3c5d02cbb7 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/neiHandler/BW_NEI_OreHandler.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/neiHandler/BW_NEI_OreHandler.java
@@ -28,6 +28,7 @@ import codechicken.nei.recipe.GuiCraftingRecipe;
import codechicken.nei.recipe.TemplateRecipeHandler;
import com.github.bartimaeusnek.bartworks.MainMod;
import com.github.bartimaeusnek.bartworks.system.material.BW_MetaGenerated_Ores;
+import com.github.bartimaeusnek.bartworks.system.material.BW_MetaGenerated_SmallOres;
import com.github.bartimaeusnek.bartworks.system.material.Werkstoff;
import com.github.bartimaeusnek.bartworks.system.oregen.BW_OreLayer;
import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
@@ -93,20 +94,29 @@ public class BW_NEI_OreHandler extends TemplateRecipeHandler {
GuiDraw.drawString(ChatColorHelper.BOLD + "DIM: " + ChatColorHelper.RESET + cachedOreRecipe.worldGen.getDimName(), 0, 40, 0, false);
GuiDraw.drawString(ChatColorHelper.BOLD + "Primary:", 0, 50, 0, false);
GuiDraw.drawString(this.arecipes.get(recipe).getOtherStacks().get(0).item.getDisplayName(), 0, 60, 0, false);
- GuiDraw.drawString(ChatColorHelper.BOLD + "Secondary:", 0, 70, 0, false);
- GuiDraw.drawString(this.arecipes.get(recipe).getOtherStacks().get(1).item.getDisplayName(), 0, 80, 0, false);
- GuiDraw.drawString(ChatColorHelper.BOLD + "InBetween:", 0, 90, 0, false);
- GuiDraw.drawString(this.arecipes.get(recipe).getOtherStacks().get(2).item.getDisplayName(), 0, 100, 0, false);
- GuiDraw.drawString(ChatColorHelper.BOLD + "Sporadic:", 0, 110, 0, false);
- GuiDraw.drawString(this.arecipes.get(recipe).getOtherStacks().get(3).item.getDisplayName(), 0, 120, 0, false);
+
+
+
+ if (!cachedOreRecipe.small) {
+ GuiDraw.drawString(ChatColorHelper.BOLD + "Secondary:", 0, 70, 0, false);
+ GuiDraw.drawString(this.arecipes.get(recipe).getOtherStacks().get(1).item.getDisplayName(), 0, 80, 0, false);
+ GuiDraw.drawString(ChatColorHelper.BOLD + "InBetween:", 0, 90, 0, false);
+ GuiDraw.drawString(this.arecipes.get(recipe).getOtherStacks().get(2).item.getDisplayName(), 0, 100, 0, false);
+ GuiDraw.drawString(ChatColorHelper.BOLD + "Sporadic:", 0, 110, 0, false);
+ GuiDraw.drawString(this.arecipes.get(recipe).getOtherStacks().get(3).item.getDisplayName(), 0, 120, 0, false);
+ } else {
+ GuiDraw.drawString(ChatColorHelper.BOLD + "Amount per Chunk:",0,70,0,false);
+ GuiDraw.drawString(((CachedOreRecipe) this.arecipes.get(recipe)).worldGen.mDensity+"",0,80,0, false);
+ }
}
super.drawExtras(recipe);
}
@Override
public void loadCraftingRecipes(ItemStack result) {
- if (Block.getBlockFromItem(result.getItem()) instanceof BW_MetaGenerated_Ores) {
- BW_OreLayer.NEIMAP.get((short) result.getItemDamage()).forEach(l -> this.arecipes.add(new CachedOreRecipe(l, result)));
+ Block ore = Block.getBlockFromItem(result.getItem());
+ if (ore instanceof BW_MetaGenerated_Ores) {
+ BW_OreLayer.NEIMAP.get((short) result.getItemDamage()).forEach(l -> this.arecipes.add(new CachedOreRecipe(l, result, ore instanceof BW_MetaGenerated_SmallOres)));
}
}
@@ -122,11 +132,12 @@ public class BW_NEI_OreHandler extends TemplateRecipeHandler {
class CachedOreRecipe extends TemplateRecipeHandler.CachedRecipe{
- public CachedOreRecipe(BW_OreLayer worldGen, ItemStack result) {
+ public CachedOreRecipe(BW_OreLayer worldGen, ItemStack result, boolean smallOres) {
this.worldGen = worldGen;
this.stack = new PositionedStack(result, 0, 0);
+ this.small=smallOres;
}
-
+ boolean small;
BW_OreLayer worldGen;
PositionedStack stack ;
@@ -139,7 +150,7 @@ public class BW_NEI_OreHandler extends TemplateRecipeHandler {
public List<PositionedStack> getOtherStacks() {
List<PositionedStack> ret = new ArrayList<>();
int x = 0;
- for (int i = 0; i < 4; i++) {
+ for (int i = 0; i < (small ? 1 : 4); i++) {
x += 20;
ret.add(new PositionedStack(worldGen.getStacks().get(i), x, 12));
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGeneratedOreTE.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGeneratedOreTE.java
index 55714c38ec..df56e4359b 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGeneratedOreTE.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGeneratedOreTE.java
@@ -69,7 +69,7 @@ public class BW_MetaGeneratedOreTE extends TileEntity implements ITexturedTileEn
aNBT.setShort("m", this.mMetaData);
}
- public ArrayList<ItemStack> getDrops(Block aDroppedOre) {
+ public ArrayList<ItemStack> getDrops(Block aDroppedOre, int aFortune) {
ArrayList<ItemStack> rList = new ArrayList<ItemStack>();
if (this.mMetaData < 0) {
rList.add(new ItemStack(Blocks.cobblestone, 1, 0));
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGeneratedSmallOreTE.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGeneratedSmallOreTE.java
index c6baf39118..ff5c25ef7a 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGeneratedSmallOreTE.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGeneratedSmallOreTE.java
@@ -1,6 +1,5 @@
package com.github.bartimaeusnek.bartworks.system.material;
-import gregtech.api.GregTech_API;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.interfaces.ITexture;
@@ -9,7 +8,6 @@ import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.objects.XSTR;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Utility;
-import gregtech.common.blocks.GT_Block_Ores_Abstract;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
@@ -19,8 +17,7 @@ import java.util.Random;
public class BW_MetaGeneratedSmallOreTE extends BW_MetaGeneratedOreTE {
- @Override
- public ArrayList<ItemStack> getDrops(Block aDroppedOre) {
+ public ArrayList<ItemStack> getDrops(Block aDroppedOre, int aFortune) {
ArrayList<ItemStack> rList = new ArrayList<>();
Materials aMaterial = Werkstoff.werkstoffHashMap.get(this.mMetaData).getBridgeMaterial();
@@ -71,9 +68,14 @@ public class BW_MetaGeneratedSmallOreTE extends BW_MetaGeneratedOreTE {
}
}
if (tSelector.size() > 0) {
- rList.add(GT_Utility.copyAmount(1L, tSelector.get(tRandom.nextInt(tSelector.size()))));
+ int i = 0;
+
+ for(int j = Math.max(1, (aFortune > 0 ? tRandom.nextInt(1 + aFortune) : 0)); i < j; ++i) {
+ rList.add(GT_Utility.copyAmount(1L, tSelector.get(tRandom.nextInt(tSelector.size()))));
+ }
+
}
- if (tRandom.nextInt(3) > 1) {
+ if (tRandom.nextInt(3 + aFortune) > 1) {
rList.add(GT_OreDictUnificator.get(tRandom.nextInt(3) > 0 ? OrePrefixes.dustImpure : OrePrefixes.dust, Materials.Stone, 1L));
}
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Ores.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Ores.java
index eeb1f269a9..0c8d6270b3 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Ores.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Ores.java
@@ -147,9 +147,9 @@ public class BW_MetaGenerated_Ores extends BW_TileEntityContainer {
public ArrayList<ItemStack> getDrops(World aWorld, int aX, int aY, int aZ, int aMeta, int aFortune) {
TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
if ((tTileEntity instanceof BW_MetaGeneratedOreTE)) {
- return ((BW_MetaGeneratedOreTE) tTileEntity).getDrops(WerkstoffLoader.BWOres);
+ return ((BW_MetaGeneratedOreTE) tTileEntity).getDrops(WerkstoffLoader.BWOres,aFortune);
}
- return BW_MetaGenerated_Ores.mTemporaryTileEntity.get() == null ? new ArrayList() : BW_MetaGenerated_Ores.mTemporaryTileEntity.get().getDrops(WerkstoffLoader.BWOres);
+ return BW_MetaGenerated_Ores.mTemporaryTileEntity.get() == null ? new ArrayList() : BW_MetaGenerated_Ores.mTemporaryTileEntity.get().getDrops(WerkstoffLoader.BWOres,aFortune);
}
public int getHarvestLevel(int metadata) {