aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/github/bartimaeusnek/ASM/ASMUtils.java4
-rw-r--r--src/main/java/com/github/bartimaeusnek/ASM/BWCoreStaticReplacementMethodes.java38
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/items/BW_ItemBlocks.java4
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/items/BW_SimpleWindMeter.java4
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/items/BW_Stonage_Rotors.java4
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/items/Circuit_Programmer.java4
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/items/GT_Destructopack_Item.java5
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/items/GT_Rockcutter_Item.java4
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/items/GT_Teslastaff_Item.java4
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/items/SimpleSubItemClass.java5
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_BioVat.java2
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_CircuitAssemblyLine.java10
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_ElectricImplosionCompressor.java11
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_LESU.java3
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_ManualTrafo.java11
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_THTR.java11
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_Windmill.java11
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaBlastFurnace.java14
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaDistillTower.java8
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaVacuumFreezer.java13
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_AcidGenerator.java3
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_BioLab.java2
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_Diode.java3
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_EnergyDistributor.java3
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_RadioHatch.java5
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/neiHandler/BW_NEI_OreHandler.java4
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_GT_MaterialReference.java644
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGeneratedBlock_Item.java2
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGeneratedBlocks_Casing.java18
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Blocks.java12
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Items.java5
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/BW_Meta_Items.java5
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/BWGTMetaItems.java30
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/Werkstoff.java44
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java8
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/werkstoff_loaders/recipe/CasingLoader.java41
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/oredict/OreDictHandler.java3
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Tooltip_Reference.java46
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/util/accessprioritylist/AccessPriorityList.java21
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/util/accessprioritylist/AccessPriorityListIterators.java20
-rw-r--r--src/main/java/com/github/bartimaeusnek/crossmod/BartWorksCrossmod.java11
-rw-r--r--src/main/java/com/github/bartimaeusnek/crossmod/galacticgreg/GT_TileEntity_VoidMiner_Base.java5
-rw-r--r--src/main/java/com/github/bartimaeusnek/crossmod/tectech/TecTechEnabledMulti.java4
-rw-r--r--src/main/java/com/github/bartimaeusnek/crossmod/tectech/helper/CoilAdder.java63
-rw-r--r--src/main/java/com/github/bartimaeusnek/crossmod/tectech/helper/IHasCoils.java28
-rw-r--r--src/main/java/com/github/bartimaeusnek/crossmod/tectech/helper/StructureDefinitions.java52
-rw-r--r--src/main/java/com/github/bartimaeusnek/crossmod/tectech/helper/TecTechUtils.java (renamed from src/main/java/com/github/bartimaeusnek/crossmod/tectech/TecTechUtils.java)3
-rw-r--r--src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/multi/GT_Replacement/TT_ElectronicBlastFurnace.java442
-rw-r--r--src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/multi/GT_Replacement/TT_ImplosionCompressor.java261
-rw-r--r--src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/multi/GT_Replacement/TT_OilCrackingUnit.java325
-rw-r--r--src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/multi/GT_Replacement/TT_VaccuumFreezer.java227
-rw-r--r--src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/tiered/TT_MetaTileEntity_LowPowerLaserBox.java4
-rw-r--r--src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/tiered/TT_MetaTileEntity_LowPowerLaserDynamo.java4
-rw-r--r--src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/tiered/TT_MetaTileEntity_LowPowerLaserHatch.java4
-rw-r--r--src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/tiered/TT_MetaTileEntity_Pipe_Energy_LowPower.java4
55 files changed, 2345 insertions, 181 deletions
diff --git a/src/main/java/com/github/bartimaeusnek/ASM/ASMUtils.java b/src/main/java/com/github/bartimaeusnek/ASM/ASMUtils.java
index 4d9fe89836..9055909567 100644
--- a/src/main/java/com/github/bartimaeusnek/ASM/ASMUtils.java
+++ b/src/main/java/com/github/bartimaeusnek/ASM/ASMUtils.java
@@ -52,7 +52,9 @@ public class ASMUtils {
public static boolean writeClassToDisk(byte[] towrite, String Classname, String Path) {
try {
- OutputStream os = new FileOutputStream(new File(Path + Classname + ".class"));
+ if (Path.charAt(Path.length()-1) == '/' || Path.charAt(Path.length()-1) == '\\')
+ Path = Path.substring(0,Path.length()-1);
+ OutputStream os = new FileOutputStream(new File(Path + '/' + Classname + ".class"));
os.write(towrite);
} catch (IOException e) {
e.printStackTrace();
diff --git a/src/main/java/com/github/bartimaeusnek/ASM/BWCoreStaticReplacementMethodes.java b/src/main/java/com/github/bartimaeusnek/ASM/BWCoreStaticReplacementMethodes.java
index 72a9477e59..6399a5119b 100644
--- a/src/main/java/com/github/bartimaeusnek/ASM/BWCoreStaticReplacementMethodes.java
+++ b/src/main/java/com/github/bartimaeusnek/ASM/BWCoreStaticReplacementMethodes.java
@@ -24,6 +24,7 @@ package com.github.bartimaeusnek.ASM;
import com.github.bartimaeusnek.bartworks.util.NonNullWrappedHashSet;
import com.github.bartimaeusnek.bartworks.util.accessprioritylist.AccessPriorityList;
+import com.github.bartimaeusnek.bartworks.util.accessprioritylist.AccessPriorityListNode;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
@@ -31,6 +32,7 @@ import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.world.World;
+import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -53,21 +55,16 @@ public class BWCoreStaticReplacementMethodes {
if (itemstack2 != null)
{
if (i == 0)
- {
itemstack = itemstack2;
- }
if (i == 1)
- {
itemstack1 = itemstack2;
- }
++i;
}
}
- if (i == 2 && itemstack.getItem() == itemstack1.getItem() && itemstack.stackSize == 1 && itemstack1.stackSize == 1 && itemstack.getItem().isRepairable())
- {
+ if (i == 2 && itemstack.getItem() == itemstack1.getItem() && itemstack.stackSize == 1 && itemstack1.stackSize == 1 && itemstack.getItem().isRepairable()) {
Item item = itemstack.getItem();
int j1 = item.getMaxDamage() - itemstack.getItemDamageForDisplay();
int k = item.getMaxDamage() - itemstack1.getItemDamageForDisplay();
@@ -75,24 +72,23 @@ public class BWCoreStaticReplacementMethodes {
int i1 = item.getMaxDamage() - l;
if (i1 < 0)
- {
i1 = 0;
- }
return new ItemStack(itemstack.getItem(), 1, i1);
+
} else {
+
IRecipe iPossibleRecipe = null;
- int index = 0;
- for (Iterator<IRecipe> it = RECENTLYUSEDRECIPES.iterator(); it.hasNext(); ++index) {
- IRecipe RECENTLYUSEDRECIPE = it.next();
- if (RECENTLYUSEDRECIPE.matches(inventoryCrafting, world)) {
- iPossibleRecipe = RECENTLYUSEDRECIPE;
- break;
- }
- }
+ Iterator<AccessPriorityListNode<IRecipe>> it = RECENTLYUSEDRECIPES.nodeIterator();
+
+ while (it.hasNext()) {
+ AccessPriorityListNode<IRecipe> recipeNode = it.next();
+ iPossibleRecipe = recipeNode.getELEMENT();
+
+ if (!iPossibleRecipe.matches(inventoryCrafting, world))
+ continue;
- if (iPossibleRecipe != null) {
- RECENTLYUSEDRECIPES.addPrioToNode(index);
+ RECENTLYUSEDRECIPES.addPrioToNode(recipeNode);
return iPossibleRecipe.getCraftingResult(inventoryCrafting);
}
@@ -102,10 +98,12 @@ public class BWCoreStaticReplacementMethodes {
List recipeList = CraftingManager.getInstance().getRecipeList();
for (int k = 0; k < recipeList.size(); k++) {
- recipeSet.add((IRecipe) recipeList.get(k));
+ IRecipe r = (IRecipe) recipeList.get(k);
+ if (r.matches(inventoryCrafting, world))
+ recipeSet.add(r);
}
- Object[] arr = recipeSet.parallelStream().filter(r -> r.matches(inventoryCrafting, world)).toArray();
+ Object[] arr = recipeSet.toArray();
if (arr.length == 0)
return null;
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/items/BW_ItemBlocks.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/items/BW_ItemBlocks.java
index a3a9fc26e0..e0c172f1cd 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/items/BW_ItemBlocks.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/items/BW_ItemBlocks.java
@@ -26,8 +26,8 @@ import com.github.bartimaeusnek.bartworks.API.ITileAddsInformation;
import com.github.bartimaeusnek.bartworks.MainMod;
import com.github.bartimaeusnek.bartworks.common.blocks.BW_GlasBlocks;
import com.github.bartimaeusnek.bartworks.util.BW_ColorUtil;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import com.github.bartimaeusnek.bartworks.util.BW_Util;
-import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.enums.GT_Values;
@@ -78,7 +78,7 @@ public class BW_ItemBlocks extends ItemBlock {
if (!(this.field_150939_a instanceof ITileEntityProvider))
aList.add(this.mNoTileEntityToolTip);
- aList.add(StatCollector.translateToLocal("tooltip.bw.0.name") + ChatColorHelper.DARKGREEN + " BartWorks");
+ aList.add(BW_Tooltip_Reference.ADDED_BY_BARTWORKS.get());
}
@Override
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/items/BW_SimpleWindMeter.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/items/BW_SimpleWindMeter.java
index c5a6efd711..ff9f43cdbf 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/items/BW_SimpleWindMeter.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/items/BW_SimpleWindMeter.java
@@ -23,7 +23,7 @@
package com.github.bartimaeusnek.bartworks.common.items;
import com.github.bartimaeusnek.bartworks.MainMod;
-import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import ic2.core.WorldData;
@@ -59,7 +59,7 @@ public class BW_SimpleWindMeter extends Item {
super.addInformation(itemStack, entityPlayer, list, p_77624_4_);
list.add(StatCollector.translateToLocal("tooltip.windmeter.0.name"));
list.add(StatCollector.translateToLocal("tooltip.windmeter.1.name") + " " + (this.getMaxDamage() - this.getDamage(itemStack)) + "/" + this.getMaxDamage());
- list.add(StatCollector.translateToLocal("tooltip.bw.0.name") + ChatColorHelper.DARKGREEN + " BartWorks");
+ list.add(BW_Tooltip_Reference.ADDED_BY_BARTWORKS.get());
}
@Override
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/items/BW_Stonage_Rotors.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/items/BW_Stonage_Rotors.java
index efe7f5c6ca..9731b4da3b 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/items/BW_Stonage_Rotors.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/items/BW_Stonage_Rotors.java
@@ -23,7 +23,7 @@
package com.github.bartimaeusnek.bartworks.common.items;
import com.github.bartimaeusnek.bartworks.MainMod;
-import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import ic2.api.item.IKineticRotor;
@@ -83,7 +83,7 @@ public class BW_Stonage_Rotors extends Item implements IKineticRotor {
if (type != null) {
info.add(StatCollector.translateToLocal(("ic2.itemrotor.fitsin." + this.isAcceptedType(itemStack, type))));
}
- info.add(StatCollector.translateToLocal("tooltip.bw.0.name") + ChatColorHelper.DARKGREEN + " BartWorks");
+ info.add(BW_Tooltip_Reference.ADDED_BY_BARTWORKS.get());
}
@Override
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/items/Circuit_Programmer.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/items/Circuit_Programmer.java
index 29c14101a6..b2f633c105 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/items/Circuit_Programmer.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/items/Circuit_Programmer.java
@@ -23,7 +23,7 @@
package com.github.bartimaeusnek.bartworks.common.items;
import com.github.bartimaeusnek.bartworks.MainMod;
-import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.enums.GT_Values;
@@ -56,7 +56,7 @@ public class Circuit_Programmer extends GT_Generic_Item implements IElectricItem
super.addInformation(aStack, aPlayer, aList, aF3_H);
if (aStack != null && aStack.getTagCompound() != null)
aList.add(StatCollector.translateToLocal("tooltip.cp.0.name") + " " + (aStack.getTagCompound().getBoolean("HasChip") ? StatCollector.translateToLocal("tooltip.bw.yes.name") : StatCollector.translateToLocal("tooltip.bw.no.name")));
- aList.add(StatCollector.translateToLocal("tooltip.bw.0.name") + ChatColorHelper.DARKGREEN + " BartWorks");
+ aList.add(BW_Tooltip_Reference.ADDED_BY_BARTWORKS.get());
}
@Override
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/items/GT_Destructopack_Item.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/items/GT_Destructopack_Item.java
index c6a6782e34..15e16008ad 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/items/GT_Destructopack_Item.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/items/GT_Destructopack_Item.java
@@ -23,14 +23,13 @@
package com.github.bartimaeusnek.bartworks.common.items;
import com.github.bartimaeusnek.bartworks.MainMod;
-import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.items.GT_Generic_Item;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
-import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
import java.util.List;
@@ -49,7 +48,7 @@ public class GT_Destructopack_Item extends GT_Generic_Item {
@SuppressWarnings("unchecked")
public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) {
super.addInformation(aStack, aPlayer, aList, aF3_H);
- aList.add(StatCollector.translateToLocal("tooltip.bw.0.name") + ChatColorHelper.DARKGREEN + " BartWorks");
+ aList.add(BW_Tooltip_Reference.ADDED_BY_BARTWORKS.get());
}
@Override
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/items/GT_Rockcutter_Item.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/items/GT_Rockcutter_Item.java
index 3c132cef88..a1b222f7c3 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/items/GT_Rockcutter_Item.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/items/GT_Rockcutter_Item.java
@@ -23,7 +23,7 @@
package com.github.bartimaeusnek.bartworks.common.items;
import com.github.bartimaeusnek.bartworks.MainMod;
-import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import com.google.common.collect.Sets;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@@ -76,7 +76,7 @@ public class GT_Rockcutter_Item extends ItemTool implements IElectricItem {
@SuppressWarnings("unchecked")
public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) {
aList.add(StatCollector.translateToLocal("tooltip.bw.tier.name") + " " + GT_Values.VN[this.mTier]);
- aList.add(StatCollector.translateToLocal("tooltip.bw.0.name") + ChatColorHelper.DARKGREEN + " BartWorks");
+ aList.add(BW_Tooltip_Reference.ADDED_BY_BARTWORKS.get());
}
public void onUpdate(ItemStack aStack, World p_77663_2_, Entity p_77663_3_, int p_77663_4_, boolean p_77663_5_) {
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/items/GT_Teslastaff_Item.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/items/GT_Teslastaff_Item.java
index ba46ded1b2..9b4c1ba51c 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/items/GT_Teslastaff_Item.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/items/GT_Teslastaff_Item.java
@@ -23,7 +23,7 @@
package com.github.bartimaeusnek.bartworks.common.items;
import com.github.bartimaeusnek.bartworks.MainMod;
-import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import com.google.common.collect.Sets;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@@ -69,7 +69,7 @@ public class GT_Teslastaff_Item extends ItemTool implements IElectricItem {
@SuppressWarnings("unchecked")
public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) {
aList.add(StatCollector.translateToLocal("tooltip.teslastaff.0.name"));
- aList.add(StatCollector.translateToLocal("tooltip.bw.0.name") + ChatColorHelper.DARKGREEN + " BartWorks");
+ aList.add(BW_Tooltip_Reference.ADDED_BY_BARTWORKS.get());
}
public boolean hitEntity(ItemStack aStack, EntityLivingBase aTarget, EntityLivingBase aPlayer) {
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/items/SimpleSubItemClass.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/items/SimpleSubItemClass.java
index 34bf243c1b..a363ab6811 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/items/SimpleSubItemClass.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/items/SimpleSubItemClass.java
@@ -23,7 +23,7 @@
package com.github.bartimaeusnek.bartworks.common.items;
import com.github.bartimaeusnek.bartworks.MainMod;
-import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.texture.IIconRegister;
@@ -32,7 +32,6 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
-import net.minecraft.util.StatCollector;
import java.util.List;
@@ -60,7 +59,7 @@ public class SimpleSubItemClass extends Item {
@SuppressWarnings("unchecked")
public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List aList, boolean p_77624_4_) {
super.addInformation(p_77624_1_, p_77624_2_, aList, p_77624_4_);
- aList.add(StatCollector.translateToLocal("tooltip.bw.0.name") + ChatColorHelper.DARKGREEN + " BartWorks");
+ aList.add(BW_Tooltip_Reference.ADDED_BY_BARTWORKS.get());
}
@Override
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_BioVat.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_BioVat.java
index 90b0c4ff7d..f13f11607c 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_BioVat.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_BioVat.java
@@ -572,7 +572,7 @@ public class GT_TileEntity_BioVat extends GT_MetaTileEntity_MultiBlockBase {
String[] fdsc = new String[dsc.length + 1];
for (int i = 0; i < dsc.length; i++) {
fdsc[i] = dsc[i];
- fdsc[dsc.length] = StatCollector.translateToLocal("tooltip.bw.1.name") + ChatColorHelper.DARKGREEN + " BartWorks";
+ fdsc[dsc.length] = BW_Tooltip_Reference.ADDED_BY_BARTIMAEUSNEK_VIA_BARTWORKS.get();
}
return fdsc;
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_CircuitAssemblyLine.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_CircuitAssemblyLine.java
index 45bcd28218..9de9f736cb 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_CircuitAssemblyLine.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_CircuitAssemblyLine.java
@@ -26,7 +26,6 @@ import com.github.bartimaeusnek.bartworks.system.material.CircuitGeneration.BW_M
import com.github.bartimaeusnek.bartworks.system.material.CircuitGeneration.CircuitImprintLoader;
import com.github.bartimaeusnek.bartworks.util.BWRecipes;
import com.github.bartimaeusnek.bartworks.util.BW_Util;
-import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
import gregtech.api.GregTech_API;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
@@ -40,12 +39,13 @@ import gregtech.api.util.GT_Utility;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.util.StatCollector;
import net.minecraftforge.common.util.ForgeDirection;
import java.util.Collection;
import java.util.HashSet;
+import static com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference.ADDED_BY_BARTIMAEUSNEK_VIA_BARTWORKS;
+
public class GT_TileEntity_CircuitAssemblyLine extends GT_MetaTileEntity_MultiBlockBase {
public String getTypeForDisplay() {
@@ -129,6 +129,7 @@ public class GT_TileEntity_CircuitAssemblyLine extends GT_MetaTileEntity_MultiBl
this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime);
this.mOutputItems = this.bufferedRecipe.mOutputs;
this.mOutputFluids = this.bufferedRecipe.mFluidOutputs;
+ sendLoopStart((byte) 20);
this.updateSlots();
return true;
}
@@ -217,9 +218,8 @@ public class GT_TileEntity_CircuitAssemblyLine extends GT_MetaTileEntity_MultiBl
--length;
- if (length < -7){
+ if (length < -7)
return false;
- }
}
@@ -361,7 +361,7 @@ public class GT_TileEntity_CircuitAssemblyLine extends GT_MetaTileEntity_MultiBl
"Imprint this machine with a Circuit Imprint,",
"by putting the imprint in the controller.",
"Every Circuit Assembly Line can only be imprinted ONCE.",
- StatCollector.translateToLocal("tooltip.bw.1.name") + ChatColorHelper.DARKGREEN + " BartWorks"
+ ADDED_BY_BARTIMAEUSNEK_VIA_BARTWORKS.get()
};
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_ElectricImplosionCompressor.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_ElectricImplosionCompressor.java
index bd45fe554a..18e6a43ebc 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_ElectricImplosionCompressor.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_ElectricImplosionCompressor.java
@@ -22,7 +22,7 @@
package com.github.bartimaeusnek.bartworks.common.tileentities.multis;
-import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import gregtech.api.GregTech_API;
import gregtech.api.enums.Materials;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
@@ -33,7 +33,6 @@ import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_ImplosionCo
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.util.StatCollector;
import net.minecraftforge.common.util.ForgeDirection;
import java.util.ArrayList;
@@ -249,12 +248,6 @@ public class GT_TileEntity_ElectricImplosionCompressor extends GT_MetaTileEntity
@Override
public String[] getDescription() {
- String[] dsc = StatCollector.translateToLocal("tooltip.tile.eic.0.name").split(";");
- String[] mDescription = new String[dsc.length + 1];
- for (int i = 0; i < dsc.length; i++) {
- mDescription[i] = dsc[i];
- mDescription[dsc.length] = StatCollector.translateToLocal("tooltip.bw.1.name") + ChatColorHelper.DARKGREEN + " BartWorks";
- }
- return mDescription;
+ return BW_Tooltip_Reference.getTranslatedBrandedTooltip("tooltip.tile.eic.0.name");
}
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_LESU.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_LESU.java
index 5f6dde9c7f..533cf24d70 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_LESU.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_LESU.java
@@ -27,6 +27,7 @@ import com.github.bartimaeusnek.bartworks.client.gui.GT_GUIContainer_LESU;
import com.github.bartimaeusnek.bartworks.common.configs.ConfigHandler;
import com.github.bartimaeusnek.bartworks.common.loaders.ItemRegistry;
import com.github.bartimaeusnek.bartworks.server.container.GT_Container_LESU;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
import com.github.bartimaeusnek.bartworks.util.ConnectedBlocksChecker;
import cpw.mods.fml.common.FMLCommonHandler;
@@ -163,7 +164,7 @@ public class GT_TileEntity_LESU extends GT_MetaTileEntity_MultiBlockBase {
dsc = StatCollector.translateToLocal("tooltip.tile.lesu.2.name").split(";");
Collections.addAll(e, dsc);
e.add(ChatColorHelper.RED + StatCollector.translateToLocal("tooltip.tile.lesu.3.name"));
- e.add(StatCollector.translateToLocal("tooltip.bw.1.name") + ChatColorHelper.DARKGREEN + " BartWorks");
+ e.add(BW_Tooltip_Reference.ADDED_BY_BARTIMAEUSNEK_VIA_BARTWORKS.get());
return e.toArray(new String[0]);
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_ManualTrafo.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_ManualTrafo.java
index 06c8324457..9c43cff7de 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_ManualTrafo.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_ManualTrafo.java
@@ -23,7 +23,7 @@
package com.github.bartimaeusnek.bartworks.common.tileentities.multis;
import com.github.bartimaeusnek.bartworks.common.loaders.ItemRegistry;
-import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import gregtech.api.GregTech_API;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
@@ -37,7 +37,6 @@ import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.util.GT_Utility;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.util.StatCollector;
import net.minecraftforge.common.util.ForgeDirection;
import static gregtech.api.enums.GT_Values.V;
@@ -374,13 +373,7 @@ public class GT_TileEntity_ManualTrafo extends GT_MetaTileEntity_MultiBlockBase
@Override
public String[] getDescription() {
- String[] dsc = StatCollector.translateToLocal("tooltip.tile.manualtravo.0.name").split(";");
- String[] fdsc = new String[dsc.length + 1];
- for (int i = 0; i < dsc.length; i++) {
- fdsc[i] = dsc[i];
- fdsc[dsc.length] = StatCollector.translateToLocal("tooltip.bw.1.name") + ChatColorHelper.DARKGREEN + " BartWorks";
- }
- return fdsc;
+ return BW_Tooltip_Reference.getTranslatedBrandedTooltip("tooltip.tile.manualtravo.0.name");
}
@Override
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_THTR.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_THTR.java
index dc85f9476d..d46754840d 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_THTR.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_THTR.java
@@ -24,8 +24,8 @@ package com.github.bartimaeusnek.bartworks.common.tileentities.multis;
import com.github.bartimaeusnek.bartworks.common.items.SimpleSubItemClass;
import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import com.github.bartimaeusnek.bartworks.util.BW_Util;
-import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
import com.github.bartimaeusnek.bartworks.util.MathUtils;
import cpw.mods.fml.common.registry.GameRegistry;
import gregtech.api.GregTech_API;
@@ -45,7 +45,6 @@ import gregtech.api.util.GT_Utility;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.util.StatCollector;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
@@ -319,13 +318,7 @@ public class GT_TileEntity_THTR extends GT_MetaTileEntity_MultiBlockBase {
@Override
public String[] getDescription() {
- String[] dsc = StatCollector.translateToLocal("tooltip.tile.htr.0.name").split(";");
- String[] mDescription = new String[dsc.length + 1];
- for (int i = 0; i < dsc.length; i++) {
- mDescription[i] = dsc[i];
- mDescription[dsc.length] = StatCollector.translateToLocal("tooltip.bw.1.name") + ChatColorHelper.DARKGREEN + " BartWorks";
- }
- return mDescription;
+ return BW_Tooltip_Reference.getTranslatedBrandedTooltip("tooltip.tile.htr.0.name");
}
@Override
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_Windmill.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_Windmill.java
index 69a20db22c..2bea093f2a 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_Windmill.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_Windmill.java
@@ -26,8 +26,8 @@ import com.github.bartimaeusnek.bartworks.MainMod;
import com.github.bartimaeusnek.bartworks.client.gui.BW_GUIContainer_Windmill;
import com.github.bartimaeusnek.bartworks.common.tileentities.classic.BW_RotorBlock;
import com.github.bartimaeusnek.bartworks.server.container.BW_Container_Windmill;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import com.github.bartimaeusnek.bartworks.util.BW_Util;
-import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@@ -55,7 +55,6 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityDispenser;
import net.minecraft.util.IIcon;
import net.minecraft.util.ResourceLocation;
-import net.minecraft.util.StatCollector;
import net.minecraftforge.common.util.ForgeDirection;
import java.util.Arrays;
@@ -588,13 +587,7 @@ public class GT_TileEntity_Windmill extends GT_MetaTileEntity_MultiBlockBase {
@Override
public String[] getDescription() {
- String[] dsc = StatCollector.translateToLocal("tooltip.tile.windmill.0.name").split(";");
- String[] fdsc = new String[dsc.length + 1];
- for (int i = 0; i < dsc.length; i++) {
- fdsc[i] = dsc[i];
- fdsc[dsc.length] = StatCollector.translateToLocal("tooltip.bw.1.name") + ChatColorHelper.DARKGREEN + " BartWorks";
- }
- return fdsc;
+ return BW_Tooltip_Reference.getTranslatedBrandedTooltip("tooltip.tile.windmill.0.name");
}
@Override
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 86ac7fc73d..233810028f 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
@@ -26,11 +26,11 @@ import com.github.bartimaeusnek.bartworks.API.LoaderReference;
import com.github.bartimaeusnek.bartworks.MainMod;
import com.github.bartimaeusnek.bartworks.common.configs.ConfigHandler;
import com.github.bartimaeusnek.bartworks.common.loaders.ItemRegistry;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import com.github.bartimaeusnek.bartworks.util.BW_Util;
-import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
import com.github.bartimaeusnek.bartworks.util.MegaUtils;
import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti;
-import com.github.bartimaeusnek.crossmod.tectech.TecTechUtils;
+import com.github.bartimaeusnek.crossmod.tectech.helper.TecTechUtils;
import com.github.bartimaeusnek.crossmod.tectech.tileentites.tiered.LowPowerLaser;
import cpw.mods.fml.common.Optional;
import gregtech.api.GregTech_API;
@@ -91,7 +91,7 @@ public class GT_TileEntity_MegaBlastFurnace extends GT_MetaTileEntity_ElectricBl
String[] fdsc = new String[dsc.length + 1];
for (int i = 0; i < dsc.length; i++) {
fdsc[i] = dsc[i];
- fdsc[dsc.length] = StatCollector.translateToLocal("tooltip.bw.1.name") + ChatColorHelper.DARKGREEN + " BartWorks";
+ fdsc[dsc.length] = BW_Tooltip_Reference.ADDED_BY_BARTIMAEUSNEK_VIA_BARTWORKS.get();
}
return fdsc;
}
@@ -448,7 +448,7 @@ public class GT_TileEntity_MegaBlastFurnace extends GT_MetaTileEntity_ElectricBl
return false;
if (LoaderReference.tectech && this.glasTier != 8)
- if (!areLazorsLowPowa() || !areThingsProperlyTiered(this.getTecTechEnergyTunnels()) || !areThingsProperlyTiered(this.getTecTechEnergyMultis()))
+ if (!areLazorsLowPowa() || areThingsNotProperlyTiered(this.getTecTechEnergyTunnels()) || areThingsNotProperlyTiered(this.getTecTechEnergyMultis()))
return false;
if (this.glasTier != 8 && !this.mEnergyHatches.isEmpty())
@@ -461,12 +461,12 @@ public class GT_TileEntity_MegaBlastFurnace extends GT_MetaTileEntity_ElectricBl
@SuppressWarnings("rawtypes")
@Optional.Method(modid = "tectech")
- private boolean areThingsProperlyTiered(Collection collection) {
+ private boolean areThingsNotProperlyTiered(Collection collection) {
if (!collection.isEmpty())
for (Object tecTechEnergyMulti : collection)
if (((GT_MetaTileEntity_TieredMachineBlock) tecTechEnergyMulti).mTier > this.glasTier)
- return false;
- return true;
+ return true;
+ return false;
}
@SuppressWarnings("rawtypes")
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaDistillTower.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaDistillTower.java
index 33434bb9d6..1d565567a5 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaDistillTower.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaDistillTower.java
@@ -23,10 +23,7 @@
package com.github.bartimaeusnek.bartworks.common.tileentities.multis.mega;
import com.github.bartimaeusnek.bartworks.common.configs.ConfigHandler;
-import com.github.bartimaeusnek.bartworks.util.BW_Util;
-import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
-import com.github.bartimaeusnek.bartworks.util.MathUtils;
-import com.github.bartimaeusnek.bartworks.util.MegaUtils;
+import com.github.bartimaeusnek.bartworks.util.*;
import com.google.common.collect.ArrayListMultimap;
import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_Values;
@@ -38,7 +35,6 @@ import gregtech.api.util.GT_Utility;
import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_DistillationTower;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
-import net.minecraft.util.StatCollector;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.FluidStack;
@@ -76,7 +72,7 @@ public class GT_TileEntity_MegaDistillTower extends GT_MetaTileEntity_Distillati
"Fluids are only put out at the correct height",
"The correct height equals the slot number in the NEI recipe",
"Clean Stainless Steel Machine Casings for the rest (15 x h - 5 at least!)",
- StatCollector.translateToLocal("tooltip.bw.1.name") + ChatColorHelper.DARKGREEN + " BartWorks"
+ BW_Tooltip_Reference.ADDED_BY_BARTIMAEUSNEK_VIA_BARTWORKS.get()
};
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaVacuumFreezer.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaVacuumFreezer.java
index 2d553a506e..6a3c6ae7ae 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaVacuumFreezer.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaVacuumFreezer.java
@@ -24,11 +24,11 @@ package com.github.bartimaeusnek.bartworks.common.tileentities.multis.mega;
import com.github.bartimaeusnek.bartworks.API.LoaderReference;
import com.github.bartimaeusnek.bartworks.common.configs.ConfigHandler;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import com.github.bartimaeusnek.bartworks.util.BW_Util;
-import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
import com.github.bartimaeusnek.bartworks.util.MegaUtils;
import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti;
-import com.github.bartimaeusnek.crossmod.tectech.TecTechUtils;
+import com.github.bartimaeusnek.crossmod.tectech.helper.TecTechUtils;
import cpw.mods.fml.common.Optional;
import gregtech.api.GregTech_API;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
@@ -39,7 +39,6 @@ import gregtech.api.util.GT_Utility;
import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_VacuumFreezer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
-import net.minecraft.util.StatCollector;
import java.util.ArrayList;
import java.util.List;
@@ -58,13 +57,7 @@ public class GT_TileEntity_MegaVacuumFreezer extends GT_MetaTileEntity_VacuumFre
}
public String[] getDescription() {
- String[] dsc = StatCollector.translateToLocal("tooltip.tile.mvf.0.name").split(";");
- String[] fdsc = new String[dsc.length + 1];
- for (int i = 0; i < dsc.length; i++) {
- fdsc[i] = dsc[i];
- fdsc[dsc.length] = StatCollector.translateToLocal("tooltip.bw.1.name") + ChatColorHelper.DARKGREEN + " BartWorks";
- }
- return fdsc;
+ return BW_Tooltip_Reference.getTranslatedBrandedTooltip("tooltip.tile.mvf.0.name");
}
@Override
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_AcidGenerator.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_AcidGenerator.java
index 9d17accb06..3188ce4aa1 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_AcidGenerator.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_AcidGenerator.java
@@ -23,6 +23,7 @@
package com.github.bartimaeusnek.bartworks.common.tileentities.tiered;
import com.github.bartimaeusnek.bartworks.util.BWRecipes;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Textures;
@@ -109,6 +110,6 @@ public class GT_MetaTileEntity_AcidGenerator extends GT_MetaTileEntity_BasicGene
}
public String[] getDescription() {
- return new String[]{StatCollector.translateToLocal("tooltip.tile.acidgen.0.name"), StatCollector.translateToLocal("tooltip.tile.acidgen.1.name"), StatCollector.translateToLocal("tooltip.tile.tiereddsc.0.name") + " " + ChatColorHelper.YELLOW + GT_Values.V[this.mTier], StatCollector.translateToLocal("tooltip.rotor.2.name") + " " + ChatColorHelper.YELLOW + this.getEfficiency(), StatCollector.translateToLocal("tooltip.tile.tiereddsc.2.name") + " " + ChatColorHelper.YELLOW + this.maxAmperesOut(), StatCollector.translateToLocal("tooltip.bw.1.name") + ChatColorHelper.DARKGREEN + " BartWorks"};
+ return new String[]{StatCollector.translateToLocal("tooltip.tile.acidgen.0.name"), StatCollector.translateToLocal("tooltip.tile.acidgen.1.name"), StatCollector.translateToLocal("tooltip.tile.tiereddsc.0.name") + " " + ChatColorHelper.YELLOW + GT_Values.V[this.mTier], StatCollector.translateToLocal("tooltip.rotor.2.name") + " " + ChatColorHelper.YELLOW + this.getEfficiency(), StatCollector.translateToLocal("tooltip.tile.tiereddsc.2.name") + " " + ChatColorHelper.YELLOW + this.maxAmperesOut(), BW_Tooltip_Reference.ADDED_BY_BARTIMAEUSNEK_VIA_BARTWORKS.get()};
}
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_BioLab.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_BioLab.java
index fccba2ae65..149c9e09fd 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_BioLab.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_BioLab.java
@@ -268,6 +268,6 @@ public class GT_MetaTileEntity_BioLab extends GT_MetaTileEntity_BasicMachine {
@Override
public String[] getDescription() {
- return new String[]{StatCollector.translateToLocal("tooltip.tile.biolab.0.name"), StatCollector.translateToLocal("tooltip.bw.1.name") + ChatColorHelper.DARKGREEN + " BartWorks"};
+ return new String[]{StatCollector.translateToLocal("tooltip.tile.biolab.0.name"), BW_Tooltip_Reference.ADDED_BY_BARTIMAEUSNEK_VIA_BARTWORKS.get()};
}
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_Diode.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_Diode.java
index 3d82290fac..28e4bd2d7f 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_Diode.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_Diode.java
@@ -23,6 +23,7 @@
package com.github.bartimaeusnek.bartworks.common.tileentities.tiered;
import com.github.bartimaeusnek.bartworks.common.configs.ConfigHandler;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
import gregtech.api.enums.GT_Values;
import gregtech.api.interfaces.ITexture;
@@ -123,6 +124,6 @@ public class GT_MetaTileEntity_Diode extends GT_MetaTileEntity_BasicHull {
@SuppressWarnings("deprecation")
public String[] getDescription() {
- return new String[]{this.mDescription, StatCollector.translateToLocal("tooltip.tile.tiereddsc.0.name") + " " + ChatColorHelper.YELLOW + GT_Values.V[this.mTier], StatCollector.translateToLocal("tooltip.tile.tiereddsc.1.name") + " " + ChatColorHelper.YELLOW + this.maxAmperesIn(), StatCollector.translateToLocal("tooltip.tile.tiereddsc.2.name") + " " + ChatColorHelper.YELLOW + this.maxAmperesOut(), StatCollector.translateToLocal("tooltip.bw.1.name") + ChatColorHelper.DARKGREEN + " BartWorks"};
+ return new String[]{this.mDescription, StatCollector.translateToLocal("tooltip.tile.tiereddsc.0.name") + " " + ChatColorHelper.YELLOW + GT_Values.V[this.mTier], StatCollector.translateToLocal("tooltip.tile.tiereddsc.1.name") + " " + ChatColorHelper.YELLOW + this.maxAmperesIn(), StatCollector.translateToLocal("tooltip.tile.tiereddsc.2.name") + " " + ChatColorHelper.YELLOW + this.maxAmperesOut(), BW_Tooltip_Reference.ADDED_BY_BARTIMAEUSNEK_VIA_BARTWORKS.get()};
}
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_EnergyDistributor.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_EnergyDistributor.java
index eb19af2040..e011d08609 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_EnergyDistributor.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_EnergyDistributor.java
@@ -22,6 +22,7 @@
package com.github.bartimaeusnek.bartworks.common.tileentities.tiered;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
import gregtech.api.enums.GT_Values;
import gregtech.api.interfaces.ITexture;
@@ -70,7 +71,7 @@ public class GT_MetaTileEntity_EnergyDistributor extends GT_MetaTileEntity_Trans
}
public String[] getDescription() {
- return new String[]{StatCollector.translateToLocal("tooltip.tile.energydistributor.0.name"), StatCollector.translateToLocal("tooltip.tile.tiereddsc.0.name") + " " + ChatColorHelper.YELLOW + GT_Values.V[this.mTier], StatCollector.translateToLocal("tooltip.tile.tiereddsc.1.name") + " " + ChatColorHelper.YELLOW + this.maxAmperesIn(), StatCollector.translateToLocal("tooltip.tile.tiereddsc.2.name") + " " + ChatColorHelper.YELLOW + this.maxAmperesOut(), StatCollector.translateToLocal("tooltip.bw.1.name") + ChatColorHelper.DARKGREEN + " BartWorks"};
+ return new String[]{StatCollector.translateToLocal("tooltip.tile.energydistributor.0.name"), StatCollector.translateToLocal("tooltip.tile.tiereddsc.0.name") + " " + ChatColorHelper.YELLOW + GT_Values.V[this.mTier], StatCollector.translateToLocal("tooltip.tile.tiereddsc.1.name") + " " + ChatColorHelper.YELLOW + this.maxAmperesIn(), StatCollector.translateToLocal("tooltip.tile.tiereddsc.2.name") + " " + ChatColorHelper.YELLOW + this.maxAmperesOut(), BW_Tooltip_Reference.ADDED_BY_BARTIMAEUSNEK_VIA_BARTWORKS.get()};
}
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_RadioHatch.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_RadioHatch.java
index 9b6154b4aa..40b6904c02 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_RadioHatch.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_RadioHatch.java
@@ -29,10 +29,9 @@ import com.github.bartimaeusnek.bartworks.MainMod;
import com.github.bartimaeusnek.bartworks.client.gui.GT_GUIContainer_RadioHatch;
import com.github.bartimaeusnek.bartworks.server.container.GT_Container_RadioHatch;
import com.github.bartimaeusnek.bartworks.util.BW_ColorUtil;
-import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import com.github.bartimaeusnek.bartworks.util.MathUtils;
import com.github.bartimaeusnek.crossmod.GTpp.loader.RadioHatchCompat;
-import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.enums.Textures;
@@ -62,7 +61,7 @@ public class GT_MetaTileEntity_RadioHatch extends GT_MetaTileEntity_Hatch {
private byte coverage;
public GT_MetaTileEntity_RadioHatch(int aID, String aName, String aNameRegional, int aTier) {
- super(aID, aName, aNameRegional, aTier, 1, new String[]{StatCollector.translateToLocal("tooltip.tile.radhatch.0.name"), StatCollector.translateToLocal("tooltip.tile.tiereddsc.3.name") + " " + (aTier - 2) + " " + ((aTier - 2) >= 2 ? StatCollector.translateToLocal("tooltip.bw.kg.1.name") : StatCollector.translateToLocal("tooltip.bw.kg.0.name")), StatCollector.translateToLocal("tooltip.tile.radhatch.1.name"), StatCollector.translateToLocal("tooltip.bw.1.name") + ChatColorHelper.DARKGREEN + " BartWorks"});
+ super(aID, aName, aNameRegional, aTier, 1, new String[]{StatCollector.translateToLocal("tooltip.tile.radhatch.0.name"), StatCollector.translateToLocal("tooltip.tile.tiereddsc.3.name") + " " + (aTier - 2) + " " + ((aTier - 2) >= 2 ? StatCollector.translateToLocal("tooltip.bw.kg.1.name") : StatCollector.translateToLocal("tooltip.bw.kg.0.name")), StatCollector.translateToLocal("tooltip.tile.radhatch.1.name"), BW_Tooltip_Reference.ADDED_BY_BARTIMAEUSNEK_VIA_BARTWORKS.get()});
this.cap = aTier - 2;
}
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 677a9af5f7..c54667c431 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
@@ -74,10 +74,10 @@ public class BW_NEI_OreHandler extends TemplateRecipeHandler {
public void loadCraftingRecipes(String outputId, Object... results) {
if (outputId.equalsIgnoreCase("quickanddirtyneihandler")) {
HashSet<ItemStack> result = new HashSet<>();
- Werkstoff.werkstoffHashSet.stream().filter(w -> w.getGenerationFeatures().hasOres()).forEach(w -> result.add(w.get(OrePrefixes.ore)));
+ Werkstoff.werkstoffHashSet.stream().filter(w -> w.hasGenerationFeature(OrePrefixes.ore)).forEach(w -> result.add(w.get(OrePrefixes.ore)));
result.forEach(this::loadCraftingRecipes);
result.clear();
- Werkstoff.werkstoffHashSet.stream().filter(w -> w.getGenerationFeatures().hasOres()).forEach(w -> result.add(w.get(OrePrefixes.oreSmall)));
+ Werkstoff.werkstoffHashSet.stream().filter(w -> w.hasGenerationFeature(OrePrefixes.ore)).forEach(w -> result.add(w.get(OrePrefixes.oreSmall)));
result.forEach(this::loadCraftingRecipes);
result.clear();
HashSet<TemplateRecipeHandler.CachedRecipe> hashSet = new HashSet<>(this.arecipes);
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_GT_MaterialReference.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_GT_MaterialReference.java
new file mode 100644
index 0000000000..f22d9ac470
--- /dev/null
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_GT_MaterialReference.java
@@ -0,0 +1,644 @@
+/*
+ * Copyright (c) 2018-2020 bartimaeusnek
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+package com.github.bartimaeusnek.bartworks.system.material;
+
+import com.github.bartimaeusnek.bartworks.MainMod;
+import gregtech.api.enums.Materials;
+import static com.github.bartimaeusnek.bartworks.system.material.Werkstoff.Types.*;
+
+public class BW_GT_MaterialReference {
+ private static final Werkstoff.GenerationFeatures ADD_CASINGS_ONLY = new Werkstoff.GenerationFeatures().disable().addCasings();
+
+ public static Werkstoff Aluminium = new Werkstoff(Materials.Aluminium, ADD_CASINGS_ONLY, ELEMENT,31_766+19);
+ public static Werkstoff Americium = new Werkstoff(Materials.Americium, ADD_CASINGS_ONLY, ELEMENT,31_766+103);
+ public static Werkstoff Antimony = new Werkstoff(Materials.Antimony, ADD_CASINGS_ONLY, ELEMENT, 31_766+58);
+// public static Werkstoff Argon = new Werkstoff(Materials.Argon, ADD_CASINGS_ONLY, ELEMENT, 31_766+24);
+ public static Werkstoff Arsenic = new Werkstoff(Materials.Arsenic, ADD_CASINGS_ONLY, ELEMENT, 31_766+39);
+ public static Werkstoff Barium = new Werkstoff(Materials.Barium, ADD_CASINGS_ONLY, ELEMENT, 31_766+63);
+ public static Werkstoff Beryllium = new Werkstoff(Materials.Beryllium, ADD_CASINGS_ONLY, ELEMENT, 31_766+8);
+ public static Werkstoff Bismuth = new Werkstoff(Materials.Bismuth, ADD_CASINGS_ONLY, ELEMENT, 31_766+90);
+ public static Werkstoff Boron = new Werkstoff(Materials.Boron, ADD_CASINGS_ONLY, ELEMENT, 31_766+9);
+ public static Werkstoff Caesium = new Werkstoff(Materials.Caesium, ADD_CASINGS_ONLY, ELEMENT, 31_766+62);
+// public static Werkstoff Calcium = new Werkstoff(Materials.Calcium, ADD_CASINGS_ONLY, ELEMENT, 31_766+26);
+ public static Werkstoff Carbon = new Werkstoff(Materials.Carbon, ADD_CASINGS_ONLY, ELEMENT, 31_766+10);
+ public static Werkstoff Cadmium = new Werkstoff(Materials.Cadmium, ADD_CASINGS_ONLY, ELEMENT, 31_766+55);
+ public static Werkstoff Cerium = new Werkstoff(Materials.Cerium, ADD_CASINGS_ONLY, ELEMENT, 31_766+65);
+// public static Werkstoff Chlorine = new Werkstoff(Materials.Chlorine, ADD_CASINGS_ONLY, ELEMENT, 31_766+23);
+ public static Werkstoff Chrome = new Werkstoff(Materials.Chrome, ADD_CASINGS_ONLY, ELEMENT, 31_766+30);
+ public static Werkstoff Cobalt = new Werkstoff(Materials.Cobalt, ADD_CASINGS_ONLY, ELEMENT, 31_766+33);
+ public static Werkstoff Copper = new Werkstoff(Materials.Copper, ADD_CASINGS_ONLY, ELEMENT, 31_766+35);
+// public static Werkstoff Deuterium = new Werkstoff(Materials.Deuterium, ADD_CASINGS_ONLY, ELEMENT, 31_766+2);
+ public static Werkstoff Dysprosium = new Werkstoff(Materials.Dysprosium, ADD_CASINGS_ONLY, ELEMENT, 31_766+73);
+// public static Werkstoff Empty = new Werkstoff(Materials.Empty, ADD_CASINGS_ONLY, ELEMENT, 31_766+0);
+ public static Werkstoff Erbium = new Werkstoff(Materials.Erbium, ADD_CASINGS_ONLY, ELEMENT, 31_766+75);
+ public static Werkstoff Europium = new Werkstoff(Materials.Europium, ADD_CASINGS_ONLY, ELEMENT, 31_766+70);
+// public static Werkstoff Fluorine = new Werkstoff(Materials.Fluorine, ADD_CASINGS_ONLY, ELEMENT, 31_766+14);
+ public static Werkstoff Gadolinium = new Werkstoff(Materials.Gadolinium, ADD_CASINGS_ONLY, ELEMENT, 31_766+71);
+ public static Werkstoff Gallium = new Werkstoff(Materials.Gallium, ADD_CASINGS_ONLY, ELEMENT, 31_766+37);
+ public static Werkstoff Gold = new Werkstoff(Materials.Gold, ADD_CASINGS_ONLY, ELEMENT, 31_766+86);
+ public static Werkstoff Holmium = new Werkstoff(Materials.Holmium, ADD_CASINGS_ONLY, ELEMENT, 31_766+74);
+// public static Werkstoff Hydrogen = new Werkstoff(Materials.Hydrogen, ADD_CASINGS_ONLY, ELEMENT, 31_766+1);
+// public static Werkstoff Helium = new Werkstoff(Materials.Helium, ADD_CASINGS_ONLY, ELEMENT, 31_766+4);
+// public static Werkstoff Helium_3 = new Werkstoff(Materials.Helium_3, ADD_CASINGS_ONLY, ELEMENT, 31_766+5);
+ public static Werkstoff Indium = new Werkstoff(Materials.Indium, ADD_CASINGS_ONLY, ELEMENT, 31_766+56);
+ public static Werkstoff Iridium = new Werkstoff(Materials.Iridium, ADD_CASINGS_ONLY, ELEMENT, 31_766+84);
+ public static Werkstoff Iron = new Werkstoff(Materials.Iron, ADD_CASINGS_ONLY, ELEMENT, 31_766+32);
+ public static Werkstoff Lanthanum = new Werkstoff(Materials.Lanthanum, ADD_CASINGS_ONLY, ELEMENT, 31_766+64);
+ public static Werkstoff Lead = new Werkstoff(Materials.Lead, ADD_CASINGS_ONLY, ELEMENT, 31_766+89);
+ public static Werkstoff Lithium = new Werkstoff(Materials.Lithium, ADD_CASINGS_ONLY, ELEMENT, 31_766+6);
+ public static Werkstoff Lutetium = new Werkstoff(Materials.Lutetium, ADD_CASINGS_ONLY, ELEMENT, 31_766+78);
+ public static Werkstoff Magnesium = new Werkstoff(Materials.Magnesium, ADD_CASINGS_ONLY, ELEMENT, 31_766+18);
+ public static Werkstoff Manganese = new Werkstoff(Materials.Manganese, ADD_CASINGS_ONLY, ELEMENT, 31_766+31);
+// public static Werkstoff Mercury = new Werkstoff(Materials.Mercury, ADD_CASINGS_ONLY, ELEMENT, 31_766+87);
+ public static Werkstoff Molybdenum = new Werkstoff(Materials.Molybdenum, ADD_CASINGS_ONLY, ELEMENT, 31_766+48);
+ public static Werkstoff Neodymium = new Werkstoff(Materials.Neodymium, ADD_CASINGS_ONLY, ELEMENT, 31_766+67);
+ public static Werkstoff Neutronium = new Werkstoff(Materials.Neutronium, ADD_CASINGS_ONLY, ELEMENT,31_766+129);
+ public static Werkstoff Nickel = new Werkstoff(Materials.Nickel, ADD_CASINGS_ONLY, ELEMENT, 31_766+34);
+ public static Werkstoff Niobium = new Werkstoff(Materials.Niobium, ADD_CASINGS_ONLY, ELEMENT, 31_766+47);
+// public static Werkstoff Nitrogen = new Werkstoff(Materials.Nitrogen, ADD_CASINGS_ONLY, ELEMENT, 31_766+12);
+ public static Werkstoff Osmium = new Werkstoff(Materials.Osmium, ADD_CASINGS_ONLY, ELEMENT, 31_766+83);
+// public static Werkstoff Oxygen = new Werkstoff(Materials.Oxygen, ADD_CASINGS_ONLY, ELEMENT, 31_766+13);
+ public static Werkstoff Palladium = new Werkstoff(Materials.Palladium, ADD_CASINGS_ONLY, ELEMENT, 31_766+52);
+ public static Werkstoff Phosphorus = new Werkstoff(Materials.Phosphorus, ADD_CASINGS_ONLY, ELEMENT, 31_766+21);
+ public static Werkstoff Platinum = new Werkstoff(Materials.Platinum, ADD_CASINGS_ONLY, ELEMENT, 31_766+85);
+ public static Werkstoff Plutonium = new Werkstoff(Materials.Plutonium, ADD_CASINGS_ONLY, ELEMENT,31_766+100);
+ public static Werkstoff Plutonium241 = new Werkstoff(Materials.Plutonium241, ADD_CASINGS_ONLY, ISOTOPE,31_766+101);
+ public static Werkstoff Potassium = new Werkstoff(Materials.Potassium, ADD_CASINGS_ONLY, ELEMENT, 31_766+25);
+ public static Werkstoff Praseodymium = new Werkstoff(Materials.Praseodymium, ADD_CASINGS_ONLY, ELEMENT, 31_766+66);
+ public static Werkstoff Promethium = new Werkstoff(Materials.Promethium, ADD_CASINGS_ONLY, ELEMENT, 31_766+68);
+// public static Werkstoff Radon = new Werkstoff(Materials.Radon, ADD_CASINGS_ONLY, ELEMENT, 31_766+93);
+ public static Werkstoff Rubidium = new Werkstoff(Materials.Rubidium, ADD_CASINGS_ONLY, ELEMENT, 31_766+43);
+ public static Werkstoff Samarium = new Werkstoff(Materials.Samarium, ADD_CASINGS_ONLY, ELEMENT, 31_766+69);
+ public static Werkstoff Scandium = new Werkstoff(Materials.Scandium, ADD_CASINGS_ONLY, ELEMENT, 31_766+27);
+ public static Werkstoff Silicon = new Werkstoff(Materials.Silicon, ADD_CASINGS_ONLY, ELEMENT, 31_766+20);
+ public static Werkstoff Silver = new Werkstoff(Materials.Silver, ADD_CASINGS_ONLY, ELEMENT, 31_766+54);
+ public static Werkstoff Sodium = new Werkstoff(Materials.Sodium, ADD_CASINGS_ONLY, ELEMENT, 31_766+17);
+ public static Werkstoff Strontium = new Werkstoff(Materials.Strontium, ADD_CASINGS_ONLY, ELEMENT, 31_766+44);
+ public static Werkstoff Sulfur = new Werkstoff(Materials.Sulfur, ADD_CASINGS_ONLY, ELEMENT, 31_766+22);
+ public static Werkstoff Tantalum = new Werkstoff(Materials.Tantalum, ADD_CASINGS_ONLY, ELEMENT, 31_766+80);
+// public static Werkstoff Tellurium = new Werkstoff(Materials.Tellurium, ADD_CASINGS_ONLY, ELEMENT, 31_766+59);
+ public static Werkstoff Terbium = new Werkstoff(Materials.Terbium, ADD_CASINGS_ONLY, ELEMENT, 31_766+72);
+ public static Werkstoff Thorium = new Werkstoff(Materials.Thorium, ADD_CASINGS_ONLY, ELEMENT, 31_766+96);
+ public static Werkstoff Thulium = new Werkstoff(Materials.Thulium, ADD_CASINGS_ONLY, ELEMENT, 31_766+76);
+ public static Werkstoff Tin = new Werkstoff(Materials.Tin, ADD_CASINGS_ONLY, ELEMENT, 31_766+57);
+ public static Werkstoff Titanium = new Werkstoff(Materials.Titanium, ADD_CASINGS_ONLY, ELEMENT, 31_766+28);
+ public static Werkstoff Tritanium = new Werkstoff(Materials.Tritanium, ADD_CASINGS_ONLY, ELEMENT,31_766+329);
+ public static Werkstoff Tritium = new Werkstoff(Materials.Tritium, ADD_CASINGS_ONLY, ELEMENT, 31_766+3);
+ public static Werkstoff Tungsten = new Werkstoff(Materials.Tungsten, ADD_CASINGS_ONLY, ELEMENT, 31_766+81);
+ public static Werkstoff Uranium = new Werkstoff(Materials.Uranium, ADD_CASINGS_ONLY, ELEMENT, 31_766+98);
+ public static Werkstoff Uranium235 = new Werkstoff(Materials.Uranium235, ADD_CASINGS_ONLY, ISOTOPE, 31_766+97);
+ public static Werkstoff Vanadium = new Werkstoff(Materials.Vanadium, ADD_CASINGS_ONLY, ELEMENT, 31_766+29);
+ public static Werkstoff Ytterbium = new Werkstoff(Materials.Ytterbium, ADD_CASINGS_ONLY, ELEMENT, 31_766+77);
+ public static Werkstoff Yttrium = new Werkstoff(Materials.Yttrium, ADD_CASINGS_ONLY, ELEMENT, 31_766+45);
+ public static Werkstoff Zinc = new Werkstoff(Materials.Zinc, ADD_CASINGS_ONLY, ELEMENT, 31_766+36);
+ public static Werkstoff Ardite = new Werkstoff(Materials.Ardite, ADD_CASINGS_ONLY, ELEMENT,31_766+382);
+ public static Werkstoff Naquadah = new Werkstoff(Materials.Naquadah, ADD_CASINGS_ONLY, ELEMENT,31_766+324);
+ public static Werkstoff NaquadahAlloy = new Werkstoff(Materials.NaquadahAlloy, ADD_CASINGS_ONLY, COMPOUND,31_766+325);
+ public static Werkstoff NaquadahEnriched = new Werkstoff(Materials.NaquadahEnriched, ADD_CASINGS_ONLY, ISOTOPE,31_766+326);
+ public static Werkstoff Naquadria = new Werkstoff(Materials.Naquadria, ADD_CASINGS_ONLY, ELEMENT,31_766+327);
+ public static Werkstoff WroughtIron = new Werkstoff(Materials.WroughtIron, ADD_CASINGS_ONLY, ISOTOPE,31_766+304);
+ public static Werkstoff AnnealedCopper = new Werkstoff(Materials.AnnealedCopper, ADD_CASINGS_ONLY, ISOTOPE,31_766+345);
+
+ public static Werkstoff Osmiridium = new Werkstoff(Materials.Osmiridium, ADD_CASINGS_ONLY, MIXTURE,31_766+317);
+ public static Werkstoff SterlingSilver = new Werkstoff(Materials.SterlingSilver, ADD_CASINGS_ONLY, MIXTURE,31_766+350);
+ public static Werkstoff RoseGold = new Werkstoff(Materials.RoseGold, ADD_CASINGS_ONLY, MIXTURE,31_766+351);
+ public static Werkstoff BlackBronze = new Werkstoff(Materials.BlackBronze, ADD_CASINGS_ONLY, MIXTURE,31_766+352);
+ public static Werkstoff BismuthBronze = new Werkstoff(Materials.BismuthBronze, ADD_CASINGS_ONLY, MIXTURE,31_766+353);
+ public static Werkstoff BlackSteel = new Werkstoff(Materials.BlackSteel, ADD_CASINGS_ONLY, MIXTURE,31_766+334);
+ public static Werkstoff RedSteel = new Werkstoff(Materials.RedSteel, ADD_CASINGS_ONLY, MIXTURE,31_766+348);
+ public static Werkstoff BlueSteel = new Werkstoff(Materials.BlueSteel, ADD_CASINGS_ONLY, MIXTURE,31_766+349);
+ public static Werkstoff DamascusSteel = new Werkstoff(Materials.DamascusSteel, ADD_CASINGS_ONLY, MIXTURE,31_766+335);
+ public static Werkstoff TungstenSteel = new Werkstoff(Materials.TungstenSteel, ADD_CASINGS_ONLY, MIXTURE,31_766+316);
+ public static Werkstoff Ultimet = new Werkstoff(Materials.Ultimet, ADD_CASINGS_ONLY, MIXTURE,31_766+344);
+ public static Werkstoff TungstenCarbide = new Werkstoff(Materials.TungstenCarbide, ADD_CASINGS_ONLY, MIXTURE,31_766+370);
+ public static Werkstoff VanadiumSteel = new Werkstoff(Materials.VanadiumSteel, ADD_CASINGS_ONLY, MIXTURE,31_766+371);
+ public static Werkstoff HSSG = new Werkstoff(Materials.HSSG, ADD_CASINGS_ONLY, MIXTURE,31_766+372);
+ public static Werkstoff HSSE = new Werkstoff(Materials.HSSE, ADD_CASINGS_ONLY, MIXTURE,31_766+373);
+ public static Werkstoff HSSS = new Werkstoff(Materials.HSSS, ADD_CASINGS_ONLY, MIXTURE,31_766+374);
+ public static Werkstoff StainlessSteel = new Werkstoff(Materials.StainlessSteel, ADD_CASINGS_ONLY, MIXTURE,31_766+306);
+ public static Werkstoff Brass = new Werkstoff(Materials.Brass, ADD_CASINGS_ONLY, MIXTURE,31_766+301);
+ public static Werkstoff Bronze = new Werkstoff(Materials.Bronze, ADD_CASINGS_ONLY, MIXTURE,31_766+300);
+
+ public static Werkstoff Wood = new Werkstoff(Materials.Wood, ADD_CASINGS_ONLY, BIOLOGICAL,31_766+809);
+ // public static Werkstoff WoodSealed = new Werkstoff(Materials.WoodSealed, ADD_CASINGS_ONLY, BIOLOGICAL,31_766+889);
+ public static Werkstoff Cheese = new Werkstoff(Materials.Cheese, new Werkstoff.GenerationFeatures().addCasings().addMetalItems().addMultipleIngotMetalWorkingItems().enforceUnification(), BIOLOGICAL,31_766+894);
+
+ public static Werkstoff Steel = new Werkstoff(Materials.Steel, ADD_CASINGS_ONLY, COMPOUND,31_766+305);
+ public static Werkstoff Polytetrafluoroethylene = new Werkstoff(Materials.Polytetrafluoroethylene, ADD_CASINGS_ONLY, COMPOUND,31_766+473);
+ public static Werkstoff Plastic = new Werkstoff(Materials.Plastic, ADD_CASINGS_ONLY, COMPOUND,31_766+874);
+ public static Werkstoff Epoxid = new Werkstoff(Materials.Epoxid, ADD_CASINGS_ONLY, COMPOUND,31_766+470);
+
+ public static void init() {
+ MainMod.LOGGER.info("Load Elements from GT");
+ }
+
+// TODO: GT++ only?
+
+// public static Werkstoff Flerovium = new Werkstoff(Materials.Flerovium, <GenerationFeatures>, <TypeRef>,31_766+984);
+
+// public static Werkstoff HeeEndium = new Werkstoff(Materials.HeeEndium, <GenerationFeatures>, <TypeRef>,31_766+770);
+// public static Werkstoff PlatinumGroupSludge = new Werkstoff(Materials.PlatinumGroupSludge, <GenerationFeatures>, <TypeRef>,31_766+241);
+// public static Werkstoff Draconium = new Werkstoff(Materials.Draconium, <GenerationFeatures>, <TypeRef>,31_766+975);
+// public static Werkstoff DraconiumAwakened = new Werkstoff(Materials.DraconiumAwakened, <GenerationFeatures>, <TypeRef>,31_766+976);
+// public static Werkstoff Adamantium = new Werkstoff(Materials.Adamantium, <GenerationFeatures>, <TypeRef>,31_766+319);
+// public static Werkstoff Alduorite = new Werkstoff(Materials.Alduorite, <GenerationFeatures>, <TypeRef>,31_766+485);
+// public static Werkstoff Amber = new Werkstoff(Materials.Amber, <GenerationFeatures>, <TypeRef>,31_766+514);
+// public static Werkstoff Angmallen = new Werkstoff(Materials.Angmallen, <GenerationFeatures>, <TypeRef>,31_766+958);
+
+// public static Werkstoff Atlarus = new Werkstoff(Materials.Atlarus, <GenerationFeatures>, <TypeRef>,31_766+965);
+// public static Werkstoff Blizz = new Werkstoff(Materials.Blizz, <GenerationFeatures>, <TypeRef>,31_766+851);
+// public static Werkstoff Blueschist = new Werkstoff(Materials.Blueschist, <GenerationFeatures>, <TypeRef>,31_766+852);
+// public static Werkstoff Bluestone = new Werkstoff(Materials.Bluestone, <GenerationFeatures>, <TypeRef>,31_766+813);
+// public static Werkstoff Carmot = new Werkstoff(Materials.Carmot, <GenerationFeatures>, <TypeRef>,31_766+962);
+// public static Werkstoff Celenegil = new Werkstoff(Materials.Celenegil, <GenerationFeatures>, <TypeRef>,31_766+964);
+// public static Werkstoff CertusQuartz = new Werkstoff(Materials.CertusQuartz, <GenerationFeatures>, <TypeRef>,31_766+516);
+// public static Werkstoff Ceruclase = new Werkstoff(Materials.Ceruclase, <GenerationFeatures>, <TypeRef>,31_766+952);
+// public static Werkstoff CobaltHexahydrate = new Werkstoff(Materials.CobaltHexahydrate, <GenerationFeatures>, <TypeRef>,31_766+853);
+// public static Werkstoff ConstructionFoam = new Werkstoff(Materials.ConstructionFoam, <GenerationFeatures>, <TypeRef>,31_766+854);
+// public static Werkstoff Chert = new Werkstoff(Materials.Chert, <GenerationFeatures>, <TypeRef>,31_766+857);
+// public static Werkstoff CrudeOil = new Werkstoff(Materials.CrudeOil, <GenerationFeatures>, <TypeRef>,31_766+858);
+// public static Werkstoff Dacite = new Werkstoff(Materials.Dacite, <GenerationFeatures>, <TypeRef>,31_766+859);
+// public static Werkstoff DarkIron = new Werkstoff(Materials.DarkIron, <GenerationFeatures>, <TypeRef>,31_766+342);
+// public static Werkstoff Desh = new Werkstoff(Materials.Desh, <GenerationFeatures>, <TypeRef>,31_766+884);
+// public static Werkstoff Dilithium = new Werkstoff(Materials.Dilithium, <GenerationFeatures>, <TypeRef>,31_766+515);
+// public static Werkstoff Duranium = new Werkstoff(Materials.Duranium, <GenerationFeatures>, <TypeRef>,31_766+328);
+// public static Werkstoff Eclogite = new Werkstoff(Materials.Eclogite, <GenerationFeatures>, <TypeRef>,31_766+860);
+// public static Werkstoff ElectrumFlux = new Werkstoff(Materials.ElectrumFlux, <GenerationFeatures>, <TypeRef>,31_766+320);
+// public static Werkstoff Emery = new Werkstoff(Materials.Emery, <GenerationFeatures>, <TypeRef>,31_766+861);
+// public static Werkstoff EnderiumBase = new Werkstoff(Materials.EnderiumBase, <GenerationFeatures>, <TypeRef>,31_766+380);
+// public static Werkstoff Epidote = new Werkstoff(Materials.Epidote, <GenerationFeatures>, <TypeRef>,31_766+862);
+// public static Werkstoff Eximite = new Werkstoff(Materials.Eximite, <GenerationFeatures>, <TypeRef>,31_766+959);
+// public static Werkstoff FierySteel = new Werkstoff(Materials.FierySteel, <GenerationFeatures>, <TypeRef>,31_766+346);
+// public static Werkstoff Firestone = new Werkstoff(Materials.Firestone, <GenerationFeatures>, <TypeRef>,31_766+347);
+// public static Werkstoff FoolsRuby = new Werkstoff(Materials.FoolsRuby, <GenerationFeatures>, <TypeRef>,31_766+512);
+// public static Werkstoff Force = new Werkstoff(Materials.Force, <GenerationFeatures>, <TypeRef>,31_766+521);
+// public static Werkstoff Forcicium = new Werkstoff(Materials.Forcicium, <GenerationFeatures>, <TypeRef>,31_766+518);
+// public static Werkstoff Forcillium = new Werkstoff(Materials.Forcillium, <GenerationFeatures>, <TypeRef>,31_766+519);
+// public static Werkstoff Gabbro = new Werkstoff(Materials.Gabbro, <GenerationFeatures>, <TypeRef>,31_766+863);
+// public static Werkstoff Glowstone = new Werkstoff(Materials.Glowstone, <GenerationFeatures>, <TypeRef>,31_766+811);
+// public static Werkstoff Gneiss = new Werkstoff(Materials.Gneiss, <GenerationFeatures>, <TypeRef>,31_766+864);
+// public static Werkstoff Graphite = new Werkstoff(Materials.Graphite, <GenerationFeatures>, <TypeRef>,31_766+865);
+// public static Werkstoff Graphene = new Werkstoff(Materials.Graphene, <GenerationFeatures>, <TypeRef>,31_766+819);
+// public static Werkstoff Greenschist = new Werkstoff(Materials.Greenschist, <GenerationFeatures>, <TypeRef>,31_766+866);
+// public static Werkstoff Greenstone = new Werkstoff(Materials.Greenstone, <GenerationFeatures>, <TypeRef>,31_766+867);
+// public static Werkstoff Greywacke = new Werkstoff(Materials.Greywacke, <GenerationFeatures>, <TypeRef>,31_766+897);
+// public static Werkstoff Haderoth = new Werkstoff(Materials.Haderoth, <GenerationFeatures>, <TypeRef>,31_766+963);
+// public static Werkstoff Hepatizon = new Werkstoff(Materials.Hepatizon, <GenerationFeatures>, <TypeRef>,31_766+957);
+// public static Werkstoff HSLA = new Werkstoff(Materials.HSLA, <GenerationFeatures>, <TypeRef>,31_766+322);
+// public static Werkstoff Ignatius = new Werkstoff(Materials.Ignatius, <GenerationFeatures>, <TypeRef>,31_766+950);
+// public static Werkstoff Infuscolium = new Werkstoff(Materials.Infuscolium, <GenerationFeatures>, <TypeRef>,31_766+490);
+// public static Werkstoff InfusedGold = new Werkstoff(Materials.InfusedGold, <GenerationFeatures>, <TypeRef>,31_766+323);
+// public static Werkstoff InfusedAir = new Werkstoff(Materials.InfusedAir, <GenerationFeatures>, <TypeRef>,31_766+540);
+// public static Werkstoff InfusedFire = new Werkstoff(Materials.InfusedFire, <GenerationFeatures>, <TypeRef>,31_766+541);
+// public static Werkstoff InfusedEarth = new Werkstoff(Materials.InfusedEarth, <GenerationFeatures>, <TypeRef>,31_766+542);
+// public static Werkstoff InfusedWater = new Werkstoff(Materials.InfusedWater, <GenerationFeatures>, <TypeRef>,31_766+543);
+// public static Werkstoff InfusedEntropy = new Werkstoff(Materials.InfusedEntropy, <GenerationFeatures>, <TypeRef>,31_766+544);
+// public static Werkstoff InfusedOrder = new Werkstoff(Materials.InfusedOrder, <GenerationFeatures>, <TypeRef>,31_766+545);
+// public static Werkstoff Inolashite = new Werkstoff(Materials.Inolashite, <GenerationFeatures>, <TypeRef>,31_766+954);
+// public static Werkstoff Jade = new Werkstoff(Materials.Jade, <GenerationFeatures>, <TypeRef>,31_766+537);
+// public static Werkstoff Jasper = new Werkstoff(Materials.Jasper, <GenerationFeatures>, <TypeRef>,31_766+511);
+// public static Werkstoff Kalendrite = new Werkstoff(Materials.Kalendrite, <GenerationFeatures>, <TypeRef>,31_766+953);
+// public static Werkstoff Komatiite = new Werkstoff(Materials.Komatiite, <GenerationFeatures>, <TypeRef>,31_766+869);
+// public static Werkstoff Lava = new Werkstoff(Materials.Lava, <GenerationFeatures>, <TypeRef>,31_766+700);
+// public static Werkstoff Lemurite = new Werkstoff(Materials.Lemurite, <GenerationFeatures>, <TypeRef>,31_766+486);
+// public static Werkstoff MeteoricIron = new Werkstoff(Materials.MeteoricIron, <GenerationFeatures>, <TypeRef>,31_766+340);
+// public static Werkstoff MeteoricSteel = new Werkstoff(Materials.MeteoricSteel, <GenerationFeatures>, <TypeRef>,31_766+341);
+// public static Werkstoff Meutoite = new Werkstoff(Materials.Meutoite, <GenerationFeatures>, <TypeRef>,31_766+487);
+// public static Werkstoff Migmatite = new Werkstoff(Materials.Migmatite, <GenerationFeatures>, <TypeRef>,31_766+872);
+
+// public static Werkstoff NetherBrick = new Werkstoff(Materials.NetherBrick, <GenerationFeatures>, <TypeRef>,31_766+814);
+// public static Werkstoff NetherQuartz = new Werkstoff(Materials.NetherQuartz, <GenerationFeatures>, <TypeRef>,31_766+522);
+// public static Werkstoff NetherStar = new Werkstoff(Materials.NetherStar, <GenerationFeatures>, <TypeRef>,31_766+506);
+// public static Werkstoff Oilsands = new Werkstoff(Materials.Oilsands, <GenerationFeatures>, <TypeRef>,31_766+878);
+// public static Werkstoff Orichalcum = new Werkstoff(Materials.Orichalcum, <GenerationFeatures>, <TypeRef>,31_766+966);
+// public static Werkstoff Oureclase = new Werkstoff(Materials.Oureclase, <GenerationFeatures>, <TypeRef>,31_766+961);
+// public static Werkstoff Prometheum = new Werkstoff(Materials.Prometheum, <GenerationFeatures>, <TypeRef>,31_766+960);
+// public static Werkstoff Quartzite = new Werkstoff(Materials.Quartzite, <GenerationFeatures>, <TypeRef>,31_766+523);
+// public static Werkstoff Rhyolite = new Werkstoff(Materials.Rhyolite, <GenerationFeatures>, <TypeRef>,31_766+875);
+// public static Werkstoff Rubracium = new Werkstoff(Materials.Rubracium, <GenerationFeatures>, <TypeRef>,31_766+488);
+// public static Werkstoff Sanguinite = new Werkstoff(Materials.Sanguinite, <GenerationFeatures>, <TypeRef>,31_766+955);
+// public static Werkstoff Siltstone = new Werkstoff(Materials.Siltstone, <GenerationFeatures>, <TypeRef>,31_766+876);
+// public static Werkstoff Tartarite = new Werkstoff(Materials.Tartarite, <GenerationFeatures>, <TypeRef>,31_766+956);
+// public static Werkstoff UUAmplifier = new Werkstoff(Materials.UUAmplifier, <GenerationFeatures>, <TypeRef>,31_766+721);
+// public static Werkstoff UUMatter = new Werkstoff(Materials.UUMatter, <GenerationFeatures>, <TypeRef>,31_766+703);
+// public static Werkstoff Void = new Werkstoff(Materials.Void, <GenerationFeatures>, <TypeRef>,31_766+970);
+// public static Werkstoff Vulcanite = new Werkstoff(Materials.Vulcanite, <GenerationFeatures>, <TypeRef>,31_766+489);
+// public static Werkstoff Vyroxeres = new Werkstoff(Materials.Vyroxeres, <GenerationFeatures>, <TypeRef>,31_766+951);
+// public static Werkstoff BioFuel = new Werkstoff(Materials.BioFuel, <GenerationFeatures>, <TypeRef>,31_766+705);
+// public static Werkstoff Biomass = new Werkstoff(Materials.Biomass, <GenerationFeatures>, <TypeRef>,31_766+704);
+// public static CharcoalByproducts = new MaterialBuilder
+
+// public static Werkstoff Chili = new Werkstoff(Materials.Chili, <GenerationFeatures>, <TypeRef>,31_766+895);
+// public static Werkstoff Chocolate = new Werkstoff(Materials.Chocolate, <GenerationFeatures>, <TypeRef>,31_766+886);
+// public static Werkstoff CoalFuel = new Werkstoff(Materials.CoalFuel, <GenerationFeatures>, <TypeRef>,31_766+710);
+// public static Werkstoff Cocoa = new Werkstoff(Materials.Cocoa, <GenerationFeatures>, <TypeRef>,31_766+887);
+// public static Werkstoff Coffee = new Werkstoff(Materials.Coffee, <GenerationFeatures>, <TypeRef>,31_766+888);
+// public static Werkstoff Creosote = new Werkstoff(Materials.Creosote, <GenerationFeatures>, <TypeRef>,31_766+712);
+// public static Werkstoff Ethanol = new Werkstoff(Materials.Ethanol, <GenerationFeatures>, <TypeRef>,31_766+706);
+// public static FermentedBiomass = new MaterialBuilder
+// public static Werkstoff Fuel = new Werkstoff(Materials.Fuel, <GenerationFeatures>, <TypeRef>,31_766+708);
+// public static Werkstoff Glue = new Werkstoff(Materials.Glue, <GenerationFeatures>, <TypeRef>,31_766+726);
+// public static Werkstoff Gunpowder = new Werkstoff(Materials.Gunpowder, <GenerationFeatures>, <TypeRef>,31_766+800);
+// public static Werkstoff FryingOilHot = new Werkstoff(Materials.FryingOilHot, <GenerationFeatures>, <TypeRef>,31_766+727);
+// public static Werkstoff Honey = new Werkstoff(Materials.Honey, <GenerationFeatures>, <TypeRef>,31_766+725);
+// public static Werkstoff Lubricant = new Werkstoff(Materials.Lubricant, <GenerationFeatures>, <TypeRef>,31_766+724);
+// public static Werkstoff McGuffium239 = new Werkstoff(Materials.McGuffium239, <GenerationFeatures>, <TypeRef>,31_766+999);
+// public static Werkstoff MeatRaw = new Werkstoff(Materials.MeatRaw, <GenerationFeatures>, <TypeRef>,31_766+892);
+// public static Werkstoff MeatCooked = new Werkstoff(Materials.MeatCooked, <GenerationFeatures>, <TypeRef>,31_766+893);
+// public static Werkstoff Milk = new Werkstoff(Materials.Milk, <GenerationFeatures>, <TypeRef>,31_766+885);
+// public static Werkstoff Oil = new Werkstoff(Materials.Oil, <GenerationFeatures>, <TypeRef>,31_766+707);
+// public static Werkstoff Paper = new Werkstoff(Materials.Paper, <GenerationFeatures>, <TypeRef>,31_766+879);
+// public static Werkstoff RareEarth = new Werkstoff(Materials.RareEarth, <GenerationFeatures>, <TypeRef>,31_766+891);
+// public static Werkstoff Reinforced = new Werkstoff(Materials.Reinforced, <GenerationFeatures>, <TypeRef>,31_766+383);
+// public static Werkstoff SeedOil = new Werkstoff(Materials.SeedOil, <GenerationFeatures>, <TypeRef>,31_766+713);
+// public static Werkstoff SeedOilHemp = new Werkstoff(Materials.SeedOilHemp, <GenerationFeatures>, <TypeRef>,31_766+722);
+// public static Werkstoff SeedOilLin = new Werkstoff(Materials.SeedOilLin, <GenerationFeatures>, <TypeRef>,31_766+723);
+// public static Werkstoff Stone = new Werkstoff(Materials.Stone, <GenerationFeatures>, <TypeRef>,31_766+299);
+// public static Werkstoff Unstable = new Werkstoff(Materials.Unstable, <GenerationFeatures>, <TypeRef>,31_766+396);
+// public static Vinegar = new MaterialBuilder
+// public static Werkstoff Wheat = new Werkstoff(Materials.Wheat, <GenerationFeatures>, <TypeRef>,31_766+881);
+// public static WoodGas = new MaterialBuilder
+// public static WoodTar = new MaterialBuilder
+// public static WoodVinegar = new MaterialBuilder
+
+// public static Werkstoff Sunnarium = new Werkstoff(Materials.Sunnarium, <GenerationFeatures>, <TypeRef>,31_766+318);
+// public static Werkstoff Endstone = new Werkstoff(Materials.Endstone, <GenerationFeatures>, <TypeRef>,31_766+808);
+// public static Werkstoff Netherrack = new Werkstoff(Materials.Netherrack, <GenerationFeatures>, <TypeRef>,31_766+807);
+// public static Werkstoff Methane = new Werkstoff(Materials.Methane, <GenerationFeatures>, <TypeRef>,31_766+715);
+// public static Werkstoff CarbonDioxide = new Werkstoff(Materials.CarbonDioxide, <GenerationFeatures>, <TypeRef>,31_766+497);
+// public static Werkstoff NobleGases = new Werkstoff(Materials.NobleGases, <GenerationFeatures>, <TypeRef>,31_766+496);
+// public static Werkstoff LiquidAir = new Werkstoff(Materials.LiquidAir, <GenerationFeatures>, <TypeRef>,31_766+495);
+// public static Werkstoff LiquidNitrogen = new Werkstoff(Materials.LiquidNitrogen, <GenerationFeatures>, <TypeRef>,31_766+494);
+// public static Werkstoff LiquidOxygen = new Werkstoff(Materials.LiquidOxygen, <GenerationFeatures>, <TypeRef>,31_766+493);
+// public static Werkstoff Almandine = new Werkstoff(Materials.Almandine, <GenerationFeatures>, <TypeRef>,31_766+820);
+// public static Werkstoff Andradite = new Werkstoff(Materials.Andradite, <GenerationFeatures>, <TypeRef>,31_766+821);
+
+// public static Werkstoff Asbestos = new Werkstoff(Materials.Asbestos, <GenerationFeatures>, <TypeRef>,31_766+946);
+// public static Werkstoff Ash = new Werkstoff(Materials.Ash, <GenerationFeatures>, <TypeRef>,31_766+815);
+// public static Werkstoff BandedIron = new Werkstoff(Materials.BandedIron, <GenerationFeatures>, <TypeRef>,31_766+917);
+// public static Werkstoff BatteryAlloy = new Werkstoff(Materials.BatteryAlloy, <GenerationFeatures>, <TypeRef>,31_766+315);
+// public static Werkstoff BlueTopaz = new Werkstoff(Materials.BlueTopaz, <GenerationFeatures>, <TypeRef>,31_766+513);
+// public static Werkstoff Bone = new Werkstoff(Materials.Bone, <GenerationFeatures>, <TypeRef>,31_766+806);
+
+// public static Werkstoff BrownLimonite = new Werkstoff(Materials.BrownLimonite, <GenerationFeatures>, <TypeRef>,31_766+930);
+// public static Werkstoff Calcite = new Werkstoff(Materials.Calcite, <GenerationFeatures>, <TypeRef>,31_766+823);
+// public static Werkstoff Cassiterite = new Werkstoff(Materials.Cassiterite, <GenerationFeatures>, <TypeRef>,31_766+824);
+// public static Werkstoff CassiteriteSand = new Werkstoff(Materials.CassiteriteSand, <GenerationFeatures>, <TypeRef>,31_766+937);
+// public static Werkstoff Chalcopyrite = new Werkstoff(Materials.Chalcopyrite, <GenerationFeatures>, <TypeRef>,31_766+855);
+// public static Werkstoff Charcoal = new Werkstoff(Materials.Charcoal, <GenerationFeatures>, <TypeRef>,31_766+536);
+// public static Werkstoff Chromite = new Werkstoff(Materials.Chromite, <GenerationFeatures>, <TypeRef>,31_766+825);
+// public static Werkstoff ChromiumDioxide = new Werkstoff(Materials.ChromiumDioxide, <GenerationFeatures>, <TypeRef>,31_766+361);
+// public static Werkstoff Cinnabar = new Werkstoff(Materials.Cinnabar, <GenerationFeatures>, <TypeRef>,31_766+826);
+// public static Werkstoff Water = new Werkstoff(Materials.Water, <GenerationFeatures>, <TypeRef>,31_766+701);
+// public static Werkstoff Clay = new Werkstoff(Materials.Clay, <GenerationFeatures>, <TypeRef>,31_766+805);
+// public static Werkstoff Coal = new Werkstoff(Materials.Coal, <GenerationFeatures>, <TypeRef>,31_766+535);
+// public static Werkstoff Cobaltite = new Werkstoff(Materials.Cobaltite, <GenerationFeatures>, <TypeRef>,31_766+827);
+// public static Werkstoff Cooperite = new Werkstoff(Materials.Cooperite, <GenerationFeatures>, <TypeRef>,31_766+828);
+// public static Werkstoff Cupronickel = new Werkstoff(Materials.Cupronickel, <GenerationFeatures>, <TypeRef>,31_766+310);
+// public static Werkstoff DarkAsh = new Werkstoff(Materials.DarkAsh, <GenerationFeatures>, <TypeRef>,31_766+816);
+// public static Werkstoff DeepIron = new Werkstoff(Materials.DeepIron, <GenerationFeatures>, <TypeRef>,31_766+829);
+// public static Werkstoff Diamond = new Werkstoff(Materials.Diamond, <GenerationFeatures>, <TypeRef>,31_766+500);
+// public static Werkstoff Electrum = new Werkstoff(Materials.Electrum, <GenerationFeatures>, <TypeRef>,31_766+303);
+// public static Werkstoff Emerald = new Werkstoff(Materials.Emerald, <GenerationFeatures>, <TypeRef>,31_766+501);
+// public static Werkstoff Galena = new Werkstoff(Materials.Galena, <GenerationFeatures>, <TypeRef>,31_766+830);
+// public static Werkstoff Garnierite = new Werkstoff(Materials.Garnierite, <GenerationFeatures>, <TypeRef>,31_766+906);
+// public static Werkstoff Glyceryl = new Werkstoff(Materials.Glyceryl, <GenerationFeatures>, <TypeRef>,31_766+714);
+// public static Werkstoff GreenSapphire = new Werkstoff(Materials.GreenSapphire, <GenerationFeatures>, <TypeRef>,31_766+504);
+// public static Werkstoff Grossular = new Werkstoff(Materials.Grossular, <GenerationFeatures>, <TypeRef>,31_766+831);
+// public static Werkstoff HolyWater = new Werkstoff(Materials.HolyWater, <GenerationFeatures>, <TypeRef>,31_766+729);
+// public static Werkstoff Ice = new Werkstoff(Materials.Ice, <GenerationFeatures>, <TypeRef>,31_766+702);
+// public static Werkstoff Ilmenite = new Werkstoff(Materials.Ilmenite, <GenerationFeatures>, <TypeRef>,31_766+918);
+// public static Werkstoff Rutile = new Werkstoff(Materials.Rutile, <GenerationFeatures>, <TypeRef>,31_766+375);
+// public static Werkstoff Bauxite = new Werkstoff(Materials.Bauxite, <GenerationFeatures>, <TypeRef>,31_766+822);
+// public static Werkstoff Titaniumtetrachloride = new Werkstoff(Materials.Titaniumtetrachloride, <GenerationFeatures>, <TypeRef>,31_766+376);
+// public static Werkstoff Magnesiumchloride = new Werkstoff(Materials.Magnesiumchloride, <GenerationFeatures>, <TypeRef>,31_766+377);
+// public static Werkstoff Invar = new Werkstoff(Materials.Invar, <GenerationFeatures>, <TypeRef>,31_766+302);
+// public static Werkstoff Kanthal = new Werkstoff(Materials.Kanthal, <GenerationFeatures>, <TypeRef>,31_766+312);
+// public static Werkstoff Lazurite = new Werkstoff(Materials.Lazurite, <GenerationFeatures>, <TypeRef>,31_766+524);
+// public static Werkstoff Magnalium = new Werkstoff(Materials.Magnalium, <GenerationFeatures>, <TypeRef>,31_766+313);
+// public static Werkstoff Magnesite = new Werkstoff(Materials.Magnesite, <GenerationFeatures>, <TypeRef>,31_766+908);
+// public static Werkstoff Magnetite = new Werkstoff(Materials.Magnetite, <GenerationFeatures>, <TypeRef>,31_766+870);
+// public static Werkstoff Molybdenite = new Werkstoff(Materials.Molybdenite, <GenerationFeatures>, <TypeRef>,31_766+942);
+// public static Werkstoff Nichrome = new Werkstoff(Materials.Nichrome, <GenerationFeatures>, <TypeRef>,31_766+311);
+// public static Werkstoff NiobiumNitride = new Werkstoff(Materials.NiobiumNitride, <GenerationFeatures>, <TypeRef>,31_766+359);
+// public static Werkstoff NiobiumTitanium = new Werkstoff(Materials.NiobiumTitanium, <GenerationFeatures>, <TypeRef>,31_766+360);
+// public static Werkstoff NitroCarbon = new Werkstoff(Materials.NitroCarbon, <GenerationFeatures>, <TypeRef>,31_766+716);
+// public static Werkstoff NitrogenDioxide = new Werkstoff(Materials.NitrogenDioxide, <GenerationFeatures>, <TypeRef>,31_766+717);
+// public static Werkstoff Obsidian = new Werkstoff(Materials.Obsidian, <GenerationFeatures>, <TypeRef>,31_766+804);
+// public static Werkstoff Phosphate = new Werkstoff(Materials.Phosphate, <GenerationFeatures>, <TypeRef>,31_766+833);
+// public static Werkstoff PigIron = new Werkstoff(Materials.PigIron, <GenerationFeatures>, <TypeRef>,31_766+307);
+
+// public static Polydimethylsiloxane = new MaterialBuilder
+// public static Werkstoff Silicone = new Werkstoff(Materials.Silicone, <GenerationFeatures>, <TypeRef>,31_766+471);
+// public static Werkstoff Polycaprolactam = new Werkstoff(Materials.Polycaprolactam, <GenerationFeatures>, <TypeRef>,31_766+472);
+
+// public static Werkstoff Powellite = new Werkstoff(Materials.Powellite, <GenerationFeatures>, <TypeRef>,31_766+883);
+// public static Werkstoff Pumice = new Werkstoff(Materials.Pumice, <GenerationFeatures>, <TypeRef>,31_766+926);
+// public static Werkstoff Pyrite = new Werkstoff(Materials.Pyrite, <GenerationFeatures>, <TypeRef>,31_766+834);
+// public static Werkstoff Pyrolusite = new Werkstoff(Materials.Pyrolusite, <GenerationFeatures>, <TypeRef>,31_766+943);
+// public static Werkstoff Pyrope = new Werkstoff(Materials.Pyrope, <GenerationFeatures>, <TypeRef>,31_766+835);
+// public static Werkstoff RockSalt = new Werkstoff(Materials.RockSalt, <GenerationFeatures>, <TypeRef>,31_766+944);
+// public static Werkstoff Rubber = new Werkstoff(Materials.Rubber, <GenerationFeatures>, <TypeRef>,31_766+880);
+// public static Werkstoff RawRubber = new Werkstoff(Materials.RawRubber, <GenerationFeatures>, <TypeRef>,31_766+896);
+// public static Werkstoff Ruby = new Werkstoff(Materials.Ruby, <GenerationFeatures>, <TypeRef>,31_766+502);
+// public static Werkstoff Salt = new Werkstoff(Materials.Salt, <GenerationFeatures>, <TypeRef>,31_766+817);
+// public static Werkstoff Saltpeter = new Werkstoff(Materials.Saltpeter, <GenerationFeatures>, <TypeRef>,31_766+836);
+// public static Werkstoff Sapphire = new Werkstoff(Materials.Sapphire, <GenerationFeatures>, <TypeRef>,31_766+503);
+// public static Werkstoff Scheelite = new Werkstoff(Materials.Scheelite, <GenerationFeatures>, <TypeRef>,31_766+910);
+// public static Werkstoff SiliconDioxide = new Werkstoff(Materials.SiliconDioxide, <GenerationFeatures>, <TypeRef>,31_766+837);
+// public static Werkstoff Snow = new Werkstoff(Materials.Snow, <GenerationFeatures>, <TypeRef>,31_766+728);
+// public static Werkstoff Sodalite = new Werkstoff(Materials.Sodalite, <GenerationFeatures>, <TypeRef>,31_766+525);
+// public static Werkstoff SodiumPersulfate = new Werkstoff(Materials.SodiumPersulfate, <GenerationFeatures>, <TypeRef>,31_766+718);
+// public static Werkstoff SodiumSulfide = new Werkstoff(Materials.SodiumSulfide, <GenerationFeatures>, <TypeRef>,31_766+719);
+// public static Werkstoff HydricSulfide = new Werkstoff(Materials.HydricSulfide, <GenerationFeatures>, <TypeRef>,31_766+460);
+// public static Werkstoff OilHeavy = new Werkstoff(Materials.OilHeavy, <GenerationFeatures>, <TypeRef>,31_766+730);
+// public static Werkstoff OilMedium = new Werkstoff(Materials.OilMedium, <GenerationFeatures>, <TypeRef>,31_766+731);
+// public static Werkstoff OilLight = new Werkstoff(Materials.OilLight, <GenerationFeatures>, <TypeRef>,31_766+732);
+// public static Werkstoff NatruralGas = new Werkstoff(Materials.NatruralGas, <GenerationFeatures>, <TypeRef>,31_766+733);
+// public static Werkstoff SulfuricGas = new Werkstoff(Materials.SulfuricGas, <GenerationFeatures>, <TypeRef>,31_766+734);
+// public static Werkstoff Gas = new Werkstoff(Materials.Gas, <GenerationFeatures>, <TypeRef>,31_766+735);
+// public static Werkstoff SulfuricNaphtha = new Werkstoff(Materials.SulfuricNaphtha, <GenerationFeatures>, <TypeRef>,31_766+736);
+// public static Werkstoff SulfuricLightFuel = new Werkstoff(Materials.SulfuricLightFuel, <GenerationFeatures>, <TypeRef>,31_766+737);
+// public static Werkstoff SulfuricHeavyFuel = new Werkstoff(Materials.SulfuricHeavyFuel, <GenerationFeatures>, <TypeRef>,31_766+738);
+// public static Werkstoff Naphtha = new Werkstoff(Materials.Naphtha, <GenerationFeatures>, <TypeRef>,31_766+739);
+// public static Werkstoff LightFuel = new Werkstoff(Materials.LightFuel, <GenerationFeatures>, <TypeRef>,31_766+740);
+// public static Werkstoff HeavyFuel = new Werkstoff(Materials.HeavyFuel, <GenerationFeatures>, <TypeRef>,31_766+741);
+// public static Werkstoff LPG = new Werkstoff(Materials.LPG, <GenerationFeatures>, <TypeRef>,31_766+742);
+// public static FluidNaquadahFuel = new MaterialBuilder
+// public static EnrichedNaquadria = new MaterialBuilder
+// public static ReinforceGlass = new MaterialBuilder
+// public static BioMediumRaw = new MaterialBuilder
+// public static BioMediumSterilized = new MaterialBuilder
+// public static Chlorobenzene = new MaterialBuild
+// public static DilutedHydrochloricAcid = new MaterialBuild
+// public static Pyrochlore = new MaterialBuild
+// public static GrowthMediumRaw = new MaterialBuild
+// public static GrowthMediumSterilized = new MaterialBuild
+// public static FerriteMixture = new MaterialBuild
+// public static NickelZincFerrite = new MaterialBuild
+// public static Massicot = new MaterialBuild
+// public static ArsenicTrioxide = new MaterialBuild
+// public static CobaltOxide = new MaterialBuild
+// public static Zincite = new MaterialBuild
+// public static AntimonyTrioxide = new MaterialBuild
+// public static CupricOxide = new MaterialBuild
+// public static Ferrosilite = new MaterialBuild
+// public static Magnesia = new MaterialBuild
+// public static Quicklime = new MaterialBuild
+// public static Potash = new MaterialBuild
+// public static SodaAsh = new MaterialBuild
+// public static Brick = new MaterialBuild
+// public static Fireclay = new MaterialBuild
+// public static BioDiesel = new MaterialBuild
+// public static NitrationMixture = new MaterialBuild
+// public static Glycerol = new MaterialBuild
+// public static SodiumBisulfate = new MaterialBuild
+// public static PolyphenyleneSulfide = new MaterialBuild
+// public static Dichlorobenzene = new MaterialBuild
+// public static Polystyrene = new MaterialBuild
+// public static Styrene = new MaterialBuild
+// public static Isoprene = new MaterialBuild
+// public static Tetranitromethane = new MaterialBuild
+// public static Ethenone = new MaterialBuild
+// public static Ethane = new MaterialBuild
+// public static Propane = new MaterialBuild
+// public static Butane = new MaterialBuild
+// public static Butene = new MaterialBuild
+// public static Butadiene = new MaterialBuild
+// public static RawStyreneButadieneRubber = new MaterialBuild
+// public static StyreneButadieneRubber = new MaterialBuild
+// public static Toluene = new MaterialBuild
+// public static Epichlorohydrin = new MaterialBuild
+// public static PolyvinylChloride = new MaterialBuild
+// public static VinylChloride = new MaterialBuild
+// public static SulfurDioxide = new MaterialBuild
+// public static SulfurTrioxide = new MaterialBuild
+// public static NitricAcid = new MaterialBuild
+// public static Dimethylhydrazine = new MaterialBuild
+// public static Chloramine = new MaterialBuild
+// public static Dimethylamine = new MaterialBuild
+// public static DinitrogenTetroxide = new MaterialBuild
+// public static NitricOxide = new MaterialBuild
+// public static Ammonia = new MaterialBuild
+// public static Dimethyldichlorosilane = new MaterialBuild
+// public static Chloromethane = new MaterialBuild
+// public static PhosphorousPentoxide = new MaterialBuild
+// public static Tetrafluoroethylene = new MaterialBuild
+// public static HydrofluoricAcid = new MaterialBuild
+// public static Chloroform = new MaterialBuild
+// public static BisphenolA = new MaterialBuild
+// public static AceticAcid = new MaterialBuild
+// public static CalciumAcetateSolution = new MaterialBuild
+// public static Acetone = new MaterialBuild
+// public static Methanol = new MaterialBuild
+// public static CarbonMonoxide = new MaterialBuild
+// public static MetalMixture = new MaterialBuild
+// public static Ethylene = new MaterialBuild
+// public static Propene = new MaterialBuild
+// public static VinylAcetate = new MaterialBuild
+// public static PolyvinylAcetate = new MaterialBuild
+// public static MethylAcetate = new MaterialBuild
+// public static AllylChloride = new MaterialBuild
+// public static HydrochloricAcid = new MaterialBuild
+// public static HypochlorousAcid = new MaterialBuild
+// public static SodiumHydroxide = new MaterialBuild
+// public static Benzene = new MaterialBuild
+// public static Phenol = new MaterialBuild
+// public static Cumene = new MaterialBuild
+// public static PhosphoricAcid = new MaterialBuild
+// public static SaltWater = new MaterialBuild
+// public static IronIIIChloride = new MaterialBuild
+// public static LifeEssence = new MaterialBuild
+// public static Werkstoff SolderingAlloy = new Werkstoff(Materials.SolderingAlloy, <GenerationFeatures>, <TypeRef>,31_766+314);
+// public static Werkstoff GalliumArsenide = new Werkstoff(Materials.GalliumArsenide, <GenerationFeatures>, <TypeRef>,31_766+980);
+// public static Werkstoff IndiumGalliumPhosphide = new Werkstoff(Materials.IndiumGalliumPhosphide, <GenerationFeatures>, <TypeRef>,31_766+981);
+// public static Werkstoff Spessartine = new Werkstoff(Materials.Spessartine, <GenerationFeatures>, <TypeRef>,31_766+838);
+// public static Werkstoff Sphalerite = new Werkstoff(Materials.Sphalerite, <GenerationFeatures>, <TypeRef>,31_766+839);
+
+// public static Werkstoff Stibnite = new Werkstoff(Materials.Stibnite, <GenerationFeatures>, <TypeRef>,31_766+945);
+// public static Werkstoff SulfuricAcid = new Werkstoff(Materials.SulfuricAcid, <GenerationFeatures>, <TypeRef>,31_766+720);
+// public static Werkstoff Tanzanite = new Werkstoff(Materials.Tanzanite, <GenerationFeatures>, <TypeRef>,31_766+508);
+// public static Werkstoff Tetrahedrite = new Werkstoff(Materials.Tetrahedrite, <GenerationFeatures>, <TypeRef>,31_766+840);
+// public static Werkstoff TinAlloy = new Werkstoff(Materials.TinAlloy, <GenerationFeatures>, <TypeRef>,31_766+363);
+// public static Werkstoff Topaz = new Werkstoff(Materials.Topaz, <GenerationFeatures>, <TypeRef>,31_766+507);
+// public static Werkstoff Tungstate = new Werkstoff(Materials.Tungstate, <GenerationFeatures>, <TypeRef>,31_766+841);
+
+// public static Werkstoff Uraninite = new Werkstoff(Materials.Uraninite, <GenerationFeatures>, <TypeRef>,31_766+922);
+// public static Werkstoff Uvarovite = new Werkstoff(Materials.Uvarovite, <GenerationFeatures>, <TypeRef>,31_766+842);
+// public static Werkstoff VanadiumGallium = new Werkstoff(Materials.VanadiumGallium, <GenerationFeatures>, <TypeRef>,31_766+357);
+
+// public static Werkstoff Wulfenite = new Werkstoff(Materials.Wulfenite, <GenerationFeatures>, <TypeRef>,31_766+882);
+// public static Werkstoff YellowLimonite = new Werkstoff(Materials.YellowLimonite, <GenerationFeatures>, <TypeRef>,31_766+931);
+// public static Werkstoff YttriumBariumCuprate = new Werkstoff(Materials.YttriumBariumCuprate, <GenerationFeatures>, <TypeRef>,31_766+358);
+
+// public static Werkstoff LiveRoot = new Werkstoff(Materials.LiveRoot, <GenerationFeatures>, <TypeRef>,31_766+832);
+// public static Werkstoff IronWood = new Werkstoff(Materials.IronWood, <GenerationFeatures>, <TypeRef>,31_766+338);
+// public static Werkstoff Glass = new Werkstoff(Materials.Glass, <GenerationFeatures>, <TypeRef>,31_766+890);
+// public static Werkstoff BorosilicateGlass = new Werkstoff(Materials.BorosilicateGlass, Werkstoff.GenerationFeatures.DISABLED, Werkstoff.Types.COMPOUND, 31_766+611);
+// public static Werkstoff Perlite = new Werkstoff(Materials.Perlite, <GenerationFeatures>, <TypeRef>,31_766+925);
+// public static Werkstoff Borax = new Werkstoff(Materials.Borax, <GenerationFeatures>, <TypeRef>,31_766+941);
+// public static Werkstoff Lignite = new Werkstoff(Materials.Lignite, <GenerationFeatures>, <TypeRef>,31_766+538);
+// public static Werkstoff Olivine = new Werkstoff(Materials.Olivine, <GenerationFeatures>, <TypeRef>,31_766+505);
+// public static Werkstoff Opal = new Werkstoff(Materials.Opal, <GenerationFeatures>, <TypeRef>,31_766+510);
+// public static Werkstoff Amethyst = new Werkstoff(Materials.Amethyst, <GenerationFeatures>, <TypeRef>,31_766+509);
+// public static Werkstoff Redstone = new Werkstoff(Materials.Redstone, <GenerationFeatures>, <TypeRef>,31_766+810);
+// public static Werkstoff Lapis = new Werkstoff(Materials.Lapis, <GenerationFeatures>, <TypeRef>,31_766+526);
+// public static Werkstoff Blaze = new Werkstoff(Materials.Blaze, <GenerationFeatures>, <TypeRef>,31_766+801);
+// public static Werkstoff EnderPearl = new Werkstoff(Materials.EnderPearl, <GenerationFeatures>, <TypeRef>,31_766+532);
+// public static Werkstoff EnderEye = new Werkstoff(Materials.EnderEye, <GenerationFeatures>, <TypeRef>,31_766+533);
+// public static Werkstoff Flint = new Werkstoff(Materials.Flint, <GenerationFeatures>, <TypeRef>,31_766+802);
+// public static Werkstoff Diatomite = new Werkstoff(Materials.Diatomite, <GenerationFeatures>, <TypeRef>,31_766+948);
+// public static Werkstoff VolcanicAsh = new Werkstoff(Materials.VolcanicAsh, <GenerationFeatures>, <TypeRef>,31_766+940);
+// public static Werkstoff Niter = new Werkstoff(Materials.Niter, <GenerationFeatures>, <TypeRef>,31_766+531);
+// public static Werkstoff Pyrotheum = new Werkstoff(Materials.Pyrotheum, <GenerationFeatures>, <TypeRef>,31_766+843);
+// public static Werkstoff Cryotheum = new Werkstoff(Materials.Cryotheum, <GenerationFeatures>, <TypeRef>,31_766+898);
+// public static Werkstoff HydratedCoal = new Werkstoff(Materials.HydratedCoal, <GenerationFeatures>, <TypeRef>,31_766+818);
+// public static Werkstoff Apatite = new Werkstoff(Materials.Apatite, <GenerationFeatures>, <TypeRef>,31_766+530);
+// public static Werkstoff Alumite = new Werkstoff(Materials.Alumite, <GenerationFeatures>, <TypeRef>,31_766+400);
+// public static Werkstoff Manyullyn = new Werkstoff(Materials.Manyullyn, <GenerationFeatures>, <TypeRef>,31_766+386);
+// public static Werkstoff Steeleaf = new Werkstoff(Materials.Steeleaf, <GenerationFeatures>, <TypeRef>,31_766+339);
+// public static Werkstoff Knightmetal = new Werkstoff(Materials.Knightmetal, <GenerationFeatures>, <TypeRef>,31_766+362);
+
+// public static Werkstoff NitroFuel = new Werkstoff(Materials.NitroFuel, <GenerationFeatures>, <TypeRef>,31_766+709);
+// public static Werkstoff RedAlloy = new Werkstoff(Materials.RedAlloy, <GenerationFeatures>, <TypeRef>,31_766+308);
+// public static Werkstoff CobaltBrass = new Werkstoff(Materials.CobaltBrass, <GenerationFeatures>, <TypeRef>,31_766+343);
+// public static Werkstoff TricalciumPhosphate = new Werkstoff(Materials.TricalciumPhosphate, <GenerationFeatures>, <TypeRef>,31_766+534);
+// public static Werkstoff Basalt = new Werkstoff(Materials.Basalt, <GenerationFeatures>, <TypeRef>,31_766+844);
+// public static Werkstoff GarnetRed = new Werkstoff(Materials.GarnetRed, <GenerationFeatures>, <TypeRef>,31_766+527);
+// public static Werkstoff GarnetYellow = new Werkstoff(Materials.GarnetYellow, <GenerationFeatures>, <TypeRef>,31_766+528);
+// public static Werkstoff Marble = new Werkstoff(Materials.Marble, <GenerationFeatures>, <TypeRef>,31_766+845);
+// public static Werkstoff Sugar = new Werkstoff(Materials.Sugar, <GenerationFeatures>, <TypeRef>,31_766+803);
+// public static Werkstoff Thaumium = new Werkstoff(Materials.Thaumium, <GenerationFeatures>, <TypeRef>,31_766+330);
+// public static Werkstoff Vinteum = new Werkstoff(Materials.Vinteum, <GenerationFeatures>, <TypeRef>,31_766+529);
+// public static Werkstoff Redrock = new Werkstoff(Materials.Redrock, <GenerationFeatures>, <TypeRef>,31_766+846);
+// public static Werkstoff PotassiumFeldspar = new Werkstoff(Materials.PotassiumFeldspar, <GenerationFeatures>, <TypeRef>,31_766+847);
+// public static Werkstoff Biotite = new Werkstoff(Materials.Biotite, <GenerationFeatures>, <TypeRef>,31_766+848);
+// public static Werkstoff GraniteBlack = new Werkstoff(Materials.GraniteBlack, <GenerationFeatures>, <TypeRef>,31_766+849);
+// public static Werkstoff GraniteRed = new Werkstoff(Materials.GraniteRed, <GenerationFeatures>, <TypeRef>,31_766+850);
+// public static Werkstoff Chrysotile = new Werkstoff(Materials.Chrysotile, <GenerationFeatures>, <TypeRef>,31_766+912);
+// public static Werkstoff Realgar = new Werkstoff(Materials.Realgar, <GenerationFeatures>, <TypeRef>,31_766+913);
+// public static Werkstoff VanadiumMagnetite = new Werkstoff(Materials.VanadiumMagnetite, <GenerationFeatures>, <TypeRef>,31_766+923);
+// public static Werkstoff BasalticMineralSand = new Werkstoff(Materials.BasalticMineralSand, <GenerationFeatures>, <TypeRef>,31_766+935);
+// public static Werkstoff GraniticMineralSand = new Werkstoff(Materials.GraniticMineralSand, <GenerationFeatures>, <TypeRef>,31_766+936);
+// public static Werkstoff GarnetSand = new Werkstoff(Materials.GarnetSand, <GenerationFeatures>, <TypeRef>,31_766+938);
+// public static Werkstoff QuartzSand = new Werkstoff(Materials.QuartzSand, <GenerationFeatures>, <TypeRef>,31_766+939);
+// public static Werkstoff Bastnasite = new Werkstoff(Materials.Bastnasite, <GenerationFeatures>, <TypeRef>,31_766+905);
+// public static Werkstoff Pentlandite = new Werkstoff(Materials.Pentlandite, <GenerationFeatures>, <TypeRef>,31_766+909);
+// public static Werkstoff Spodumene = new Werkstoff(Materials.Spodumene, <GenerationFeatures>, <TypeRef>,31_766+920);
+// public static Werkstoff Pollucite = new Werkstoff(Materials.Pollucite, <GenerationFeatures>, <TypeRef>,31_766+919);
+// public static Werkstoff Tantalite = new Werkstoff(Materials.Tantalite, <GenerationFeatures>, <TypeRef>,31_766+921);
+// public static Werkstoff Lepidolite = new Werkstoff(Materials.Lepidolite, <GenerationFeatures>, <TypeRef>,31_766+907);
+// public static Werkstoff Glauconite = new Werkstoff(Materials.Glauconite, <GenerationFeatures>, <TypeRef>,31_766+933);
+// public static Werkstoff GlauconiteSand = new Werkstoff(Materials.GlauconiteSand, <GenerationFeatures>, <TypeRef>,31_766+949);
+// public static Werkstoff Vermiculite = new Werkstoff(Materials.Vermiculite, <GenerationFeatures>, <TypeRef>,31_766+932);
+// public static Werkstoff Bentonite = new Werkstoff(Materials.Bentonite, <GenerationFeatures>, <TypeRef>,31_766+927);
+// public static Werkstoff FullersEarth = new Werkstoff(Materials.FullersEarth, <GenerationFeatures>, <TypeRef>,31_766+928);
+// public static Werkstoff Pitchblende = new Werkstoff(Materials.Pitchblende, <GenerationFeatures>, <TypeRef>,31_766+873);
+// public static Werkstoff Monazite = new Werkstoff(Materials.Monazite, <GenerationFeatures>, <TypeRef>,31_766+520);
+// public static Werkstoff Malachite = new Werkstoff(Materials.Malachite, <GenerationFeatures>, <TypeRef>,31_766+871);
+// public static Werkstoff Mirabilite = new Werkstoff(Materials.Mirabilite, <GenerationFeatures>, <TypeRef>,31_766+900);
+// public static Werkstoff Mica = new Werkstoff(Materials.Mica, <GenerationFeatures>, <TypeRef>,31_766+901);
+// public static Werkstoff Trona = new Werkstoff(Materials.Trona, <GenerationFeatures>, <TypeRef>,31_766+903);
+// public static Werkstoff Barite = new Werkstoff(Materials.Barite, <GenerationFeatures>, <TypeRef>,31_766+904);
+// public static Werkstoff Gypsum = new Werkstoff(Materials.Gypsum, <GenerationFeatures>, <TypeRef>,31_766+934);
+// public static Werkstoff Alunite = new Werkstoff(Materials.Alunite, <GenerationFeatures>, <TypeRef>,31_766+911);
+// public static Werkstoff Dolomite = new Werkstoff(Materials.Dolomite, <GenerationFeatures>, <TypeRef>,31_766+914);
+// public static Werkstoff Wollastonite = new Werkstoff(Materials.Wollastonite, <GenerationFeatures>, <TypeRef>,31_766+915);
+// public static Werkstoff Zeolite = new Werkstoff(Materials.Zeolite, <GenerationFeatures>, <TypeRef>,31_766+916);
+// public static Werkstoff Kyanite = new Werkstoff(Materials.Kyanite, <GenerationFeatures>, <TypeRef>,31_766+924);
+// public static Werkstoff Kaolinite = new Werkstoff(Materials.Kaolinite, <GenerationFeatures>, <TypeRef>,31_766+929);
+// public static Werkstoff Talc = new Werkstoff(Materials.Talc, <GenerationFeatures>, <TypeRef>,31_766+902);
+// public static Werkstoff Soapstone = new Werkstoff(Materials.Soapstone, <GenerationFeatures>, <TypeRef>,31_766+877);
+// public static Werkstoff Concrete = new Werkstoff(Materials.Concrete, <GenerationFeatures>, <TypeRef>,31_766+947);
+// public static Werkstoff IronMagnetic = new Werkstoff(Materials.IronMagnetic, <GenerationFeatures>, <TypeRef>,31_766+354);
+// public static Werkstoff SteelMagnetic = new Werkstoff(Materials.SteelMagnetic, <GenerationFeatures>, <TypeRef>,31_766+355);
+// public static Werkstoff NeodymiumMagnetic = new Werkstoff(Materials.NeodymiumMagnetic, <GenerationFeatures>, <TypeRef>,31_766+356);
+// public static Werkstoff SamariumMagnetic = new Werkstoff(Materials.SamariumMagnetic, <GenerationFeatures>, <TypeRef>,31_766+399);
+
+// public static DilutedSulfuricAcid = new MaterialBuilder(31_766+640)
+// public static Werkstoff EpoxidFiberReinforced = new Werkstoff(Materials.EpoxidFiberReinforced, <GenerationFeatures>, <TypeRef>,31_766+610);
+// public static PotassiumNitrade = new MaterialBuilder(59
+// public static ChromiumTrioxide = new MaterialBuilder(31_766+591)
+// public static Nitrochlorobenzene = new MaterialBuilder(31_766+592)
+// public static Dimethylbenzene = new MaterialBuilder(31_766+593)
+// public static Potassiumdichromate = new MaterialBuilder(594
+// public static PhthalicAcid = new MaterialBuilder(31_766+595)
+// public static Dichlorobenzidine = new MaterialBuilder(31_766+596)
+// public static Diaminobenzidin = new MaterialBuilder(31_766+597)
+// public static Diphenylisophthalate = new MaterialBuilder(59
+// public static Werkstoff Polybenzimidazole = new Werkstoff(Materials.Polybenzimidazole, <GenerationFeatures>, <TypeRef>, 31_766+599);
+// public static NitrousOxide = new MaterialBuilder(31_766+993)
+// public static AntiKnock = new MaterialBuilder(31_766+994)
+// public static Octane = new MaterialBuilder(31_766+995)
+// public static GasolineRaw = new MaterialBuilder(31_766+996)
+// public static GasolineRegular = new MaterialBuilder(31_766+997)
+// public static GasolinePremium = new MaterialBuilder(31_766+998)
+// public static Werkstoff Electrotine = new Werkstoff(Materials.Electrotine, <GenerationFeatures>, <TypeRef>,31_766+812);
+// public static Galgadorian = new Werkstoff(Materials.Galgadorian, <GenerationFeatures>, <TypeRef>,31_766+384);
+// public static Werkstoff EnhancedGalgadorian = new Werkstoff(Materials.EnhancedGalgadorian, <GenerationFeatures>, <TypeRef>,31_766+385);
+// public static Werkstoff BloodInfusedIron = new Werkstoff(Materials.BloodInfusedIron, <GenerationFeatures>, <TypeRef>,31_766+977);
+// public static Werkstoff Shadow = new Werkstoff(Materials.Shadow, <GenerationFeatures>, <TypeRef>,31_766+368);
+// public static Werkstoff Ledox = new Werkstoff(Materials.Ledox, <GenerationFeatures>, <TypeRef>,31_766+390);
+// public static Werkstoff Quantium = new Werkstoff(Materials.Quantium, <GenerationFeatures>, <TypeRef>,31_766+391);
+// public static Werkstoff Mytryl = new Werkstoff(Materials.Mytryl, <GenerationFeatures>, <TypeRef>,31_766+387);
+// public static Werkstoff BlackPlutonium = new Werkstoff(Materials.BlackPlutonium, <GenerationFeatures>, <TypeRef>,31_766+388);
+// public static Werkstoff CallistoIce = new Werkstoff(Materials.CallistoIce, <GenerationFeatures>, <TypeRef>,31_766+389);
+// public static Werkstoff Duralumin = new Werkstoff(Materials.Duralumin, <GenerationFeatures>, <TypeRef>,31_766+392);
+// public static Werkstoff Oriharukon = new Werkstoff(Materials.Oriharukon, <GenerationFeatures>, <TypeRef>,31_766+393);
+// public static Werkstoff MysteriousCrystal = new Werkstoff(Materials.MysteriousCrystal, <GenerationFeatures>, <TypeRef>,31_766+398);
+// public static Werkstoff RedstoneAlloy = new Werkstoff(Materials.RedstoneAlloy, <GenerationFeatures>, <TypeRef>,31_766+381);
+// public static Werkstoff Soularium = new Werkstoff(Materials.Soularium, <GenerationFeatures>, <TypeRef>,31_766+379);
+// public static Werkstoff ConductiveIron = new Werkstoff(Materials.ConductiveIron, <GenerationFeatures>, <TypeRef>,31_766+369);
+// public static Werkstoff ElectricalSteel = new Werkstoff(Materials.ElectricalSteel, <GenerationFeatures>, <TypeRef>,31_766+365);
+// public static Werkstoff EnergeticAlloy = new Werkstoff(Materials.EnergeticAlloy, <GenerationFeatures>, <TypeRef>,31_766+366);
+// public static Werkstoff VibrantAlloy = new Werkstoff(Materials.VibrantAlloy, <GenerationFeatures>, <TypeRef>,31_766+367);
+// public static Werkstoff PulsatingIron = new Werkstoff(Materials.PulsatingIron, <GenerationFeatures>, <TypeRef>,31_766+378);
+// public static Werkstoff DarkSteel = new Werkstoff(Materials.DarkSteel, <GenerationFeatures>, <TypeRef>,31_766+364);
+// public static Werkstoff EndSteel = new Werkstoff(Materials.EndSteel, <GenerationFeatures>, <TypeRef>,31_766+401);
+// public static Werkstoff CrudeSteel = new Werkstoff(Materials.CrudeSteel, <GenerationFeatures>, <TypeRef>,31_766+402);
+// public static Werkstoff CrystallineAlloy = new Werkstoff(Materials.CrystallineAlloy, <GenerationFeatures>, <TypeRef>,31_766+403);
+// public static Werkstoff MelodicAlloy = new Werkstoff(Materials.MelodicAlloy, <GenerationFeatures>, <TypeRef>,31_766+404);
+// public static Werkstoff StellarAlloy = new Werkstoff(Materials.StellarAlloy, <GenerationFeatures>, <TypeRef>,31_766+405);
+// public static Werkstoff CrystallinePinkSlime = new Werkstoff(Materials.CrystallinePinkSlime, <GenerationFeatures>, <TypeRef>,31_766+406);
+// public static Werkstoff EnergeticSilver = new Werkstoff(Materials.EnergeticSilver, <GenerationFeatures>, <TypeRef>,31_766+407);
+// public static Werkstoff VividAlloy = new Werkstoff(Materials.VividAlloy, <GenerationFeatures>, <TypeRef>,31_766+408);
+// public static Werkstoff Enderium = new Werkstoff(Materials.Enderium, <GenerationFeatures>, <TypeRef>,31_766+321);
+// public static Werkstoff Mithril = new Werkstoff(Materials.Mithril, <GenerationFeatures>, <TypeRef>,31_766+331);
+// public static Werkstoff BlueAlloy = new Werkstoff(Materials.BlueAlloy, <GenerationFeatures>, <TypeRef>,31_766+309);
+// public static Werkstoff ShadowIron = new Werkstoff(Materials.ShadowIron, <GenerationFeatures>, <TypeRef>,31_766+336);
+// public static Werkstoff ShadowSteel = new Werkstoff(Materials.ShadowSteel, <GenerationFeatures>, <TypeRef>,31_766+337);
+// public static Werkstoff AstralSilver = new Werkstoff(Materials.AstralSilver, <GenerationFeatures>, <TypeRef>,31_766+333);
+// public static Werkstoff InfinityCatalyst = new Werkstoff(Materials.InfinityCatalyst, <GenerationFeatures>, <TypeRef>, 31_766 + 394);
+// public static Werkstoff Infinity = new Werkstoff(Materials.Infinity, <GenerationFeatures>, <TypeRef>, 31_766 + 397);
+// public static Werkstoff Bedrockium = new Werkstoff(Materials.Bedrockium, <GenerationFeatures>, <TypeRef>, 31_766 + 395);
+// public static Werkstoff Trinium = new Werkstoff(Materials.Trinium, <GenerationFeatures>, <TypeRef>, 31_766 + 868);
+// public static Werkstoff Ichorium = new Werkstoff(Materials.Ichorium, <GenerationFeatures>, <TypeRef>, 31_766 + 978);
+// public static Werkstoff CosmicNeutronium = new Werkstoff(Materials.CosmicNeutronium, <GenerationFeatures>, <TypeRef>, 31_766 + 982);
+// public static Werkstoff Pentacadmiummagnesiumhexaoxid = new Werkstoff(Materials.Pentacadmiummagnesiumhexaoxid, <GenerationFeatures>, <TypeRef>, 31_766 + 987);
+// public static Werkstoff Titaniumonabariumdecacoppereikosaoxid = new Werkstoff(Materials.Titaniumonabariumdecacoppereikosaoxid, <GenerationFeatures>, <TypeRef>, 31_766 + 988);
+// public static Werkstoff Uraniumtriplatinid = new Werkstoff(Materials.Uraniumtriplatinid, <GenerationFeatures>, <TypeRef>, 31_766 + 989);
+// public static Werkstoff Vanadiumtriindinid = new Werkstoff(Materials.Vanadiumtriindinid, <GenerationFeatures>, <TypeRef>, 31_766 + 990);
+// public static Werkstoff Tetraindiumditindibariumtitaniumheptacoppertetrakaidekaoxid = new Werkstoff(Materials.Tetraindiumditindibariumtitaniumheptacoppertetrakaidekaoxid, <GenerationFeatures>, <TypeRef>, 31_766 + 991);
+// public static Werkstoff Tetranaquadahdiindiumhexaplatiumosminid = new Werkstoff(Materials.Tetranaquadahdiindiumhexaplatiumosminid, <GenerationFeatures>, <TypeRef>, 31_766 + 992);
+// public static Werkstoff Longasssuperconductornameforuvwire = new Werkstoff(Materials.Longasssuperconductornameforuvwire, <GenerationFeatures>, <TypeRef>, 31_766 + 986);
+// public static Werkstoff Longasssuperconductornameforuhvwire = new Werkstoff(Materials.Longasssuperconductornameforuhvwire, <GenerationFeatures>, <TypeRef>, 31_766 + 985);
+} \ No newline at end of file
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGeneratedBlock_Item.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGeneratedBlock_Item.java
index 18748c8e5c..d612fa211a 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGeneratedBlock_Item.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGeneratedBlock_Item.java
@@ -23,6 +23,7 @@
package com.github.bartimaeusnek.bartworks.system.material;
import com.github.bartimaeusnek.bartworks.common.items.BW_ItemBlocks;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.util.GT_LanguageManager;
@@ -62,6 +63,7 @@ public class BW_MetaGeneratedBlock_Item extends BW_ItemBlocks {
if (aList == null)
aList = new ArrayList<String>();
aList.add(Werkstoff.werkstoffHashMap.get((short) aStack.getItemDamage()).getToolTip());
+ aList.add(BW_Tooltip_Reference.ADDED_BY_BARTWORKS.get());
}
public boolean placeBlockAt(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int side, float hitX, float hitY, float hitZ, int aMeta) {
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGeneratedBlocks_Casing.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGeneratedBlocks_Casing.java
index adeeea4928..af87faf775 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGeneratedBlocks_Casing.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGeneratedBlocks_Casing.java
@@ -23,6 +23,8 @@
package com.github.bartimaeusnek.bartworks.system.material;
import com.github.technus.tectech.mechanics.structure.ICustomBlockSetting;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.GregTech_API;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.util.GT_LanguageManager;
@@ -78,6 +80,7 @@ public class BW_MetaGeneratedBlocks_Casing extends BW_MetaGenerated_Blocks imple
@Override
public void onBlockAdded(World aWorld, int aX, int aY, int aZ) {
+ super.onBlockAdded(aWorld,aX,aY,aZ);
GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ);
}
@@ -85,7 +88,6 @@ public class BW_MetaGeneratedBlocks_Casing extends BW_MetaGenerated_Blocks imple
protected void doRegistrationStuff(Werkstoff tMaterial) {
GregTech_API.registerMachineBlock(this, -1);
Optional.ofNullable(tMaterial)
- .filter(pMaterial -> pMaterial.hasItemType(OrePrefixes.plate) && pMaterial.hasItemType(OrePrefixes.screw) && pMaterial.hasItemType(OrePrefixes.plateDouble) )
.ifPresent(pMaterial ->
GT_LanguageManager.addStringLocalization(
this.getUnlocalizedName() + "." + pMaterial.getmID() + ".name",
@@ -104,13 +106,19 @@ public class BW_MetaGeneratedBlocks_Casing extends BW_MetaGenerated_Blocks imple
}
@Override
+ @SideOnly(Side.CLIENT)
@SuppressWarnings("unchecked")
public void getSubBlocks(Item aItem, CreativeTabs aTab, List aList) {
Werkstoff.werkstoffHashSet.stream()
.filter(pMaterial ->
- pMaterial.hasItemType(OrePrefixes.plate)
- && pMaterial.hasItemType(OrePrefixes.screw)
- && pMaterial.hasItemType(OrePrefixes.plateDouble)
+ pMaterial.getType().equals(Werkstoff.Types.BIOLOGICAL)
+ && pMaterial.hasGenerationFeature(WerkstoffLoader.blockCasing)
+ ||
+ pMaterial.doesOreDictedItemExists(OrePrefixes.plate)
+ && pMaterial.doesOreDictedItemExists(OrePrefixes.screw)
+ && pMaterial.doesOreDictedItemExists(OrePrefixes.plateDouble)
+ && pMaterial.doesOreDictedItemExists(OrePrefixes.gearGt)
+ && pMaterial.doesOreDictedItemExists(OrePrefixes.gearGtSmall)
)
.map(pMaterial -> new ItemStack(aItem, 1, pMaterial.getmID()))
.forEach(aList::add);
@@ -131,4 +139,4 @@ public class BW_MetaGeneratedBlocks_Casing extends BW_MetaGenerated_Blocks imple
.map(te -> (BW_MetaGeneratedBlocks_Casing_TE) te)
.ifPresent(te -> te.mMetaData = (short) meta);
}
-}
+} \ No newline at end of file
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Blocks.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Blocks.java
index 87eaf7038d..0d6bfbc9d3 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Blocks.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Blocks.java
@@ -22,6 +22,7 @@
package com.github.bartimaeusnek.bartworks.system.material;
+import com.github.bartimaeusnek.bartworks.MainMod;
import com.github.bartimaeusnek.bartworks.client.renderer.BW_Renderer_Block_Ores;
import com.github.bartimaeusnek.bartworks.common.blocks.BW_TileEntityContainer;
import cpw.mods.fml.relauncher.Side;
@@ -57,6 +58,17 @@ public abstract class BW_MetaGenerated_Blocks extends BW_TileEntityContainer {
Werkstoff.werkstoffHashSet.forEach(this::doRegistrationStuff);
}
+ @Override
+ public void onBlockAdded(World aWorld, int aX, int aY, int aZ) {
+ super.onBlockAdded(aWorld, aX, aY, aZ);
+ try {
+ //TODO: Unsleep this, is here because TE isnt set yet.
+ Thread.sleep(1);
+ } catch (InterruptedException e) {
+ MainMod.LOGGER.catching(e);
+ }
+ }
+
@SideOnly(Side.CLIENT)
public final BW_MetaGenerated_Block_TE getProperTileEntityForRendering() {
return (BW_MetaGenerated_Block_TE) createNewTileEntity(null,0);
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Items.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Items.java
index ab84e7fd0b..ab38546756 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Items.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Items.java
@@ -25,7 +25,7 @@ package com.github.bartimaeusnek.bartworks.system.material;
import com.github.bartimaeusnek.bartworks.API.IRadMaterial;
import com.github.bartimaeusnek.bartworks.API.SideReference;
import com.github.bartimaeusnek.bartworks.client.textures.PrefixTextureLinker;
-import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.enums.Materials;
@@ -49,7 +49,6 @@ import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
-import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
import java.util.List;
@@ -134,7 +133,7 @@ public class BW_MetaGenerated_Items extends GT_MetaGenerated_Item implements IRa
if (aStack != null && aStack.getItem() instanceof BW_MetaGenerated_Items && aStack.getItemDamage() == WerkstoffLoader.Tiberium.getmID())
aList.add(GT_LanguageManager.getTranslation("metaitem.01.tooltip.nqgen"));
- aList.add(StatCollector.translateToLocal("tooltip.bw.0.name") + ChatColorHelper.DARKGREEN + " BartWorks");
+ aList.add(BW_Tooltip_Reference.ADDED_BY_BARTWORKS.get());
}
public String getDefaultLocalization(Werkstoff werkstoff) {
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/BW_Meta_Items.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/BW_Meta_Items.java
index 7870b820e8..1747471adf 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/BW_Meta_Items.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/BW_Meta_Items.java
@@ -26,8 +26,8 @@ import com.github.bartimaeusnek.bartworks.MainMod;
import com.github.bartimaeusnek.bartworks.common.loaders.ItemRegistry;
import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader;
import com.github.bartimaeusnek.bartworks.util.BWRecipes;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import com.github.bartimaeusnek.bartworks.util.BW_Util;
-import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.GregTech_API;
@@ -44,7 +44,6 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.IIcon;
-import net.minecraft.util.StatCollector;
import net.minecraftforge.fluids.FluidStack;
import java.util.*;
@@ -289,7 +288,7 @@ public class BW_Meta_Items {
@SuppressWarnings("unchecked")
protected void addAdditionalToolTips(List aList, ItemStack aStack, EntityPlayer aPlayer) {
super.addAdditionalToolTips(aList, aStack, aPlayer);
- aList.add(StatCollector.translateToLocal("tooltip.bw.0.name") + ChatColorHelper.DARKGREEN + " BartWorks");
+ aList.add(BW_Tooltip_Reference.ADDED_BY_BARTWORKS.get());
}
@Override
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/BWGTMetaItems.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/BWGTMetaItems.java
index 8838d9dc3d..efc29dc129 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/BWGTMetaItems.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/BWGTMetaItems.java
@@ -55,36 +55,36 @@ public class BWGTMetaItems extends BW_MetaGenerated_Items {
public BWGTMetaItems(OrePrefixes orePrefixes, List<Materials> noSubIDMaterials) {
super(orePrefixes,null);
- materialloop:
+ //materialloop:
for (int i = 0; i < Materials.values().length; i++) {
ItemStack tStack = new ItemStack(this, 1, i);
- Materials w = Materials.values()[i];
- if (((w.getMolten(1) == null && orePrefixes == WerkstoffLoader.capsuleMolten) || ((w.getFluid(1) == null && w.getGas(1) == null) && (orePrefixes == OrePrefixes.capsule || orePrefixes == OrePrefixes.bottle))))
+ Materials material = Materials.values()[i];
+ if (((material.getMolten(1) == null && orePrefixes == WerkstoffLoader.capsuleMolten) || ((material.getFluid(1) == null && material.getGas(1) == null) && (orePrefixes == OrePrefixes.capsule || orePrefixes == OrePrefixes.bottle))))
continue;
- for (Werkstoff werkstoff : Werkstoff.werkstoffHashSet)
- if (w.mDefaultLocalName.equalsIgnoreCase(werkstoff.getDefaultName()))
- continue materialloop;
- if (OreDictionary.doesOreNameExist(this.orePrefixes.name() + w.mDefaultLocalName.replaceAll(" ",""))){
+ //for (Werkstoff werkstoff : Werkstoff.werkstoffHashSet)
+ // if (material.mDefaultLocalName.equalsIgnoreCase(werkstoff.getDefaultName()))
+ // continue materialloop;
+ if (OreDictionary.doesOreNameExist(this.orePrefixes.name() + material.mDefaultLocalName.replaceAll(" ",""))){
hiddenThings.add(i);
continue;
}
- GT_LanguageManager.addStringLocalization(this.getUnlocalizedName(tStack) + ".name", getDefaultLocalization(w));
- GT_LanguageManager.addStringLocalization(this.getUnlocalizedName(tStack) + ".tooltip", w.getToolTip());
- GT_OreDictUnificator.registerOre(this.orePrefixes.name() + w.mDefaultLocalName.replaceAll(" ",""), tStack);
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName(tStack) + ".name", getDefaultLocalization(material));
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName(tStack) + ".tooltip", material.getToolTip());
+ GT_OreDictUnificator.registerOre(this.orePrefixes.name() + material.mDefaultLocalName.replaceAll(" ",""), tStack);
}
- if (noSubIDMaterials != null){
+ if (noSubIDMaterials != null) {
hasList = true;
- materialloop:
+ //materialloop:
for (int i = 0; i < noSubIDMaterials.size(); i++) {
ItemStack tStack = new ItemStack(this, 1, i+1001);
Materials w = noSubIDMaterials.get(i);
if (((w.getMolten(1) == null && orePrefixes == WerkstoffLoader.capsuleMolten) || ((w.getFluid(1) == null && w.getGas(1) == null) && (orePrefixes == OrePrefixes.capsule || orePrefixes == OrePrefixes.bottle))))
continue;
- for (Werkstoff werkstoff : Werkstoff.werkstoffHashSet)
- if (w.mDefaultLocalName.equalsIgnoreCase(werkstoff.getDefaultName()))
- continue materialloop;
+ //for (Werkstoff werkstoff : Werkstoff.werkstoffHashSet)
+ // if (w.mDefaultLocalName.equalsIgnoreCase(werkstoff.getDefaultName()))
+ // continue materialloop;
if (OreDictionary.doesOreNameExist(this.orePrefixes.name() + w.mDefaultLocalName.replaceAll(" ",""))){
hiddenThings.add(i);
continue;
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/Werkstoff.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/Werkstoff.java
index 0713ddf102..e99c32d110 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/Werkstoff.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/Werkstoff.java
@@ -22,8 +22,10 @@
package com.github.bartimaeusnek.bartworks.system.material;
+import com.github.bartimaeusnek.bartworks.system.oredict.OreDictHandler;
import com.github.bartimaeusnek.bartworks.util.*;
import com.github.bartimaeusnek.crossmod.thaumcraft.util.ThaumcraftHandler;
+import com.google.common.base.Verify;
import gregtech.api.enums.*;
import gregtech.api.interfaces.IColorModulationContainer;
import gregtech.api.interfaces.ISubTagContainer;
@@ -34,7 +36,6 @@ import net.minecraftforge.fluids.FluidStack;
import java.lang.reflect.InvocationTargetException;
import java.nio.ByteBuffer;
import java.util.*;
-import java.util.stream.Collectors;
@SuppressWarnings("ALL")
public class Werkstoff implements IColorModulationContainer, ISubTagContainer {
@@ -76,21 +77,25 @@ public class Werkstoff implements IColorModulationContainer, ISubTagContainer {
Werkstoff.default_null_Werkstoff = new Werkstoff(new short[3], "_NULL", "Default null Werkstoff", Werkstoff.DEFAULT_NULL_STATS, Werkstoff.Types.UNDEFINED, Werkstoff.DEFAULT_NULL_GENERATION_FEATURES, -1, TextureSet.SET_NONE);
}
+ /**
+ * GT Materials Bridge Constructor
+ * @param materials a GT Materials
+ * @param generationFeatures the new Types you want to add
+ * @param type - self explainatory
+ * @param mID > 31_766 && <= 32_767
+ */
public Werkstoff(Materials materials, Werkstoff.GenerationFeatures generationFeatures, Types type, int mID){
this( materials.mRGBa,
- materials.getToolTip(),
materials.mDefaultLocalName,
+ materials.getToolTip(),
type == null ? materials.mElement != null ? Types.ELEMENT : Types.UNDEFINED : type,
generationFeatures,
mID,
materials.mIconSet,
(List) materials.mOreByProducts,
- materials.mMaterialList
- .stream()
- .map(ml -> new Pair<ISubTagContainer, Integer>(ml.mMaterial, (int) ml.mAmount))
- .collect(Collectors.toList())
- .<Pair<ISubTagContainer, Integer>>toArray(new Pair[0])
+ new Pair<>(materials, 1)
);
+ Verify.verify(mID > 31_766 && mID <= 32_767);
this.stats.mass = materials.getMass();
this.stats.protons = materials.getProtons();
this.stats.meltingPoint = materials.mMeltingPoint;
@@ -102,11 +107,11 @@ public class Werkstoff implements IColorModulationContainer, ISubTagContainer {
this.stats.setRadioactive(materials.isRadioactive());
this.stats.setBlastFurnace(materials.mBlastFurnaceRequired);
if (type == Types.COMPOUND){
- this.stats.setElektrolysis(type == Types.COMPOUND);
+ this.stats.setElektrolysis(true);
this.generationFeatures.addChemicalRecipes();
}
else if (type == Types.MIXTURE) {
- this.stats.setCentrifuge(type == Types.MIXTURE);
+ this.stats.setCentrifuge(true);
this.generationFeatures.addMixerRecipes();
}
}
@@ -452,11 +457,29 @@ public class Werkstoff implements IColorModulationContainer, ISubTagContainer {
return this.stats.getDurOverride() > 0 ? this.stats.getDurOverride() : (int) (this.stats.durMod * ((0.01f * (float) this.getStats().getMeltingPoint() * (float) this.getStats().getMass()) / (float) this.getContents().getKey()));
}
+ /**
+ * Checks if the generation feature is enabled and if its not in the blacklist
+ */
public boolean hasItemType(OrePrefixes prefixes) {
int unpacked = Werkstoff.GenerationFeatures.getPrefixDataRaw(prefixes);
return (this.getGenerationFeatures().toGenerate & unpacked) != 0 && (this.getGenerationFeatures().blacklist & unpacked) == 0;
}
+ /**
+ * DOES NOT CHECK BLACKLIST!
+ */
+ public boolean hasGenerationFeature(OrePrefixes prefixes){
+ int unpacked = Werkstoff.GenerationFeatures.getPrefixDataRaw(prefixes);
+ return (this.getGenerationFeatures().toGenerate & unpacked) != 0;
+ }
+
+ /**
+ * Checks if the Actual Stack exists in the OreDict
+ */
+ public boolean doesOreDictedItemExists(OrePrefixes prefixes) {
+ return OreDictHandler.getItemStack(this.getDefaultName(), prefixes,1) != null;
+ }
+
public enum Types {
MATERIAL, COMPOUND, MIXTURE, BIOLOGICAL, ELEMENT, ISOTOPE, UNDEFINED;
@@ -474,6 +497,7 @@ public class Werkstoff implements IColorModulationContainer, ISubTagContainer {
}
public static class GenerationFeatures {
+ public static final GenerationFeatures DISABLED = new GenerationFeatures().disable();
long toGenerate = 0b0001001;
//logic gate shit
/*
@@ -712,7 +736,7 @@ public class Werkstoff implements IColorModulationContainer, ISubTagContainer {
}
public Werkstoff.GenerationFeatures addCasings() {
- this.toGenerate = (long) (this.toGenerate | 0x380);
+ this.toGenerate = (long) (this.toGenerate | 0x382);
return this;
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java
index 5e12e2e7a9..ccc8966bcf 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java
@@ -187,6 +187,7 @@ public class WerkstoffLoader {
bottle.mDefaultStackSize = 1;
Werkstoff.GenerationFeatures.initPrefixLogic();
+ BW_GT_MaterialReference.init();
}
//TODO:
@@ -474,6 +475,8 @@ public class WerkstoffLoader {
Arrays.asList(Materials.RockSalt, Materials.Borax),
new Pair<>(Materials.RockSalt, 1)
);
+
+ //More NonGT Stuff
public static final Werkstoff Fayalit = new Werkstoff(
new short[]{50, 50, 50, 0},
"Fayalite",
@@ -1426,7 +1429,10 @@ public class WerkstoffLoader {
public static ItemStack getCorrespondingItemStackUnsafe(OrePrefixes orePrefixes, Werkstoff werkstoff, int amount) {
if (!werkstoff.getGenerationFeatures().enforceUnification) {
- ItemStack ret = OreDictHandler.getItemStack(werkstoff.getVarName(), orePrefixes, amount);
+ ItemStack ret = GT_OreDictUnificator.get(orePrefixes, werkstoff.getBridgeMaterial(), 1);
+ if (ret != null)
+ return ret;
+ ret = OreDictHandler.getItemStack(werkstoff.getVarName(), orePrefixes, amount);
if (ret != null)
return ret;
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/werkstoff_loaders/recipe/CasingLoader.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/werkstoff_loaders/recipe/CasingLoader.java
index cc1f7650a3..a1db413dca 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/werkstoff_loaders/recipe/CasingLoader.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/werkstoff_loaders/recipe/CasingLoader.java
@@ -22,9 +22,11 @@
package com.github.bartimaeusnek.bartworks.system.material.werkstoff_loaders.recipe;
+import com.github.bartimaeusnek.bartworks.system.material.BW_GT_MaterialReference;
import com.github.bartimaeusnek.bartworks.system.material.Werkstoff;
import com.github.bartimaeusnek.bartworks.system.material.werkstoff_loaders.IWerkstoffRunnable;
import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.OrePrefixes;
import gregtech.api.util.GT_ModHandler;
import net.minecraft.item.ItemStack;
@@ -35,10 +37,27 @@ import static gregtech.api.enums.OrePrefixes.*;
public class CasingLoader implements IWerkstoffRunnable {
@Override
public void run(Werkstoff werkstoff) {
- if (!(werkstoff.hasItemType(blockCasing) || werkstoff.hasItemType(plate) || werkstoff.hasItemType(screw) || werkstoff.hasItemType(gearGt) ))
- return;
+ if (werkstoff == BW_GT_MaterialReference.Wood /*|| werkstoff == BW_GT_MaterialReference.WoodSealed*/) {
+ addCasingRecipes(werkstoff, plank);
+ } else {
+ if (!
+ (
+ werkstoff.hasGenerationFeature(blockCasing) &&
+ werkstoff.doesOreDictedItemExists(plate) &&
+ werkstoff.doesOreDictedItemExists(screw) &&
+ werkstoff.doesOreDictedItemExists(gearGtSmall) &&
+ werkstoff.doesOreDictedItemExists(gearGt) &&
+ werkstoff.doesOreDictedItemExists(plateDouble)
+ )
+ )
+ return;
- GT_ModHandler.addCraftingRecipe(werkstoff.get(blockCasing),new Object[]{
+ addCasingRecipes(werkstoff, plateDouble);
+ }
+ }
+
+ private static void addCasingRecipes(Werkstoff werkstoff, OrePrefixes reboltedCasingsOuterStuff){
+ GT_ModHandler.addCraftingRecipe(werkstoff.get(blockCasing), new Object[]{
"PSP",
"PGP",
"PSP",
@@ -47,23 +66,23 @@ public class CasingLoader implements IWerkstoffRunnable {
'G', werkstoff.get(gearGtSmall)
});
GT_Values.RA.addAssemblerRecipe(new ItemStack[]{
- werkstoff.get(plate,6),
- werkstoff.get(screw,2),
+ werkstoff.get(plate, 6),
+ werkstoff.get(screw, 2),
werkstoff.get(gearGtSmall)
- }, GT_Values.NF,werkstoff.get(blockCasing), 200, 30);
+ }, GT_Values.NF, werkstoff.get(blockCasing), 200, 30);
- GT_ModHandler.addCraftingRecipe(werkstoff.get(blockCasingAdvanced),new Object[]{
+ GT_ModHandler.addCraftingRecipe(werkstoff.get(blockCasingAdvanced), new Object[]{
"PSP",
"PGP",
"PSP",
- 'P', werkstoff.get(plateDouble),
+ 'P', werkstoff.get(reboltedCasingsOuterStuff),
'S', werkstoff.get(screw),
'G', werkstoff.get(gearGt)
});
GT_Values.RA.addAssemblerRecipe(new ItemStack[]{
- werkstoff.get(plateDouble,6),
- werkstoff.get(screw,2),
+ werkstoff.get(reboltedCasingsOuterStuff, 6),
+ werkstoff.get(screw, 2),
werkstoff.get(gearGt)
- }, GT_Values.NF,werkstoff.get(blockCasingAdvanced), 200, 30);
+ }, GT_Values.NF, werkstoff.get(blockCasingAdvanced), 200, 30);
}
} \ No newline at end of file
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/oredict/OreDictHandler.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/oredict/OreDictHandler.java
index bf077f47e1..3e5984df6d 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/oredict/OreDictHandler.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/oredict/OreDictHandler.java
@@ -27,6 +27,7 @@ import com.github.bartimaeusnek.bartworks.util.Pair;
import com.github.bartimaeusnek.crossmod.BartWorksCrossmod;
import cpw.mods.fml.common.registry.GameRegistry;
import gregtech.api.enums.OrePrefixes;
+import gregtech.api.util.GT_OreDictUnificator;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
@@ -76,7 +77,7 @@ public class OreDictHandler {
Pair<Integer,Short> p = OreDictHandler.cache.get(prefixes+elementName.replaceAll(" ",""));
return new ItemStack(Item.getItemById(p.getKey()),amount,p.getValue());
} else if (!OreDictionary.getOres(prefixes+elementName.replaceAll(" ","")).isEmpty()){
- ItemStack tmp = OreDictionary.getOres(prefixes+elementName.replaceAll(" ","")).get(0).copy();
+ ItemStack tmp = GT_OreDictUnificator.get(OreDictionary.getOres(prefixes+elementName.replaceAll(" ","")).get(0).copy()).copy();
OreDictHandler.cache.put(prefixes+elementName.replaceAll(" ",""),new Pair<>(Item.getIdFromItem(tmp.getItem()), (short) tmp.getItemDamage()));
tmp.stackSize=amount;
return tmp;
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Tooltip_Reference.java b/src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Tooltip_Reference.java
new file mode 100644
index 0000000000..9eb8e70d77
--- /dev/null
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Tooltip_Reference.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2018-2020 bartimaeusnek
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+package com.github.bartimaeusnek.bartworks.util;
+
+import static net.minecraft.util.EnumChatFormatting.*;
+import net.minecraft.util.StatCollector;
+
+import java.util.function.Supplier;
+
+public class BW_Tooltip_Reference {
+ public static final String BW_NO_RESET = ChatColorHelper.DARKGREEN + "BartWorks";
+ public static final String TT_NO_RESET = BLUE + "Tec" + DARK_BLUE + "Tech";
+ public static final String BW = BW_NO_RESET + GRAY;
+ public static final String TT = TT_NO_RESET + GRAY;
+ public static final Supplier<String> ADDED_BY_BARTIMAEUSNEK_VIA_BARTWORKS = () -> StatCollector.translateToLocal("tooltip.bw.1.name") + " " + BW;
+ public static final Supplier<String> ADDED_BY_BARTWORKS = () -> StatCollector.translateToLocal("tooltip.bw.0.name") + " " + BW;
+ public static final String ADV_STR_CHECK = "Uses an advanced "+ TT +" structure check, due to "+ BW;
+
+ public static String[] getTranslatedBrandedTooltip(String key){
+ String[] dsc = StatCollector.translateToLocal(key).split(";");
+ String[] fdsc = new String[dsc.length + 1];
+ System.arraycopy(dsc, 0, fdsc, 0, dsc.length);
+ fdsc[dsc.length] = ADDED_BY_BARTIMAEUSNEK_VIA_BARTWORKS.get();
+ return fdsc;
+ }
+}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/util/accessprioritylist/AccessPriorityList.java b/src/main/java/com/github/bartimaeusnek/bartworks/util/accessprioritylist/AccessPriorityList.java
index 4cbb55c278..4529aa5202 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/util/accessprioritylist/AccessPriorityList.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/util/accessprioritylist/AccessPriorityList.java
@@ -158,6 +158,11 @@ public class AccessPriorityList<E> implements List<E>, Deque<E>, Set<E> {
return new AccessPriorityListIterators.AccessPriorityListIterator<>(head);
}
+ public Iterator<AccessPriorityListNode<E>> nodeIterator() {
+ return new AccessPriorityListIterators.AccessPriorityListNodeIterator<>(head);
+ }
+
+
@Override
public Iterator<E> descendingIterator() {
return new AccessPriorityListIterators.AccessPriorityListReverseIterator<>(tail);
@@ -329,10 +334,11 @@ public class AccessPriorityList<E> implements List<E>, Deque<E>, Set<E> {
}
}
- public void addPrioToNode(int index, long prio) {
- if (!isValidIndex(index))
- return;
- AccessPriorityListNode<E> node = getNode(index);
+ public void addPrioToNode(AccessPriorityListNode<E> node) {
+ addPrioToNode(node, 1L);
+ }
+
+ public void addPrioToNode(AccessPriorityListNode<E> node, long prio){
long current = node.getPriority();
if (current == Long.MAX_VALUE || (current > 0 && prio > 0 && prio + current < 0))
node.setPriority(Long.MAX_VALUE);
@@ -343,6 +349,13 @@ public class AccessPriorityList<E> implements List<E>, Deque<E>, Set<E> {
}
}
+ public void addPrioToNode(int index, long prio) {
+ if (!isValidIndex(index))
+ return;
+ AccessPriorityListNode<E> node = getNode(index);
+ addPrioToNode(node, prio);
+ }
+
public void addPrioToNode(int index) {
addPrioToNode(index, 1L);
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/util/accessprioritylist/AccessPriorityListIterators.java b/src/main/java/com/github/bartimaeusnek/bartworks/util/accessprioritylist/AccessPriorityListIterators.java
index 3b85030d1e..ec842ede30 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/util/accessprioritylist/AccessPriorityListIterators.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/util/accessprioritylist/AccessPriorityListIterators.java
@@ -143,4 +143,24 @@ public class AccessPriorityListIterators {
}
}
+ public static class AccessPriorityListNodeIterator<E> implements Iterator<AccessPriorityListNode<E>> {
+ final AccessPriorityListNode<E> head;
+ AccessPriorityListNode<E> current;
+ public AccessPriorityListNodeIterator(AccessPriorityListNode<E> head) {
+ this.head = this.current = head;
+ }
+
+ @Override
+ public boolean hasNext() {
+ return current != null;
+ }
+
+ @Override
+ public AccessPriorityListNode<E> next() {
+ AccessPriorityListNode<E> ret = current;
+ current = current.getNext();
+ return ret;
+ }
+ }
+
}
diff --git a/src/main/java/com/github/bartimaeusnek/crossmod/BartWorksCrossmod.java b/src/main/java/com/github/bartimaeusnek/crossmod/BartWorksCrossmod.java
index 526a9f6be7..d20f191dd7 100644
--- a/src/main/java/com/github/bartimaeusnek/crossmod/BartWorksCrossmod.java
+++ b/src/main/java/com/github/bartimaeusnek/crossmod/BartWorksCrossmod.java
@@ -27,6 +27,10 @@ import com.github.bartimaeusnek.bartworks.MainMod;
import com.github.bartimaeusnek.crossmod.GTpp.loader.RadioHatchCompat;
import com.github.bartimaeusnek.crossmod.galacticraft.GalacticraftProxy;
import com.github.bartimaeusnek.crossmod.tectech.TecTechResearchLoader;
+import com.github.bartimaeusnek.crossmod.tectech.tileentites.multi.GT_Replacement.TT_ElectronicBlastFurnace;
+import com.github.bartimaeusnek.crossmod.tectech.tileentites.multi.GT_Replacement.TT_ImplosionCompressor;
+import com.github.bartimaeusnek.crossmod.tectech.tileentites.multi.GT_Replacement.TT_OilCrackingUnit;
+import com.github.bartimaeusnek.crossmod.tectech.tileentites.multi.GT_Replacement.TT_VaccuumFreezer;
import com.github.bartimaeusnek.crossmod.thaumcraft.CustomAspects;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.event.FMLInitializationEvent;
@@ -75,6 +79,13 @@ public class BartWorksCrossmod {
public void init(FMLInitializationEvent init) {
if (LoaderReference.GalacticraftCore)
GalacticraftProxy.init(init);
+ //Base GT -> TT Replacement
+ //if (LoaderReference.tectech) {
+ // new TT_VaccuumFreezer(null);
+ // new TT_OilCrackingUnit(null);
+ // new TT_ImplosionCompressor(null);
+ // new TT_ElectronicBlastFurnace(null);
+ //}
}
@Mod.EventHandler
diff --git a/src/main/java/com/github/bartimaeusnek/crossmod/galacticgreg/GT_TileEntity_VoidMiner_Base.java b/src/main/java/com/github/bartimaeusnek/crossmod/galacticgreg/GT_TileEntity_VoidMiner_Base.java
index bc81b2026c..f4400fab11 100644
--- a/src/main/java/com/github/bartimaeusnek/crossmod/galacticgreg/GT_TileEntity_VoidMiner_Base.java
+++ b/src/main/java/com/github/bartimaeusnek/crossmod/galacticgreg/GT_TileEntity_VoidMiner_Base.java
@@ -34,7 +34,7 @@ import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader;
import com.github.bartimaeusnek.bartworks.system.oregen.BW_OreLayer;
import com.github.bartimaeusnek.bartworks.system.oregen.BW_WorldGenRoss128b;
import com.github.bartimaeusnek.bartworks.system.oregen.BW_WorldGenRoss128ba;
-import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import com.github.bartimaeusnek.bartworks.util.Pair;
import com.google.common.collect.ArrayListMultimap;
import gregtech.api.GregTech_API;
@@ -48,7 +48,6 @@ import gregtech.common.GT_Worldgen_GT_Ore_SmallPieces;
import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_DrillerBase;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.util.StatCollector;
import net.minecraft.world.gen.ChunkProviderServer;
import net.minecraftforge.fluids.FluidStack;
@@ -160,7 +159,7 @@ public abstract class GT_TileEntity_VoidMiner_Base extends GT_MetaTileEntity_Dri
"Can be supplied with 2L/s of Neon(x4), Krypton(x8), Xenon(x16) or Oganesson(x64)",
"for higher outputs.",
"Will output "+(2*TIER_MULTIPLIER)+" Ores per Second depending on the Dimension it is build in",
- StatCollector.translateToLocal("tooltip.bw.1.name") + ChatColorHelper.DARKGREEN + " BartWorks"
+ BW_Tooltip_Reference.ADDED_BY_BARTIMAEUSNEK_VIA_BARTWORKS.get()
};
}
diff --git a/src/main/java/com/github/bartimaeusnek/crossmod/tectech/TecTechEnabledMulti.java b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/TecTechEnabledMulti.java
index 9f78d02d5a..bda1ae72ca 100644
--- a/src/main/java/com/github/bartimaeusnek/crossmod/tectech/TecTechEnabledMulti.java
+++ b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/TecTechEnabledMulti.java
@@ -22,7 +22,7 @@
package com.github.bartimaeusnek.crossmod.tectech;
-import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyTunnel;
import gregtech.api.enums.GT_Values;
@@ -83,7 +83,7 @@ public interface TecTechEnabledMulti {
return new String[]{
StatCollector.translateToLocal("GT5U.multiblock.Progress") + ": "
- + EnumChatFormatting.GREEN + multiBlockBase.mProgresstime / 20 + EnumChatFormatting.RESET + " s / " + EnumChatFormatting.YELLOW + multiBlockBase.mMaxProgresstime / 20 + EnumChatFormatting.RESET + " s", StatCollector.translateToLocal("GT5U.multiblock.energy") + ": " + EnumChatFormatting.GREEN + storedEnergy + EnumChatFormatting.RESET + " EU / " + EnumChatFormatting.YELLOW + maxEnergy + EnumChatFormatting.RESET + " EU", StatCollector.translateToLocal("GT5U.multiblock.usage") + ": " + EnumChatFormatting.RED + -multiBlockBase.mEUt + EnumChatFormatting.RESET + " EU/t", StatCollector.translateToLocal("GT5U.multiblock.mei") + ": " + EnumChatFormatting.YELLOW + multiBlockBase.getMaxInputVoltage() + EnumChatFormatting.RESET + " EU/t(*2A) " + StatCollector.translateToLocal("GT5U.machines.tier") + ": " + EnumChatFormatting.YELLOW + GT_Values.VN[GT_Utility.getTier(multiBlockBase.getMaxInputVoltage())] + EnumChatFormatting.RESET, StatCollector.translateToLocal("GT5U.multiblock.problems") + ": " + EnumChatFormatting.RED + (multiBlockBase.getIdealStatus() - multiBlockBase.getRepairStatus()) + EnumChatFormatting.RESET + " " + StatCollector.translateToLocal("GT5U.multiblock.efficiency") + ": " + EnumChatFormatting.YELLOW + (float) multiBlockBase.mEfficiency / 100.0F + EnumChatFormatting.RESET + " %", StatCollector.translateToLocal("GT5U.multiblock.pollution") + ": " + EnumChatFormatting.GREEN + mPollutionReduction + EnumChatFormatting.RESET + " %", StatCollector.translateToLocal("tooltip.bw.1.name") + ChatColorHelper.DARKGREEN + " BartWorks"};
+ + EnumChatFormatting.GREEN + multiBlockBase.mProgresstime / 20 + EnumChatFormatting.RESET + " s / " + EnumChatFormatting.YELLOW + multiBlockBase.mMaxProgresstime / 20 + EnumChatFormatting.RESET + " s", StatCollector.translateToLocal("GT5U.multiblock.energy") + ": " + EnumChatFormatting.GREEN + storedEnergy + EnumChatFormatting.RESET + " EU / " + EnumChatFormatting.YELLOW + maxEnergy + EnumChatFormatting.RESET + " EU", StatCollector.translateToLocal("GT5U.multiblock.usage") + ": " + EnumChatFormatting.RED + -multiBlockBase.mEUt + EnumChatFormatting.RESET + " EU/t", StatCollector.translateToLocal("GT5U.multiblock.mei") + ": " + EnumChatFormatting.YELLOW + multiBlockBase.getMaxInputVoltage() + EnumChatFormatting.RESET + " EU/t(*2A) " + StatCollector.translateToLocal("GT5U.machines.tier") + ": " + EnumChatFormatting.YELLOW + GT_Values.VN[GT_Utility.getTier(multiBlockBase.getMaxInputVoltage())] + EnumChatFormatting.RESET, StatCollector.translateToLocal("GT5U.multiblock.problems") + ": " + EnumChatFormatting.RED + (multiBlockBase.getIdealStatus() - multiBlockBase.getRepairStatus()) + EnumChatFormatting.RESET + " " + StatCollector.translateToLocal("GT5U.multiblock.efficiency") + ": " + EnumChatFormatting.YELLOW + (float) multiBlockBase.mEfficiency / 100.0F + EnumChatFormatting.RESET + " %", StatCollector.translateToLocal("GT5U.multiblock.pollution") + ": " + EnumChatFormatting.GREEN + mPollutionReduction + EnumChatFormatting.RESET + " %", BW_Tooltip_Reference.ADDED_BY_BARTIMAEUSNEK_VIA_BARTWORKS.get()};
}
}
diff --git a/src/main/java/com/github/bartimaeusnek/crossmod/tectech/helper/CoilAdder.java b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/helper/CoilAdder.java
new file mode 100644
index 0000000000..8cec3450a7
--- /dev/null
+++ b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/helper/CoilAdder.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2018-2020 bartimaeusnek
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+package com.github.bartimaeusnek.crossmod.tectech.helper;
+
+import com.github.technus.tectech.TecTech;
+import com.github.technus.tectech.mechanics.structure.IStructureElement;
+import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM;
+import gregtech.api.GregTech_API;
+import net.minecraft.item.ItemStack;
+import net.minecraft.world.World;
+
+public class CoilAdder<MultiBlock extends GT_MetaTileEntity_MultiblockBase_EM & IHasCoils> implements IStructureElement<MultiBlock> {
+
+ private CoilAdder(){}
+
+ @SuppressWarnings("rawtypes")
+ private static final CoilAdder INSTANCE = new CoilAdder();
+
+ @SuppressWarnings("unchecked")
+ public static <MultiBlock extends GT_MetaTileEntity_MultiblockBase_EM & IHasCoils> CoilAdder<MultiBlock> getINSTANCE() {
+ return INSTANCE;
+ }
+
+ @Override
+ public boolean check(MultiBlock multiBlock, World world, int x, int y, int z) {
+ if (multiBlock.getCoilMeta() == -1)
+ multiBlock.setCoilMeta((short) world.getBlockMetadata(x, y, z));
+ return multiBlock.getCoilMeta() == (short) world.getBlockMetadata(x, y, z)
+ && GregTech_API.sBlockCasings5 == world.getBlock(x, y, z);
+ }
+
+ @Override
+ public boolean placeBlock(MultiBlock MultiBlock, World world, int x, int y, int z, ItemStack trigger) {
+ world.setBlock(x, y, z, GregTech_API.sBlockCasings5, 0, 2);
+ return true;
+ }
+
+ @Override
+ public boolean spawnHint(MultiBlock MultiBlock, World world, int x, int y, int z, ItemStack trigger) {
+ TecTech.proxy.hint_particle(world, x, y, z, GregTech_API.sBlockCasings5, 0);
+ return true;
+ }
+} \ No newline at end of file
diff --git a/src/main/java/com/github/bartimaeusnek/crossmod/tectech/helper/IHasCoils.java b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/helper/IHasCoils.java
new file mode 100644
index 0000000000..ea987e2426
--- /dev/null
+++ b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/helper/IHasCoils.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2018-2020 bartimaeusnek
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+package com.github.bartimaeusnek.crossmod.tectech.helper;
+
+public interface IHasCoils {
+ void setCoilMeta(short coilMeta);
+ short getCoilMeta();
+}
diff --git a/src/main/java/com/github/bartimaeusnek/crossmod/tectech/helper/StructureDefinitions.java b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/helper/StructureDefinitions.java
new file mode 100644
index 0000000000..7e1b225a2a
--- /dev/null
+++ b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/helper/StructureDefinitions.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2018-2020 bartimaeusnek
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+package com.github.bartimaeusnek.crossmod.tectech.helper;
+
+import static com.github.technus.tectech.mechanics.structure.StructureUtility.transpose;
+
+public enum StructureDefinitions {
+ CUBE_NO_MUFFLER(transpose(
+ new String[][]{
+ {"VVV", "VVV", "VVV"},
+ {"V~V", "V-V", "VVV"},
+ {"VVV", "VVV", "VVV"}
+ }))
+ ,
+ CUBE_MUFFLER(transpose(
+ new String[][]{
+ {"VVV", "VMV", "VVV"},
+ {"V~V", "V-V", "VVV"},
+ {"VVV", "VVV", "VVV"}
+ }))
+ ;
+
+ private final String[][] definition;
+
+ public String[][] getDefinition() {
+ return definition;
+ }
+
+ StructureDefinitions(String[][] definition) {
+ this.definition = definition;
+ }
+}
diff --git a/src/main/java/com/github/bartimaeusnek/crossmod/tectech/TecTechUtils.java b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/helper/TecTechUtils.java
index 7759eddfd5..bc28090155 100644
--- a/src/main/java/com/github/bartimaeusnek/crossmod/tectech/TecTechUtils.java
+++ b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/helper/TecTechUtils.java
@@ -20,8 +20,9 @@
* SOFTWARE.
*/
-package com.github.bartimaeusnek.crossmod.tectech;
+package com.github.bartimaeusnek.crossmod.tectech.helper;
+import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyTunnel;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
diff --git a/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/multi/GT_Replacement/TT_ElectronicBlastFurnace.java b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/multi/GT_Replacement/TT_ElectronicBlastFurnace.java
new file mode 100644
index 0000000000..ab6eaca7a0
--- /dev/null
+++ b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/multi/GT_Replacement/TT_ElectronicBlastFurnace.java
@@ -0,0 +1,442 @@
+/*
+ * Copyright (c) 2018-2020 bartimaeusnek
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+package com.github.bartimaeusnek.crossmod.tectech.tileentites.multi.GT_Replacement;
+
+import com.github.bartimaeusnek.crossmod.tectech.helper.CoilAdder;
+import com.github.bartimaeusnek.crossmod.tectech.helper.IHasCoils;
+import com.github.technus.tectech.mechanics.constructable.IConstructable;
+import com.github.technus.tectech.mechanics.structure.IStructureDefinition;
+import com.github.technus.tectech.mechanics.structure.StructureDefinition;
+import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_DynamoMulti;
+import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti;
+import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM;
+import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedExtendedFacingTexture;
+import com.google.common.collect.ImmutableSet;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.Textures;
+import gregtech.api.gui.GT_Container_MultiMachine;
+import gregtech.api.gui.GT_GUIContainer_MultiMachine;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.interfaces.tileentity.ITurnable;
+import gregtech.api.metatileentity.MetaTileEntity;
+import gregtech.api.metatileentity.implementations.*;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.GT_Utility;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidStack;
+
+import java.util.ArrayList;
+import java.util.Set;
+
+import static com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference.ADV_STR_CHECK;
+import static com.github.technus.tectech.mechanics.structure.StructureUtility.*;
+import static gregtech.api.enums.GT_Values.V;
+
+public class TT_ElectronicBlastFurnace extends GT_MetaTileEntity_MultiblockBase_EM implements IHasCoils, IConstructable {
+
+ public TT_ElectronicBlastFurnace(Object unused) {
+ super(32765, "multimachine.blastfurnace", "Electric Blast Furnace");
+ GregTech_API.METATILEENTITIES[32765] = null;
+ GregTech_API.METATILEENTITIES[1000] = this;
+ }
+
+ private TT_ElectronicBlastFurnace(String aName) {
+ super(aName);
+ }
+
+ private short coilMeta = -1;
+ private static final byte TEXTURE_INDEX = 11;
+ private static final IStructureDefinition<TT_ElectronicBlastFurnace> STRUCTURE_DEFINITION = StructureDefinition
+ .<TT_ElectronicBlastFurnace>builder()
+ .addShape("main",
+ transpose(new String[][]{
+ {"AAA", "AMA", "AAA"},
+ {"CCC", "C-C", "CCC"},
+ {"CCC", "C-C", "CCC"},
+ {"B~B", "BBB", "BBB"}
+ })
+ ).addElement(
+ 'C',
+ CoilAdder.getINSTANCE()
+ ).addElement(
+ 'M',
+ ofHatchAdder(
+ GT_MetaTileEntity_MultiblockBase_EM::addClassicMufflerToMachineList, TEXTURE_INDEX,
+ 1
+ )
+ ).addElement(
+ 'A',
+ ofHatchAdderOptional(
+ TT_ElectronicBlastFurnace::addEBFInputsTop, TEXTURE_INDEX,
+ GregTech_API.sBlockCasings1, TEXTURE_INDEX,
+ GregTech_API.sBlockCasings1, TEXTURE_INDEX
+ )
+ ).addElement(
+ 'B',
+ ofHatchAdderOptional(
+ TT_ElectronicBlastFurnace::addEBFInputsBottom, TEXTURE_INDEX,
+ GregTech_API.sBlockCasings1, TEXTURE_INDEX,
+ GregTech_API.sBlockCasings1, TEXTURE_INDEX
+ )
+ )
+ .build();
+
+ @Override
+ public IStructureDefinition<TT_ElectronicBlastFurnace> getStructure_EM() {
+ return STRUCTURE_DEFINITION;
+ }
+
+ @Override
+ protected boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStack itemStack) {
+ this.setCoilMeta((short) -1);
+ boolean ret = this.structureCheck_EM("main", 1, 3, 0) && this.getHeatingCapacity() > -1;
+ if (this.mMufflerHatches.stream()
+ .map(MetaTileEntity::getBaseMetaTileEntity)
+ .mapToInt(ITurnable::getFrontFacing)
+ .noneMatch(x -> x == this.getExtendedFacing().getRelativeUpInWorld().ordinal()))
+ return false;
+ return ret;
+ }
+
+ @Override
+ public void construct(ItemStack itemStack, boolean b) {
+ this.structureBuild_EM("main", 1,3,0, b, itemStack);
+ }
+
+ @Override
+ protected boolean cyclicUpdate_EM() {
+ return false;
+ }
+
+ public final boolean addEBFInputsTop(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) {
+ if (aTileEntity == null)
+ return false;
+ IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
+ if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output)
+ ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex);
+ else
+ return false;
+
+ return this.mOutputHatches.add((GT_MetaTileEntity_Hatch_Output) aMetaTileEntity);
+ }
+
+ private static final Set<FluidStack> POLLUTION_FLUID_STACKS = ImmutableSet.of(
+ Materials.CarbonDioxide.getGas(1000),
+ Materials.CarbonMonoxide.getGas(1000),
+ Materials.SulfurDioxide.getGas(1000)
+ );
+
+ @Override
+ public boolean addOutput(FluidStack aLiquid) {
+ if (aLiquid == null)
+ return false;
+ FluidStack tLiquid = aLiquid.copy();
+
+ if (POLLUTION_FLUID_STACKS.stream().anyMatch(tLiquid::isFluidEqual)) {
+ tLiquid.amount = tLiquid.amount * (mMufflerHatches.stream()
+ .filter(GT_MetaTileEntity_MultiBlockBase::isValidMetaTileEntity)
+ .findFirst()
+ .map(tHatch -> 100 - tHatch.calculatePollutionReduction(100))
+ .orElse(0) + 5) / 100;
+ }
+
+ for (GT_MetaTileEntity_Hatch_Output tHatch : mOutputHatches) {
+ if (
+ (isValidMetaTileEntity(tHatch) && GT_ModHandler.isSteam(aLiquid)
+ ? !tHatch.outputsSteam()
+ : !tHatch.outputsLiquids())
+ || tHatch.getBaseMetaTileEntity().getYCoord() <= this.getBaseMetaTileEntity().getYCoord())
+ continue;
+ int tAmount = tHatch.fill(tLiquid, false);
+ if (tAmount >= tLiquid.amount)
+ return tHatch.fill(tLiquid, true) >= tLiquid.amount;
+ else if (tAmount > 0)
+ tLiquid.amount = tLiquid.amount - tHatch.fill(tLiquid, true);
+ }
+ return false;
+ }
+
+ public final boolean addEBFInputsBottom(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) {
+ if (aTileEntity == null)
+ return false;
+ IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
+ if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch)
+ ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex);
+ else
+ return false;
+
+ if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputBus)
+ return this.mInputBusses.add((GT_MetaTileEntity_Hatch_InputBus) aMetaTileEntity);
+ else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_OutputBus)
+ return this.mOutputBusses.add((GT_MetaTileEntity_Hatch_OutputBus) aMetaTileEntity);
+ else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output)
+ return this.mOutputHatches.add((GT_MetaTileEntity_Hatch_Output) aMetaTileEntity);
+ else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input)
+ return this.mInputHatches.add((GT_MetaTileEntity_Hatch_Input) aMetaTileEntity);
+ else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Energy)
+ return this.mEnergyHatches.add((GT_MetaTileEntity_Hatch_Energy) aMetaTileEntity);
+ else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance)
+ return this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance) aMetaTileEntity);
+ else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_EnergyMulti)
+ return this.eEnergyMulti.add((GT_MetaTileEntity_Hatch_EnergyMulti) aMetaTileEntity);
+ else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_DynamoMulti)
+ return this.eDynamoMulti.add((GT_MetaTileEntity_Hatch_DynamoMulti) aMetaTileEntity);
+ return false;
+ }
+
+ public String[] getDescription() {
+ return new String[]{
+ "Controller Block for the Blast Furnace",
+ "Size(WxHxD): 3x4x3 (Hollow), Controller (Front middle bottom)",
+ "16x Heating Coils (Two middle Layers, hollow)",
+ "1x Input Hatch/Bus (Any bottom layer casing)",
+ "1x Output Hatch/Bus (Any bottom layer casing)",
+ "1x Energy Hatch (Any bottom layer casing)",
+ "1x Maintenance Hatch (Any bottom layer casing)",
+ "1x Muffler Hatch (Top middle)",
+ "1x Output Hatch to recover CO2/CO/SO2 (optional, any top layer casing),",
+ " Recovery scales with Muffler Hatch tier",
+ "Heat Proof Machine Casings for the rest",
+ "Each 900K over the min. Heat Capacity multiplies eu/t by 0.95",
+ "Each 1800K over the min. Heat Capacity allows for one upgraded overclock",
+ "Upgraded overclocks reduce recipe time to 25% and increase EU/t to 400%",
+ "Causes " + 20 * getPollutionPerTick(null) + " Pollution per second",
+ ADV_STR_CHECK
+ };
+ }
+
+ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
+ if (aSide == aFacing) {
+ return new ITexture[]{Textures.BlockIcons.casingTexturePages[0][11], new TT_RenderedExtendedFacingTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE)};
+ }
+ return new ITexture[]{Textures.BlockIcons.casingTexturePages[0][11]};
+ }
+
+ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "ElectricBlastFurnace.png");
+ }
+
+ @Override
+ public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_Container_MultiMachine(aPlayerInventory, aBaseMetaTileEntity);
+ }
+
+ @Override
+ public void setCoilMeta(short coilMeta) {
+ this.coilMeta = coilMeta;
+ }
+
+ @Override
+ public short getCoilMeta() {
+ return coilMeta;
+ }
+
+ private int getHeatingCapacity() {
+ switch (coilMeta) {
+ case 0:
+ return 1801;
+ case 1:
+ return 2701;
+ case 2:
+ return 3601;
+ case 3:
+ return 4501;
+ case 4:
+ return 5401;
+ case 5:
+ return 7201;
+ case 6:
+ return 9001;
+ case 7:
+ return 9901;
+ case 8:
+ return 10801;
+ default:
+ return -1;
+ }
+ }
+
+ @Override
+ public String[] getStructureDescription(ItemStack itemStack) {
+ return new String[0];
+ }
+
+ @Override
+ public IMetaTileEntity newMetaEntity(IGregTechTileEntity iGregTechTileEntity) {
+ return new TT_ElectronicBlastFurnace(this.mName);
+ }
+
+ public boolean checkRecipe_EM(ItemStack aStack) {
+ ArrayList<ItemStack> tInputList = getStoredInputs();
+ int tInputList_sS = tInputList.size();
+ for (int i = 0; i < tInputList_sS - 1; i++) {
+ for (int j = i + 1; j < tInputList_sS; j++) {
+ if (GT_Utility.areStacksEqual(tInputList.get(i), tInputList.get(j))) {
+ if (tInputList.get(i).stackSize >= tInputList.get(j).stackSize) {
+ tInputList.remove(j--);
+ tInputList_sS = tInputList.size();
+ } else {
+ tInputList.remove(i--);
+ tInputList_sS = tInputList.size();
+ break;
+ }
+ }
+ }
+ }
+ ItemStack[] tInputs = tInputList.toArray(new ItemStack[0]);
+
+ ArrayList<FluidStack> tFluidList = getStoredFluids();
+ int tFluidList_sS = tFluidList.size();
+ for (int i = 0; i < tFluidList_sS - 1; i++) {
+ for (int j = i + 1; j < tFluidList_sS; j++) {
+ if (GT_Utility.areFluidsEqual(tFluidList.get(i), tFluidList.get(j))) {
+ if (tFluidList.get(i).amount >= tFluidList.get(j).amount) {
+ tFluidList.remove(j--);
+ tFluidList_sS = tFluidList.size();
+ } else {
+ tFluidList.remove(i--);
+ tFluidList_sS = tFluidList.size();
+ break;
+ }
+ }
+ }
+ }
+ FluidStack[] tFluids = tFluidList.toArray(new FluidStack[0]);
+ if (tInputList.size() > 0) {
+ long tVoltage = getMaxInputVoltage();
+ byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage));
+ GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sBlastRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[tTier], tFluids, tInputs);
+ if (tRecipe == null
+ || (this.getHeatingCapacity() < tRecipe.mSpecialValue)
+ || (!tRecipe.isRecipeInputEqual(true, tFluids, tInputs))) {
+ return false;
+ }
+ this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000);
+ this.mEfficiencyIncrease = 10000;
+ int tHeatCapacityDivTiers = (this.getHeatingCapacity() - tRecipe.mSpecialValue) / 900;
+ byte overclockCount = calculateOverclockednessEBF(tRecipe.mEUt, tRecipe.mDuration, tVoltage);
+ //In case recipe is too OP for that machine
+ if (mMaxProgresstime == Integer.MAX_VALUE - 1 && mEUt == Integer.MAX_VALUE - 1)
+ return false;
+ if (this.mEUt > 0)
+ this.mEUt = (-this.mEUt);
+
+ if (tHeatCapacityDivTiers > 0) {
+ this.mEUt = (int) (this.mEUt * (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
+ }
+ this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime);
+ this.mOutputItems = new ItemStack[]{tRecipe.getOutput(0), tRecipe.getOutput(1)};
+ this.mOutputFluids = new FluidStack[]{tRecipe.getFluidOutput(0)};
+ updateSlots();
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Calcualtes overclocked ness using long integers
+ *
+ * @param aEUt - recipe EUt
+ * @param aDuration - recipe Duration
+ */
+ protected byte calculateOverclockednessEBF(int aEUt, int aDuration, long maxInputVoltage) {
+ byte mTier = (byte) Math.max(0, GT_Utility.getTier(maxInputVoltage)), timesOverclocked = 0;
+ if (mTier == 0) {
+ //Long time calculation
+ long xMaxProgresstime = ((long) aDuration) << 1;
+ if (xMaxProgresstime > Integer.MAX_VALUE - 1) {
+ //make impossible if too long
+ mEUt = Integer.MAX_VALUE - 1;
+ mMaxProgresstime = Integer.MAX_VALUE - 1;
+ } else {
+ mEUt = aEUt >> 2;
+ mMaxProgresstime = (int) xMaxProgresstime;
+ }
+ //return 0;
+ } else {
+ //Long EUt calculation
+ long xEUt = aEUt;
+ //Isnt too low EUt check?
+ long tempEUt = Math.max(xEUt, V[1]);
+
+ mMaxProgresstime = aDuration;
+
+ while (tempEUt <= V[mTier - 1]) {
+ tempEUt <<= 2;//this actually controls overclocking
+ //xEUt *= 4;//this is effect of everclocking
+ mMaxProgresstime >>= 1;//this is effect of overclocking
+ xEUt = mMaxProgresstime == 0 ? xEUt >> 1 : xEUt << 2;//U know, if the time is less than 1 tick make the machine use less power
+ timesOverclocked++;
+ }
+ if (xEUt > Integer.MAX_VALUE - 1) {
+ mEUt = Integer.MAX_VALUE - 1;
+ mMaxProgresstime = Integer.MAX_VALUE - 1;
+ } else {
+ mEUt = (int) xEUt;
+ if (mEUt == 0)
+ mEUt = 1;
+ if (mMaxProgresstime == 0)
+ mMaxProgresstime = 1;//set time to 1 tick
+ }
+ }
+ return timesOverclocked;
+ }
+
+ @Override
+ public boolean isMachineBlockUpdateRecursive() {
+ return true;
+ }
+
+ @Override
+ public boolean isCorrectMachinePart(ItemStack aStack) {
+ return true;
+ }
+
+ @Override
+ public int getMaxEfficiency(ItemStack aStack) {
+ return 10000;
+ }
+
+ @Override
+ public int getPollutionPerTick(ItemStack aStack) {
+ return 20;
+ }
+
+ @Override
+ public int getDamageToComponent(ItemStack aStack) {
+ return 0;
+ }
+
+ @Override
+ public boolean explodesOnComponentBreak(ItemStack aStack) {
+ return false;
+ }
+}
diff --git a/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/multi/GT_Replacement/TT_ImplosionCompressor.java b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/multi/GT_Replacement/TT_ImplosionCompressor.java
new file mode 100644
index 0000000000..387540cfb1
--- /dev/null
+++ b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/multi/GT_Replacement/TT_ImplosionCompressor.java
@@ -0,0 +1,261 @@
+/*
+ * Copyright (c) 2018-2020 bartimaeusnek
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+package com.github.bartimaeusnek.crossmod.tectech.tileentites.multi.GT_Replacement;
+
+import com.github.bartimaeusnek.crossmod.tectech.helper.StructureDefinitions;
+import com.github.technus.tectech.mechanics.constructable.IConstructable;
+import com.github.technus.tectech.mechanics.structure.IStructureDefinition;
+import com.github.technus.tectech.mechanics.structure.StructureDefinition;
+import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_DynamoMulti;
+import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti;
+import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM;
+import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedExtendedFacingTexture;
+import com.google.common.collect.ArrayListMultimap;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Textures;
+import gregtech.api.gui.GT_Container_MultiMachine;
+import gregtech.api.gui.GT_GUIContainer_MultiMachine;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.implementations.*;
+import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.GT_Utility;
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.item.ItemStack;
+
+import java.util.List;
+
+import static com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference.*;
+import static com.github.technus.tectech.mechanics.structure.StructureUtility.*;
+
+public class TT_ImplosionCompressor extends GT_MetaTileEntity_MultiblockBase_EM implements IConstructable {
+
+ public TT_ImplosionCompressor(Object unused) {
+ super(32765, "multimachine.implosioncompressor", "Implosion Compressor");
+ GregTech_API.METATILEENTITIES[32765] = null;
+ GregTech_API.METATILEENTITIES[1001] = this;
+ }
+
+ private TT_ImplosionCompressor(String aName) {
+ super(aName);
+ }
+
+ @Override
+ protected boolean cyclicUpdate_EM() {
+ return false;
+ }
+
+ private byte blocks = 0;
+
+ private static final byte TEXTURE_INDEX = 16;
+ private static final byte SOUND_INDEX = 20;
+
+ private static final ArrayListMultimap<Block, Integer> BLOCKS = ArrayListMultimap.create();
+
+ static {
+ BLOCKS.put(GregTech_API.sBlockCasings2,0);
+ BLOCKS.put(GregTech_API.sBlockCasings3,4);
+ }
+
+ private static final IStructureDefinition<TT_ImplosionCompressor> STRUCTURE_DEFINITION =
+ StructureDefinition.<TT_ImplosionCompressor>builder().addShape("main",
+ StructureDefinitions.CUBE_NO_MUFFLER.getDefinition()
+ ).addElement(
+ 'V',
+ ofChain(
+ ofHatchAdder(
+ TT_ImplosionCompressor::addImplosionHatches,
+ TEXTURE_INDEX,
+ 1
+ ),
+ onElementPass(
+ x -> ++x.blocks,
+ ofBlocksMap(
+ BLOCKS.asMap(),GregTech_API.sBlockCasings2,
+ 0
+ )
+ )
+ )
+ ).build();
+
+ public final boolean addImplosionHatches(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) {
+ if (aTileEntity != null) {
+ IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
+ if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch)
+ ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex);
+ else
+ return false;
+
+ if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputBus)
+ return this.mInputBusses.add((GT_MetaTileEntity_Hatch_InputBus) aMetaTileEntity);
+ else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_OutputBus)
+ return this.mOutputBusses.add((GT_MetaTileEntity_Hatch_OutputBus) aMetaTileEntity);
+ else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Energy)
+ return this.mEnergyHatches.add((GT_MetaTileEntity_Hatch_Energy) aMetaTileEntity);
+ else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance)
+ return this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance) aMetaTileEntity);
+ else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_EnergyMulti)
+ return this.eEnergyMulti.add((GT_MetaTileEntity_Hatch_EnergyMulti) aMetaTileEntity);
+ else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_DynamoMulti)
+ return this.eDynamoMulti.add((GT_MetaTileEntity_Hatch_DynamoMulti) aMetaTileEntity);
+ else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Muffler)
+ return this.mMufflerHatches.add((GT_MetaTileEntity_Hatch_Muffler) aMetaTileEntity);
+ }
+ return false;
+ }
+
+ @Override
+ protected boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStack itemStack) {
+ this.blocks = 0;
+ return this.structureCheck_EM("main", 1,1,0)
+ && this.blocks >= 16;
+ }
+
+ @Override
+ public void construct(ItemStack itemStack, boolean b) {
+ this.structureBuild_EM("main", 1,1,0, b, itemStack);
+ }
+
+ @Override
+ public String[] getStructureDescription(ItemStack itemStack) {
+ return new String[0];
+ }
+
+ @Override
+ public IMetaTileEntity newMetaEntity(IGregTechTileEntity iGregTechTileEntity) {
+ return new TT_ImplosionCompressor(this.mName);
+ }
+
+ @Override
+ public String[] getDescription() {
+ return new String[]{
+ "Controller Block for the Implosion Compressor",
+ "Size(WxHxD): 3x3x3 (Hollow), Controller (Front centered)",
+ "1x Input Bus (Any casing)",
+ "1x Output Bus (Any casing)",
+ "1x Maintenance Hatch (Any casing)",
+ "1x Muffler Hatch (Any casing)",
+ "1x Energy Hatch (Any casing)",
+ "Solid Steel Machine Casings for the rest (16 at least!)",
+ "Casings can be replaced with Explosion Warning Signs",
+ "Causes " + 20 * getPollutionPerTick(null) + " Pollution per second",
+ ADV_STR_CHECK
+ };
+ }
+
+ @Override
+ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
+ if (aSide == aFacing) {
+ return new ITexture[]{Textures.BlockIcons.casingTexturePages[0][TEXTURE_INDEX], new TT_RenderedExtendedFacingTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_IMPLOSION_COMPRESSOR_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_IMPLOSION_COMPRESSOR)};
+ }
+ return new ITexture[]{Textures.BlockIcons.casingTexturePages[0][TEXTURE_INDEX]};
+ }
+
+ @Override
+ public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_Container_MultiMachine(aPlayerInventory, aBaseMetaTileEntity);
+ }
+
+ @Override
+ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "ImplosionCompressor.png");
+ }
+
+ @Override
+ public IStructureDefinition<TT_ImplosionCompressor> getStructure_EM() {
+ return STRUCTURE_DEFINITION;
+ }
+
+ @Override
+ public boolean checkRecipe_EM(ItemStack aStack) {
+ List<ItemStack> tInputList = getStoredInputs();
+ int tInputList_sS=tInputList.size();
+ for (int i = 0; i < tInputList_sS - 1; i++) {
+ for (int j = i + 1; j < tInputList_sS; j++) {
+ if (GT_Utility.areStacksEqual(tInputList.get(i), tInputList.get(j))) {
+ if (tInputList.get(i).stackSize >= tInputList.get(j).stackSize) {
+ tInputList.remove(j--);
+ tInputList_sS=tInputList.size();
+ } else {
+ tInputList.remove(i--);
+ tInputList_sS=tInputList.size();
+ break;
+ }
+ }
+ }
+ }
+ ItemStack[] tInputs = tInputList.toArray(new ItemStack[0]);
+ if (tInputList.size() > 0) {
+ GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sImplosionRecipes.findRecipe(getBaseMetaTileEntity(), false, 9223372036854775807L, null, tInputs);
+ if ((tRecipe != null) && (tRecipe.isRecipeInputEqual(true, null, tInputs))) {
+ this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000);
+ this.mEfficiencyIncrease = 10000;
+ //OC THAT EXPLOSIVE SHIT!!!
+ calculateOverclockedNessMulti(tRecipe.mEUt, tRecipe.mDuration, 1, getMaxInputVoltage());
+ //In case recipe is too OP for that machine
+ if (mMaxProgresstime == Integer.MAX_VALUE - 1 && mEUt == Integer.MAX_VALUE - 1)
+ return false;
+ if (this.mEUt > 0) {
+ this.mEUt = (-this.mEUt);
+ }
+ this.mOutputItems = new ItemStack[]{tRecipe.getOutput(0), tRecipe.getOutput(1)};
+ sendLoopStart(SOUND_INDEX);
+ updateSlots();
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) {
+ super.startSoundLoop(aIndex, aX, aY, aZ);
+ if (aIndex == SOUND_INDEX) {
+ GT_Utility.doSoundAtClient(GregTech_API.sSoundList.get(5), 10, 1.0F, aX, aY, aZ);
+ }
+ }
+
+
+
+ @Override
+ public int getMaxEfficiency(ItemStack aStack) {
+ return 10000;
+ }
+
+ @Override
+ public int getPollutionPerTick(ItemStack aStack) {
+ return 500;
+ }
+
+ @Override
+ public int getDamageToComponent(ItemStack aStack) {
+ return 0;
+ }
+
+ @Override
+ public boolean explodesOnComponentBreak(ItemStack aStack) {
+ return false;
+ }
+}
diff --git a/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/multi/GT_Replacement/TT_OilCrackingUnit.java b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/multi/GT_Replacement/TT_OilCrackingUnit.java
new file mode 100644
index 0000000000..e35782eaf0
--- /dev/null
+++ b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/multi/GT_Replacement/TT_OilCrackingUnit.java
@@ -0,0 +1,325 @@
+/*
+ * Copyright (c) 2018-2020 bartimaeusnek
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+package com.github.bartimaeusnek.crossmod.tectech.tileentites.multi.GT_Replacement;
+
+import com.github.bartimaeusnek.crossmod.tectech.helper.CoilAdder;
+import com.github.bartimaeusnek.crossmod.tectech.helper.IHasCoils;
+import com.github.technus.tectech.mechanics.constructable.IConstructable;
+import com.github.technus.tectech.mechanics.structure.IStructureDefinition;
+import com.github.technus.tectech.mechanics.structure.StructureDefinition;
+import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM;
+import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedExtendedFacingTexture;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.Textures;
+import gregtech.api.gui.GT_Container_MultiMachine;
+import gregtech.api.gui.GT_GUIContainer_MultiMachine;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.GT_Utility;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidStack;
+
+import java.util.ArrayList;
+
+import static com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference.ADV_STR_CHECK;
+import static com.github.technus.tectech.mechanics.structure.StructureUtility.*;
+
+public class TT_OilCrackingUnit extends GT_MetaTileEntity_MultiblockBase_EM implements IHasCoils, IConstructable {
+
+ public TT_OilCrackingUnit(Object unused) {
+ super(32765, "multimachine.cracker", "Oil Cracking Unit");
+ GregTech_API.METATILEENTITIES[32765] = null;
+ GregTech_API.METATILEENTITIES[1160] = this;
+ }
+
+ private TT_OilCrackingUnit(String aName) {
+ super(aName);
+ }
+
+ private short coilMeta = -1;
+
+ @Override
+ public void setCoilMeta(short coilMeta) {
+ this.coilMeta = coilMeta;
+ }
+
+ @Override
+ public short getCoilMeta() {
+ return coilMeta;
+ }
+
+ private byte blocks = 0;
+
+ private static final byte TEXTURE_INDEX = 49;
+
+ @Override
+ protected boolean cyclicUpdate_EM() {
+ return false;
+ }
+
+ private static final IStructureDefinition<TT_OilCrackingUnit> STRUCTURE_DEFINITION = StructureDefinition.<TT_OilCrackingUnit>builder().addShape("main",
+ transpose(new String[][]{
+ {"ABABA","ABGBA","ABABA"},
+ {"AB~BA","E---F","ABABA"},
+ {"ABCBA","ABABA","ABABA"}
+ })
+ ).addElement(
+ 'A',
+ onElementPass(
+ x -> ++x.blocks,ofBlock(
+ GregTech_API.sBlockCasings4,
+ 1
+ )
+ )
+ ).addElement(
+ 'B',
+ CoilAdder.getINSTANCE()
+ ).addElement(
+ 'C',
+ ofHatchAdder(
+ GT_MetaTileEntity_MultiblockBase_EM::addClassicMaintenanceToMachineList,
+ TEXTURE_INDEX,
+ 1
+ )
+ ).addElement(
+ 'E',
+ ofHatchAdder(
+ TT_OilCrackingUnit::addInputFluidHatch,
+ TEXTURE_INDEX,
+ 2
+ )
+ ).addElement(
+ 'F',
+ ofHatchAdder(
+ TT_OilCrackingUnit::addOutputFluidHatch,
+ TEXTURE_INDEX,
+ 3
+ )
+ ).addElement(
+ 'G',
+ ofHatchAdder(
+ TT_OilCrackingUnit::addMiddleFluidHatch,
+ TEXTURE_INDEX,
+ 4
+ )
+ ).build();
+
+ GT_MetaTileEntity_Hatch_Input middleFluidHatch;
+
+ public final boolean addMiddleFluidHatch(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) {
+ if (aTileEntity == null)
+ return false;
+ else {
+ IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
+ if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) {
+ ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex);
+ ((GT_MetaTileEntity_Hatch_Input)aMetaTileEntity).mRecipeMap = this.getRecipeMap();
+ this.middleFluidHatch = (GT_MetaTileEntity_Hatch_Input)aMetaTileEntity;
+ return true;
+ } else
+ return false;
+ }
+ }
+
+ @Override
+ protected boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStack itemStack) {
+ this.coilMeta = -1;
+ this.blocks = 0;
+ return this.structureCheck_EM("main", 2,1,0)
+ && this.blocks >= 18;
+ }
+
+ public final boolean addOutputFluidHatch(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) {
+ if (aTileEntity == null)
+ return false;
+ else {
+ IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
+ if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output) {
+ ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex);
+ return this.mOutputHatches.add((GT_MetaTileEntity_Hatch_Output)aMetaTileEntity);
+ } else
+ return false;
+ }
+ }
+
+ public final boolean addInputFluidHatch(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) {
+ if (aTileEntity == null)
+ return false;
+ else {
+ IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
+ if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) {
+ ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex);
+ ((GT_MetaTileEntity_Hatch_Input)aMetaTileEntity).mRecipeMap = this.getRecipeMap();
+ return this.mInputHatches.add((GT_MetaTileEntity_Hatch_Input)aMetaTileEntity);
+ } else
+ return false;
+ }
+ }
+
+ @Override
+ public IStructureDefinition<TT_OilCrackingUnit> getStructure_EM() {
+ return STRUCTURE_DEFINITION;
+ }
+
+ @Override
+ public IMetaTileEntity newMetaEntity(IGregTechTileEntity iGregTechTileEntity) {
+ return new TT_OilCrackingUnit(this.mName);
+ }
+
+ @Override
+ public String[] getDescription() {
+ return new String[]{
+ "Controller Block for the Oil Cracking Unit",
+ "Thermally cracks heavy hydrocarbons into lighter fractions",
+ "Size(WxHxD): 5x3x3 (Hollow), Controller (Front center)",
+ "Ring of 8 Coils (Each side of Controller)",
+ "Gets 5% energy cost reduction per coil tier",
+ "1x Hydrocarbon Input Bus/Hatch (Any left/right side casing)",
+ "1x Steam/Hydrogen Input Hatch (Any middle ring casing)",
+ "1x Cracked Hydrocarbon Output Hatch (Any left/right side casing)",
+ "1x Maintenance Hatch (Any casing)",
+ "1x Energy Hatch (Any casing)",
+ "Clean Stainless Steel Machine Casings for the rest (18 at least!)",
+ "Input/Output Hatches must be on opposite sides",
+ ADV_STR_CHECK
+ };
+ }
+
+ @Override
+ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
+ if (aSide == aFacing) {
+ return new ITexture[]{Textures.BlockIcons.casingTexturePages[0][TEXTURE_INDEX],
+ new TT_RenderedExtendedFacingTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER)};
+ }
+ return new ITexture[]{Textures.BlockIcons.casingTexturePages[0][TEXTURE_INDEX]};
+ }
+
+ @Override
+ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "OilCrackingUnit.png");
+ }
+
+ @Override
+ public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_Container_MultiMachine(aPlayerInventory, aBaseMetaTileEntity);
+ }
+
+ @Override
+ public boolean checkRecipe_EM(ItemStack aStack) {
+ ArrayList<FluidStack> tInputList = getStoredFluids();
+ FluidStack[] tFluidInputs = tInputList.toArray(new FluidStack[0]);
+ long tVoltage = getMaxInputVoltage();
+ byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage));
+
+ GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sCrakingRecipes.findRecipe(
+ getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[tTier], tFluidInputs , mInventory[1]);
+ if (tRecipe != null && tRecipe.isRecipeInputEqual(true, tFluidInputs, mInventory[1])) {
+ this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000);
+ this.mEfficiencyIncrease = 10000;
+ calculateOverclockedNessMulti(tRecipe.mEUt, tRecipe.mDuration, 1, getMaxInputVoltage());
+ if (mMaxProgresstime == Integer.MAX_VALUE - 1 && mEUt == Integer.MAX_VALUE - 1)
+ return false;
+ this.mEUt *= Math.pow(0.95D, this.coilMeta);
+
+ if (this.mEUt > 0) {
+ this.mEUt = (-this.mEUt);
+ }
+
+ this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime);
+ this.mOutputFluids = new FluidStack[]{tRecipe.getFluidOutput(0)};
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public boolean isMachineBlockUpdateRecursive() {
+ return true;
+ }
+
+ @Override
+ public boolean isCorrectMachinePart(ItemStack aStack) {
+ return true;
+ }
+
+ @Override
+ public int getMaxEfficiency(ItemStack aStack) {
+ return 10000;
+ }
+
+ @Override
+ public int getPollutionPerTick(ItemStack aStack) {
+ return 0;
+ }
+
+ @Override
+ public int getDamageToComponent(ItemStack aStack) {
+ return 0;
+ }
+
+ @Override
+ public boolean explodesOnComponentBreak(ItemStack aStack) {
+ return false;
+ }
+
+ @Override
+ public ArrayList<FluidStack> getStoredFluids() {
+ ArrayList<FluidStack> rList = new ArrayList<>();
+
+ for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) {
+ tHatch.mRecipeMap = getRecipeMap();
+ if (isValidMetaTileEntity(tHatch) && tHatch.getFillableStack() != null) {
+ FluidStack tStack = tHatch.getFillableStack();
+ if (!tStack.isFluidEqual(GT_ModHandler.getSteam(1000)) && !tStack.isFluidEqual(Materials.Hydrogen.getGas(1000)))
+ rList.add(tStack);
+ }
+ }
+
+ if (this.middleFluidHatch != null && isValidMetaTileEntity(this.middleFluidHatch) && this.middleFluidHatch.getFillableStack() != null) {
+ this.middleFluidHatch.mRecipeMap = getRecipeMap();
+ FluidStack tStack = this.middleFluidHatch.getFillableStack();
+ if (tStack.isFluidEqual(GT_ModHandler.getSteam(1000)) || tStack.isFluidEqual(Materials.Hydrogen.getGas(1000)))
+ rList.add(tStack);
+ }
+
+ return rList;
+ }
+
+ @Override
+ public void construct(ItemStack itemStack, boolean b) {
+ this.structureBuild_EM("main", 2,1,0, b, itemStack);
+ }
+
+ @Override
+ public String[] getStructureDescription(ItemStack itemStack) {
+ return new String[0];
+ }
+}
diff --git a/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/multi/GT_Replacement/TT_VaccuumFreezer.java b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/multi/GT_Replacement/TT_VaccuumFreezer.java
new file mode 100644
index 0000000000..4e07db5605
--- /dev/null
+++ b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/multi/GT_Replacement/TT_VaccuumFreezer.java
@@ -0,0 +1,227 @@
+/*
+ * Copyright (c) 2018-2020 bartimaeusnek
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+package com.github.bartimaeusnek.crossmod.tectech.tileentites.multi.GT_Replacement;
+
+import com.github.bartimaeusnek.crossmod.tectech.helper.StructureDefinitions;
+import com.github.technus.tectech.mechanics.constructable.IConstructable;
+import com.github.technus.tectech.mechanics.structure.IStructureDefinition;
+import com.github.technus.tectech.mechanics.structure.StructureDefinition;
+import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_DynamoMulti;
+import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti;
+import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM;
+import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedExtendedFacingTexture;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Textures;
+import gregtech.api.gui.GT_Container_MultiMachine;
+import gregtech.api.gui.GT_GUIContainer_MultiMachine;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.implementations.*;
+import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.GT_Utility;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.item.ItemStack;
+
+import java.util.ArrayList;
+
+import static com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference.ADV_STR_CHECK;
+import static com.github.technus.tectech.mechanics.structure.StructureUtility.*;
+
+public class TT_VaccuumFreezer extends GT_MetaTileEntity_MultiblockBase_EM implements IConstructable {
+ public TT_VaccuumFreezer(Object unused) {
+ super(32765, "multimachine.vacuumfreezer", "Vacuum Freezer");
+ GregTech_API.METATILEENTITIES[32765] = null;
+ GregTech_API.METATILEENTITIES[1002] = this;
+ }
+
+ @Override
+ protected boolean cyclicUpdate_EM() {
+ return false;
+ }
+
+ private TT_VaccuumFreezer(String aName) {
+ super(aName);
+ }
+
+ private static final byte TEXTURE_INDEX = 17;
+
+ private byte blocks = 0;
+
+ private static final IStructureDefinition<TT_VaccuumFreezer> STRUCTURE_DEFINITION =
+ StructureDefinition.<TT_VaccuumFreezer>builder().addShape("main",
+ StructureDefinitions.CUBE_NO_MUFFLER.getDefinition()
+ ).addElement(
+ 'V',
+ ofChain(
+ ofHatchAdder(
+ TT_VaccuumFreezer::addVaccumFreezerHatches,
+ TEXTURE_INDEX,
+ 1
+ ),
+ onElementPass(
+ x -> ++x.blocks,
+ ofBlock(
+ GregTech_API.sBlockCasings2,
+ 1
+ )
+ )
+ )
+ ).build();
+
+ @Override
+ public IStructureDefinition<TT_VaccuumFreezer> getStructure_EM() {
+ return STRUCTURE_DEFINITION;
+ }
+
+ public String[] getDescription() {
+ return new String[]{
+ "Controller Block for the Vacuum Freezer",
+ "Super cools hot ingots and cells",
+ "Size(WxHxD): 3x3x3 (Hollow), Controller (Front centered)",
+ "1x Input Bus (Any casing)",
+ "1x Output Bus (Any casing)",
+ "1x Maintenance Hatch (Any casing)",
+ "1x Energy Hatch (Any casing)",
+ "Frost Proof Machine Casings for the rest (16 at least!)",
+ ADV_STR_CHECK
+ };
+ }
+
+ @Override
+ protected boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStack itemStack) {
+ this.blocks = 0;
+ return this.structureCheck_EM("main", 1,1,0)
+ && this.blocks >= 16;
+ }
+
+ @SideOnly(Side.CLIENT)
+ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
+ if (aSide == aFacing) {
+ return new ITexture[]{Textures.BlockIcons.casingTexturePages[0][TEXTURE_INDEX], new TT_RenderedExtendedFacingTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_VACUUM_FREEZER)};
+ }
+ return new ITexture[]{Textures.BlockIcons.casingTexturePages[0][TEXTURE_INDEX]};
+ }
+
+ @Override
+ public boolean checkRecipe_EM(ItemStack itemStack) {
+ ArrayList<ItemStack> tInputList = getStoredInputs();
+ for (ItemStack tInput : tInputList) {
+ long tVoltage = getMaxInputVoltage();
+ byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage));
+
+ GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sVacuumRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[tTier], null, tInput);
+ if (tRecipe != null) {
+ if (tRecipe.isRecipeInputEqual(true, null, tInput)) {
+ this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000);
+ this.mEfficiencyIncrease = 10000;
+
+ calculateOverclockedNessMulti(tRecipe.mEUt, tRecipe.mDuration, 1, tVoltage);
+ //In case recipe is too OP for that machine
+ if (mMaxProgresstime == Integer.MAX_VALUE - 1 && mEUt == Integer.MAX_VALUE - 1)
+ return false;
+ if (this.mEUt > 0) {
+ this.mEUt = (-this.mEUt);
+ }
+ this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime);
+ this.mOutputItems = new ItemStack[]{tRecipe.getOutput(0)};
+ updateSlots();
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public IMetaTileEntity newMetaEntity(IGregTechTileEntity iGregTechTileEntity) {
+ return new TT_VaccuumFreezer(this.mName);
+ }
+
+ @Override
+ public boolean isMachineBlockUpdateRecursive() {
+ return true;
+ }
+
+ public int getMaxEfficiency(ItemStack aStack) {
+ return 10000;
+ }
+
+ public int getPollutionPerTick(ItemStack aStack) {
+ return 0;
+ }
+
+ public int getDamageToComponent(ItemStack aStack) {
+ return 0;
+ }
+
+ public boolean explodesOnComponentBreak(ItemStack aStack) {
+ return false;
+ }
+
+ @Override
+ public void construct(ItemStack itemStack, boolean b) {
+ this.structureBuild_EM("main", 1,1,0, b, itemStack);
+ }
+
+ @Override
+ public String[] getStructureDescription(ItemStack itemStack) {
+ return new String[0];
+ }
+
+ @Override
+ public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_Container_MultiMachine(aPlayerInventory, aBaseMetaTileEntity);
+ }
+
+ @Override
+ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "VacuumFreezer.png");
+ }
+
+ public final boolean addVaccumFreezerHatches(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) {
+ if (aTileEntity != null) {
+ IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
+ if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch)
+ ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex);
+ else
+ return false;
+
+ if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputBus)
+ return this.mInputBusses.add((GT_MetaTileEntity_Hatch_InputBus) aMetaTileEntity);
+ else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_OutputBus)
+ return this.mOutputBusses.add((GT_MetaTileEntity_Hatch_OutputBus) aMetaTileEntity);
+ else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Energy)
+ return this.mEnergyHatches.add((GT_MetaTileEntity_Hatch_Energy) aMetaTileEntity);
+ else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance)
+ return this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance) aMetaTileEntity);
+ else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_EnergyMulti)
+ return this.eEnergyMulti.add((GT_MetaTileEntity_Hatch_EnergyMulti) aMetaTileEntity);
+ else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_DynamoMulti)
+ return this.eDynamoMulti.add((GT_MetaTileEntity_Hatch_DynamoMulti) aMetaTileEntity);
+ }
+ return false;
+ }
+}
diff --git a/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/tiered/TT_MetaTileEntity_LowPowerLaserBox.java b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/tiered/TT_MetaTileEntity_LowPowerLaserBox.java
index aa88094922..7fe4d93a29 100644
--- a/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/tiered/TT_MetaTileEntity_LowPowerLaserBox.java
+++ b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/tiered/TT_MetaTileEntity_LowPowerLaserBox.java
@@ -22,12 +22,12 @@
package com.github.bartimaeusnek.crossmod.tectech.tileentites.tiered;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import net.minecraft.util.StatCollector;
public class TT_MetaTileEntity_LowPowerLaserBox extends TT_Abstract_LowPowerLaserThingy {
@@ -139,6 +139,6 @@ public class TT_MetaTileEntity_LowPowerLaserBox extends TT_Abstract_LowPowerLase
@Override
public String[] getDescription() {
- return new String[]{"Like a Tranformer... but for LAZORZ", "Transferrate: " + ChatColorHelper.YELLOW + this.getTotalPower() + ChatColorHelper.WHITE + " EU/t", StatCollector.translateToLocal("tooltip.bw.1.name") + ChatColorHelper.DARKGREEN + " BartWorks"};
+ return new String[]{"Like a Tranformer... but for LAZORZ", "Transferrate: " + ChatColorHelper.YELLOW + this.getTotalPower() + ChatColorHelper.WHITE + " EU/t", BW_Tooltip_Reference.ADDED_BY_BARTIMAEUSNEK_VIA_BARTWORKS.get()};
}
}
diff --git a/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/tiered/TT_MetaTileEntity_LowPowerLaserDynamo.java b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/tiered/TT_MetaTileEntity_LowPowerLaserDynamo.java
index df3cd12773..307e9307cb 100644
--- a/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/tiered/TT_MetaTileEntity_LowPowerLaserDynamo.java
+++ b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/tiered/TT_MetaTileEntity_LowPowerLaserDynamo.java
@@ -22,7 +22,7 @@
package com.github.bartimaeusnek.crossmod.tectech.tileentites.tiered;
-import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_DynamoTunnel;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
@@ -71,7 +71,7 @@ public class TT_MetaTileEntity_LowPowerLaserDynamo extends GT_MetaTileEntity_Hat
return new String[]{
this.mDescription,
StatCollector.translateToLocal("gt.blockmachines.hatch.dynamotunnel.desc.1") + ": " + EnumChatFormatting.YELLOW + this.getTotalPower() + EnumChatFormatting.RESET + " EU/t",
- StatCollector.translateToLocal("tooltip.bw.1.name") + ChatColorHelper.DARKGREEN + " BartWorks"
+ BW_Tooltip_Reference.ADDED_BY_BARTIMAEUSNEK_VIA_BARTWORKS.get()
};
}
diff --git a/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/tiered/TT_MetaTileEntity_LowPowerLaserHatch.java b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/tiered/TT_MetaTileEntity_LowPowerLaserHatch.java
index 1774fc0966..922dea51a8 100644
--- a/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/tiered/TT_MetaTileEntity_LowPowerLaserHatch.java
+++ b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/tiered/TT_MetaTileEntity_LowPowerLaserHatch.java
@@ -22,7 +22,7 @@
package com.github.bartimaeusnek.crossmod.tectech.tileentites.tiered;
-import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyTunnel;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
@@ -46,7 +46,7 @@ public class TT_MetaTileEntity_LowPowerLaserHatch extends GT_MetaTileEntity_Hatc
return new String[]{
this.mDescription,
StatCollector.translateToLocal("gt.blockmachines.hatch.energytunnel.desc.1") + ": " + EnumChatFormatting.YELLOW + this.getTotalPower() + EnumChatFormatting.RESET + " EU/t",
- StatCollector.translateToLocal("tooltip.bw.1.name") + ChatColorHelper.DARKGREEN + " BartWorks"
+ BW_Tooltip_Reference.ADDED_BY_BARTIMAEUSNEK_VIA_BARTWORKS.get()
};
}
diff --git a/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/tiered/TT_MetaTileEntity_Pipe_Energy_LowPower.java b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/tiered/TT_MetaTileEntity_Pipe_Energy_LowPower.java
index 12f4c6d2cd..26ba1039d0 100644
--- a/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/tiered/TT_MetaTileEntity_Pipe_Energy_LowPower.java
+++ b/src/main/java/com/github/bartimaeusnek/crossmod/tectech/tileentites/tiered/TT_MetaTileEntity_Pipe_Energy_LowPower.java
@@ -22,6 +22,7 @@
package com.github.bartimaeusnek.crossmod.tectech.tileentites.tiered;
+import com.github.bartimaeusnek.bartworks.util.BW_Tooltip_Reference;
import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
import gregtech.api.enums.Dyes;
import gregtech.api.enums.Materials;
@@ -37,7 +38,6 @@ import gregtech.common.GT_Client;
import ic2.core.Ic2Items;
import net.minecraft.block.Block;
import net.minecraft.tileentity.TileEntity;
-import net.minecraft.util.StatCollector;
import java.util.ArrayList;
import java.util.HashSet;
@@ -83,7 +83,7 @@ public class TT_MetaTileEntity_Pipe_Energy_LowPower extends GT_MetaPipeEntity_Ca
"Does not auto-connect",
"Does not turn or bend",
ChatColorHelper.WHITE + "Must be " + ChatColorHelper.YELLOW + "c" + ChatColorHelper.RED + "o" + ChatColorHelper.BLUE + "l" + ChatColorHelper.DARKPURPLE + "o" + ChatColorHelper.GOLD + "r" + ChatColorHelper.DARKRED + "e" + ChatColorHelper.DARKGREEN + "d" + ChatColorHelper.WHITE + " in order to work",
- StatCollector.translateToLocal("tooltip.bw.1.name") + ChatColorHelper.DARKGREEN + " BartWorks"
+ BW_Tooltip_Reference.ADDED_BY_BARTIMAEUSNEK_VIA_BARTWORKS.get()
};
}