aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorkuba6000 <kuba.123123.6000@gmail.com>2023-10-28 12:29:23 +0200
committerMartin Robertz <dream-master@gmx.net>2023-10-30 08:24:22 +0100
commite3e8a30e7d40dbbcf3f7426b580c5b9c4e7e5218 (patch)
tree0a0f788c63f9bf04461d18d4852d35cb5792e62d /src
parent3d1a46d04bb92ac5558f5938d6d5eb9e4ee9b4d9 (diff)
downloadGT5-Unofficial-e3e8a30e7d40dbbcf3f7426b580c5b9c4e7e5218.tar.gz
GT5-Unofficial-e3e8a30e7d40dbbcf3f7426b580c5b9c4e7e5218.tar.bz2
GT5-Unofficial-e3e8a30e7d40dbbcf3f7426b580c5b9c4e7e5218.zip
Start working on moving DEFC from EMT
Diffstat (limited to 'src')
-rw-r--r--src/main/java/kubatech/api/enums/ItemList.java15
-rw-r--r--src/main/java/kubatech/kubatech.java17
-rw-r--r--src/main/java/kubatech/loaders/BlockLoader.java10
-rw-r--r--src/main/java/kubatech/loaders/DEFCRecipes.java205
-rw-r--r--src/main/java/kubatech/loaders/ItemLoader.java28
-rw-r--r--src/main/java/kubatech/loaders/RecipeLoader.java12
-rw-r--r--src/main/java/kubatech/loaders/block/defc/DEFCCasingBlock.java62
-rw-r--r--src/main/java/kubatech/loaders/block/defc/DEFCCasingItemBlock.java36
-rw-r--r--src/main/java/kubatech/loaders/block/kubablock/BlockProxy.java (renamed from src/main/java/kubatech/loaders/block/BlockProxy.java)4
-rw-r--r--src/main/java/kubatech/loaders/block/kubablock/IProxyTileEntityProvider.java (renamed from src/main/java/kubatech/loaders/block/IProxyTileEntityProvider.java)2
-rw-r--r--src/main/java/kubatech/loaders/block/kubablock/KubaBlock.java (renamed from src/main/java/kubatech/loaders/block/KubaBlock.java)2
-rw-r--r--src/main/java/kubatech/loaders/block/kubablock/KubaItemBlock.java (renamed from src/main/java/kubatech/loaders/block/KubaItemBlock.java)2
-rw-r--r--src/main/java/kubatech/loaders/block/kubablock/blocks/TeaAcceptor.java (renamed from src/main/java/kubatech/loaders/block/blocks/TeaAcceptor.java)6
-rw-r--r--src/main/java/kubatech/loaders/block/kubablock/blocks/TeaStorage.java (renamed from src/main/java/kubatech/loaders/block/blocks/TeaStorage.java)6
-rw-r--r--src/main/java/kubatech/loaders/item/ItemProxy.java4
-rw-r--r--src/main/java/kubatech/tileentity/TeaAcceptorTile.java2
-rw-r--r--src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_DEFusionCrafter.java266
-rw-r--r--src/main/resources/assets/kubatech/lang/en_US.lang8
-rw-r--r--src/main/resources/assets/kubatech/textures/blocks/casing/defc_0.pngbin0 -> 512 bytes
-rw-r--r--src/main/resources/assets/kubatech/textures/blocks/casing/defc_1.pngbin0 -> 372 bytes
-rw-r--r--src/main/resources/assets/kubatech/textures/blocks/casing/defc_2.pngbin0 -> 647 bytes
-rw-r--r--src/main/resources/assets/kubatech/textures/blocks/casing/defc_3.pngbin0 -> 469 bytes
-rw-r--r--src/main/resources/assets/kubatech/textures/blocks/casing/defc_4.pngbin0 -> 694 bytes
-rw-r--r--src/main/resources/assets/kubatech/textures/blocks/casing/defc_5.pngbin0 -> 473 bytes
-rw-r--r--src/main/resources/assets/kubatech/textures/gui/slot/fusion_crafter.pngbin0 -> 2885 bytes
-rw-r--r--src/main/resources/assets/kubatech/textures/items/defc_schematic_t1.pngbin0 -> 2414 bytes
-rw-r--r--src/main/resources/assets/kubatech/textures/items/defc_schematic_t2.pngbin0 -> 2657 bytes
-rw-r--r--src/main/resources/assets/kubatech/textures/items/defc_schematic_t3.pngbin0 -> 2316 bytes
-rw-r--r--src/main/resources/assets/kubatech/textures/items/defc_schematic_t4.pngbin0 -> 1961 bytes
29 files changed, 666 insertions, 21 deletions
diff --git a/src/main/java/kubatech/api/enums/ItemList.java b/src/main/java/kubatech/api/enums/ItemList.java
index 41a57f988f..2eb4a3d889 100644
--- a/src/main/java/kubatech/api/enums/ItemList.java
+++ b/src/main/java/kubatech/api/enums/ItemList.java
@@ -20,6 +20,7 @@ public enum ItemList implements IItemContainer {
ExtremeExterminationChamber,
ExtremeIndustrialApiary,
ExtremeIndustrialGreenhouse,
+ DraconicEvolutionFusionCrafter,
LegendaryBlackTea,
LegendaryButterflyTea,
LegendaryEarlGrayTea,
@@ -59,7 +60,19 @@ public enum ItemList implements IItemContainer {
TeaAcceptorResearchNote,
TeaAcceptor,
TeaStorage,
- Beeeeee;
+ Beeeeee,
+ DEFCCasingBase,
+ DEFCCasingT1,
+ DEFCCasingT2,
+ DEFCCasingT3,
+ DEFCCasingT4,
+ DEFCCasingT5,
+ DEFCDraconicSchematic,
+ DEFCWyvernSchematic,
+ DEFCAwakenedSchematic,
+ DEFCChaoticSchematic,
+
+ ;
private ItemStack mStack;
private boolean mHasNotBeenSet = true;
diff --git a/src/main/java/kubatech/kubatech.java b/src/main/java/kubatech/kubatech.java
index 5bc38d189e..673e8c0c89 100644
--- a/src/main/java/kubatech/kubatech.java
+++ b/src/main/java/kubatech/kubatech.java
@@ -26,6 +26,8 @@ import java.io.IOException;
import java.util.Collection;
import java.util.List;
+import cpw.mods.fml.common.event.FMLMissingMappingsEvent;
+import cpw.mods.fml.common.event.FMLModIdMappingEvent;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
@@ -101,9 +103,13 @@ public class kubatech {
@Override
public void displayAllReleventItems(List p_78018_1_) {
super.displayAllReleventItems(p_78018_1_);
- p_78018_1_.add(ItemList.ExtremeExterminationChamber.get(1));
- p_78018_1_.add(ItemList.ExtremeIndustrialApiary.get(1));
- p_78018_1_.add(ItemList.ExtremeIndustrialGreenhouse.get(1));
+ if (ItemList.ExtremeExterminationChamber.hasBeenSet())
+ p_78018_1_.add(ItemList.ExtremeExterminationChamber.get(1));
+ if (ItemList.ExtremeIndustrialApiary.hasBeenSet()) p_78018_1_.add(ItemList.ExtremeIndustrialApiary.get(1));
+ if (ItemList.ExtremeIndustrialGreenhouse.hasBeenSet())
+ p_78018_1_.add(ItemList.ExtremeIndustrialGreenhouse.get(1));
+ if (ItemList.DraconicEvolutionFusionCrafter.hasBeenSet())
+ p_78018_1_.add(ItemList.DraconicEvolutionFusionCrafter.get(1));
}
};
@@ -176,6 +182,11 @@ public class kubatech {
proxy.loadComplete(event);
}
+ @Mod.EventHandler
+ public void mapping(FMLMissingMappingsEvent){
+
+ }
+
public static void debug(String message) {
LOG.debug(message);
}
diff --git a/src/main/java/kubatech/loaders/BlockLoader.java b/src/main/java/kubatech/loaders/BlockLoader.java
index e6f8d5b8ed..89a760d5ef 100644
--- a/src/main/java/kubatech/loaders/BlockLoader.java
+++ b/src/main/java/kubatech/loaders/BlockLoader.java
@@ -25,10 +25,11 @@ import net.minecraft.item.ItemBlock;
import cpw.mods.fml.common.registry.GameRegistry;
import kubatech.api.enums.ItemList;
-import kubatech.loaders.block.KubaBlock;
-import kubatech.loaders.block.KubaItemBlock;
-import kubatech.loaders.block.blocks.TeaAcceptor;
-import kubatech.loaders.block.blocks.TeaStorage;
+import kubatech.loaders.block.defc.DEFCCasingBlock;
+import kubatech.loaders.block.kubablock.KubaBlock;
+import kubatech.loaders.block.kubablock.KubaItemBlock;
+import kubatech.loaders.block.kubablock.blocks.TeaAcceptor;
+import kubatech.loaders.block.kubablock.blocks.TeaStorage;
import kubatech.tileentity.TeaAcceptorTile;
import kubatech.tileentity.TeaStorageTile;
@@ -36,6 +37,7 @@ public class BlockLoader {
public static final KubaBlock kubaBlock = new KubaBlock(Material.anvil);
public static final ItemBlock kubaItemBlock = new KubaItemBlock(kubaBlock);
+ public static final DEFCCasingBlock defcCasingBlock = new DEFCCasingBlock();
public static void registerBlocks() {
GameRegistry.registerTileEntity(TeaAcceptorTile.class, "KT_TeaAcceptor");
diff --git a/src/main/java/kubatech/loaders/DEFCRecipes.java b/src/main/java/kubatech/loaders/DEFCRecipes.java
new file mode 100644
index 0000000000..6ba505d57b
--- /dev/null
+++ b/src/main/java/kubatech/loaders/DEFCRecipes.java
@@ -0,0 +1,205 @@
+package kubatech.loaders;
+
+import static gregtech.api.enums.GT_Values.E;
+import static gregtech.api.enums.Mods.GregTech;
+
+import java.util.HashSet;
+
+import net.minecraft.init.Blocks;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidRegistry;
+import net.minecraftforge.fluids.FluidStack;
+
+import com.gtnewhorizons.modularui.api.drawable.UITexture;
+
+import cpw.mods.fml.common.Loader;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.MaterialsUEVplus;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_OreDictUnificator;
+import gregtech.api.util.GT_Recipe;
+import kubatech.Tags;
+import kubatech.api.LoaderReference;
+
+public class DEFCRecipes {
+
+ public static final GT_Recipe.GT_Recipe_Map sFusionCraftingRecipes = new GT_Recipe.GT_Recipe_Map(
+ new HashSet<>(16),
+ "emt.recipe.fusioncrafting",
+ "Draconic Evolution Fusion Crafter",
+ null,
+ GregTech.getResourcePath("textures/gui/basicmachines", "FusionCrafter"),
+ 9,
+ 1,
+ 1,
+ 0,
+ 1,
+ "Tier Casing: ",
+ 1,
+ E,
+ false,
+ true).setSlotOverlay(false, false, UITexture.fullImage(Tags.MODID, "gui/slot/fusion_crafter"));
+
+ public static void addFusionCraftingRecipe(ItemStack[] inputs, FluidStack[] fluidinputs, ItemStack[] outputs,
+ FluidStack[] fluidoutputs, int aDuration, int aEUt, int aTier) {
+ sFusionCraftingRecipes
+ .addRecipe(true, inputs, outputs, null, fluidinputs, fluidoutputs, aDuration, aEUt, aTier);
+ }
+
+ public static void addFusionCraftingRecipeNonOptimized(ItemStack[] inputs, FluidStack[] fluidinputs,
+ ItemStack[] outputs, FluidStack[] fluidoutputs, int aDuration, int aEUt, int aTier) {
+ sFusionCraftingRecipes
+ .addRecipe(false, inputs, outputs, null, fluidinputs, fluidoutputs, aDuration, aEUt, aTier);
+ }
+
+ public static void addFusionCraftingRecipe(ItemStack[] inputs, ItemStack output, int aDuration, int aEUt,
+ int aTier) {
+ addFusionCraftingRecipe(inputs, null, new ItemStack[] { output }, null, aDuration, aEUt, aTier);
+ }
+
+ // Use this if you don't want your recipes quantity to be splitted
+ public static void addFusionCraftingRecipeNonOptimized(ItemStack[] inputs, FluidStack fluidinput, ItemStack output,
+ FluidStack fluidoutput, int aDuration, int aEUt, int aTier) {
+ addFusionCraftingRecipeNonOptimized(
+ inputs,
+ new FluidStack[] { fluidinput },
+ new ItemStack[] { output },
+ new FluidStack[] { fluidoutput },
+ aDuration,
+ aEUt,
+ aTier);
+ }
+
+ public static void addRecipes() {
+
+ // CORES
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Osmiridium, 4),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Ichorium, 1),
+ ItemList.QuantumEye.get(1L),
+ kubatech.api.enums.ItemList.DEFCDraconicSchematic.get(0L))
+ .fluidInputs(Materials.Sunnarium.getMolten(1440))
+ .itemOutputs(GT_ModHandler.getModItem("DraconicEvolution", "draconicCore", 1, 0))
+ .eut(500_000)
+ .duration(400)
+ .specialValue(1)
+ .addTo(sFusionCraftingRecipes);
+
+ /*
+ * addFusionCraftingRecipeNonOptimized(
+ * new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Osmiridium, 4),
+ * GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Ichorium, 1), ItemList.QuantumEye.get(1L),
+ * kubatech.api.enums.ItemList.DEFCDraconicSchematic.get(0L) },
+ * Materials.Sunnarium.getMolten(1440),
+ * GT_ModHandler.getModItem("DraconicEvolution", "draconicCore", 1, 0),
+ * GT_Values.NF,
+ * 400,
+ * 500000,
+ * 1);
+ */
+ addFusionCraftingRecipeNonOptimized(
+ new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Draconium, 8),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium, 4),
+ GT_ModHandler.getModItem("DraconicEvolution", "draconicCore", 4, 0), ItemList.QuantumStar.get(1L),
+ kubatech.api.enums.ItemList.DEFCWyvernSchematic.get(0L), },
+ Materials.Neutronium.getMolten(1440),
+ GT_ModHandler.getModItem("DraconicEvolution", "wyvernCore", 1, 0),
+ GT_Values.NF,
+ 800,
+ 2_000_000,
+ 2);
+ if (Loader.isModLoaded("supersolarpanel")) {
+ addFusionCraftingRecipeNonOptimized(
+ new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.plate, Materials.DraconiumAwakened, 12),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Draconium, 4),
+ GT_ModHandler.getModItem("DraconicEvolution", "wyvernCore", 4, 0),
+ GT_ModHandler.getModItem("supersolarpanel", "enderquantumcomponent", 1, 0),
+ kubatech.api.enums.ItemList.DEFCAwakenedSchematic.get(0L) },
+ Materials.Infinity.getMolten(1440),
+ GT_ModHandler.getModItem("DraconicEvolution", "awakenedCore", 1, 0),
+ GT_Values.NF,
+ 1600,
+ 8_000_000,
+ 3);
+ } else {
+ addFusionCraftingRecipeNonOptimized(
+ new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.plate, Materials.DraconiumAwakened, 12),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Draconium, 4),
+ GT_ModHandler.getModItem("DraconicEvolution", "wyvernCore", 4, 0),
+ GT_ModHandler.getModItem("dreamcraft", "item.ManyullynCrystal", 1, 0),
+ kubatech.api.enums.ItemList.DEFCAwakenedSchematic.get(0L) },
+ Materials.Infinity.getMolten(1440),
+ GT_ModHandler.getModItem("DraconicEvolution", "awakenedCore", 1, 0),
+ GT_Values.NF,
+ 1600,
+ 8_000_000,
+ 3);
+ }
+
+ addFusionCraftingRecipeNonOptimized(
+ new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.plate, Materials.DraconiumAwakened, 16),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BlackPlutonium, 4),
+ GT_ModHandler.getModItem("DraconicEvolution", "awakenedCore", 4, 0),
+ GT_ModHandler.getModItem("DraconicEvolution", "chaosFragment", 2, 2),
+ kubatech.api.enums.ItemList.DEFCChaoticSchematic.get(0L) },
+ MaterialsUEVplus.SpaceTime.getMolten(1440),
+ GT_ModHandler.getModItem("DraconicEvolution", "chaoticCore", 1, 0),
+ GT_Values.NF,
+ 3200,
+ 24_000_000,
+ 4);
+
+ // ENERGY CORES
+
+ addFusionCraftingRecipe(
+ new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Draconium, 8),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StellarAlloy, 4),
+ GT_ModHandler.getModItem("AdvancedSolarPanel", "asp_crafting_items", 4, 1),
+ GT_ModHandler.getModItem("DraconicEvolution", "draconicCore", 1, 0),
+ kubatech.api.enums.ItemList.DEFCWyvernSchematic.get(0L) },
+ GT_ModHandler.getModItem("DraconicEvolution", "draconiumEnergyCore", 1, 0),
+ 1000,
+ 500_000,
+ 2);
+
+ addFusionCraftingRecipe(
+ new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.plate, Materials.DraconiumAwakened, 8),
+ GT_ModHandler.getModItem("DraconicEvolution", "draconiumEnergyCore", 4, 0),
+ GT_ModHandler.getModItem("AdvancedSolarPanel", "asp_crafting_items", 4, 4),
+ GT_ModHandler.getModItem("DraconicEvolution", "wyvernCore", 1, 0),
+ kubatech.api.enums.ItemList.DEFCAwakenedSchematic.get(0L) },
+ GT_ModHandler.getModItem("DraconicEvolution", "draconiumEnergyCore", 1, 1),
+ 2000,
+ 2_000_000,
+ 3);
+
+ // Dragon Blood
+ if (LoaderReference.GTPlusPlus) {
+
+ addFusionCraftingRecipeNonOptimized(
+ new ItemStack[] { new ItemStack(Blocks.dragon_egg, 0),
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DraconiumAwakened, 64) },
+ Materials.Radon.getPlasma(144),
+ null,
+ new FluidStack(FluidRegistry.getFluid("molten.dragonblood"), 288),
+ 4200,
+ 1_966_080,
+ 3);
+
+ addFusionCraftingRecipeNonOptimized(
+ new ItemStack[] { GT_ModHandler.getModItem("witchery", "infinityegg", 0),
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DraconiumAwakened, 64) },
+ Materials.Radon.getPlasma(72),
+ null,
+ new FluidStack(FluidRegistry.getFluid("molten.dragonblood"), 432),
+ 3600,
+ 1_966_080,
+ 3);
+ }
+ }
+}
diff --git a/src/main/java/kubatech/loaders/ItemLoader.java b/src/main/java/kubatech/loaders/ItemLoader.java
index 5c3ec6cc02..c9d2a769d8 100644
--- a/src/main/java/kubatech/loaders/ItemLoader.java
+++ b/src/main/java/kubatech/loaders/ItemLoader.java
@@ -24,6 +24,10 @@ import static kubatech.api.enums.ItemList.Beeeeee;
import static kubatech.api.enums.ItemList.BlackTea;
import static kubatech.api.enums.ItemList.BlackTeaLeaf;
import static kubatech.api.enums.ItemList.BruisedTeaLeaf;
+import static kubatech.api.enums.ItemList.DEFCAwakenedSchematic;
+import static kubatech.api.enums.ItemList.DEFCChaoticSchematic;
+import static kubatech.api.enums.ItemList.DEFCDraconicSchematic;
+import static kubatech.api.enums.ItemList.DEFCWyvernSchematic;
import static kubatech.api.enums.ItemList.EarlGrayTea;
import static kubatech.api.enums.ItemList.FermentedTeaLeaf;
import static kubatech.api.enums.ItemList.GreenTea;
@@ -59,6 +63,13 @@ import static kubatech.api.enums.ItemList.WhiteTeaLeaf;
import static kubatech.api.enums.ItemList.YellowTea;
import static kubatech.api.enums.ItemList.YellowTeaLeaf;
+import java.util.List;
+
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.StatCollector;
+
import cpw.mods.fml.common.registry.GameRegistry;
import kubatech.loaders.item.ItemProxy;
import kubatech.loaders.item.KubaItems;
@@ -118,6 +129,21 @@ public class ItemLoader {
TeaAcceptorResearchNote
.set(kubaitems.registerProxyItem(new ItemProxy("tea_acceptor_research_note", "research_note")));
- Beeeeee.set(kubaitems.registerProxyItem(new ItemProxy("beeeeee", "beeeeee")));
+ Beeeeee.set(kubaitems.registerProxyItem(new ItemProxy("beeeeee")));
+
+ // DEFC stuff
+ DEFCDraconicSchematic.set(kubaitems.registerProxyItem(new ItemProxy("defc_schematic_t1") {
+
+ @Override
+ public void addInformation(ItemStack stack, EntityPlayer entity, List<String> tooltipList,
+ boolean showDebugInfo) {
+ tooltipList
+ .add(EnumChatFormatting.GOLD + StatCollector.translateToLocal("kubaitem.defc_schematic_t1.tip"));
+ }
+ }));
+ DEFCWyvernSchematic.set(kubaitems.registerProxyItem(new ItemProxy("defc_schematic_t2")));
+ DEFCAwakenedSchematic.set(kubaitems.registerProxyItem(new ItemProxy("defc_schematic_t3")));
+ DEFCChaoticSchematic.set(kubaitems.registerProxyItem(new ItemProxy("defc_schematic_t4")));
+
}
}
diff --git a/src/main/java/kubatech/loaders/RecipeLoader.java b/src/main/java/kubatech/loaders/RecipeLoader.java
index 8b52707e32..c9925e1f8a 100644
--- a/src/main/java/kubatech/loaders/RecipeLoader.java
+++ b/src/main/java/kubatech/loaders/RecipeLoader.java
@@ -33,6 +33,7 @@ import static gregtech.api.util.GT_RecipeConstants.UniversalChemical;
import static kubatech.api.enums.ItemList.BlackTea;
import static kubatech.api.enums.ItemList.BlackTeaLeaf;
import static kubatech.api.enums.ItemList.BruisedTeaLeaf;
+import static kubatech.api.enums.ItemList.DraconicEvolutionFusionCrafter;
import static kubatech.api.enums.ItemList.EarlGrayTea;
import static kubatech.api.enums.ItemList.ExtremeExterminationChamber;
import static kubatech.api.enums.ItemList.ExtremeIndustrialApiary;
@@ -79,6 +80,7 @@ import gregtech.api.util.GT_Utility;
import gtPlusPlus.core.lib.CORE;
import kubatech.api.LoaderReference;
import kubatech.api.enums.ItemList;
+import kubatech.tileentity.gregtech.multiblock.GT_MetaTileEntity_DEFusionCrafter;
import kubatech.tileentity.gregtech.multiblock.GT_MetaTileEntity_ExtremeExterminationChamber;
import kubatech.tileentity.gregtech.multiblock.GT_MetaTileEntity_ExtremeIndustrialGreenhouse;
import kubatech.tileentity.gregtech.multiblock.GT_MetaTileEntity_MegaIndustrialApiary;
@@ -148,6 +150,16 @@ public class RecipeLoader {
: gregtech.api.enums.ItemList.Robot_Arm_IV,
'Z', OrePrefixes.circuit.get(Materials.Ultimate) });
}
+ if (registerMTEUsingID(
+ 5_001,
+ DraconicEvolutionFusionCrafter,
+ GT_MetaTileEntity_DEFusionCrafter.class,
+ "multimachine.defusioncrafter",
+ "Draconic Evolution Fusion Crafter",
+ LoaderReference.DraconicEvolution)) {
+ // Controller recipe added in TecTech
+ DEFCRecipes.addRecipes();
+ }
RegisterTeaLine();
if (MTEID > MTEIDMax + 1) throw new RuntimeException("MTE ID's");
}
diff --git a/src/main/java/kubatech/loaders/block/defc/DEFCCasingBlock.java b/src/main/java/kubatech/loaders/block/defc/DEFCCasingBlock.java
new file mode 100644
index 0000000000..ceb4055f8c
--- /dev/null
+++ b/src/main/java/kubatech/loaders/block/defc/DEFCCasingBlock.java
@@ -0,0 +1,62 @@
+package kubatech.loaders.block.defc;
+
+import static kubatech.kubatech.KT;
+
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gregtech.api.enums.Textures;
+import gregtech.api.render.TextureFactory;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.common.blocks.GT_Block_Casings_Abstract;
+import kubatech.Tags;
+import kubatech.api.enums.ItemList;
+
+public class DEFCCasingBlock extends GT_Block_Casings_Abstract {
+
+ @SideOnly(Side.CLIENT)
+ private IIcon[] texture;
+
+ public DEFCCasingBlock() {
+ super(DEFCCasingItemBlock.class, "defc.casing", Material.anvil);
+ this.setHardness(15.0F);
+ this.setResistance(30.0F);
+ this.setCreativeTab(KT);
+
+ GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "Naquadah Alloy Fusion Casing");
+ GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "Bloody Ichorium Fusion Casing");
+ GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "Draconium Fusion Casing");
+ GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "Wyvern Fusion Casing");
+ GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "Awakened Draconium Fusion Casing");
+ GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "Chaotic Fusion Casing");
+
+ ItemList.DEFCCasingBase.set(new ItemStack(this, 1, 0));
+ ItemList.DEFCCasingT1.set(new ItemStack(this, 1, 1));
+ ItemList.DEFCCasingT2.set(new ItemStack(this, 1, 2));
+ ItemList.DEFCCasingT3.set(new ItemStack(this, 1, 3));
+ ItemList.DEFCCasingT4.set(new ItemStack(this, 1, 4));
+ ItemList.DEFCCasingT5.set(new ItemStack(this, 1, 5));
+
+ // Taking one texture slot :P
+ Textures.BlockIcons.setCasingTexture((byte) 1, (byte) (15 + 48), TextureFactory.of(this, 0));
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIcon(int side, int meta) {
+ return texture[meta];
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerBlockIcons(IIconRegister aIconRegister) {
+ texture = new IIcon[6];
+ for (int i = 0; i < texture.length; i++) {
+ texture[i] = aIconRegister.registerIcon(Tags.MODID + ":casing/defc_" + i);
+ }
+ }
+}
diff --git a/src/main/java/kubatech/loaders/block/defc/DEFCCasingItemBlock.java b/src/main/java/kubatech/loaders/block/defc/DEFCCasingItemBlock.java
new file mode 100644
index 0000000000..7e140006cd
--- /dev/null
+++ b/src/main/java/kubatech/loaders/block/defc/DEFCCasingItemBlock.java
@@ -0,0 +1,36 @@
+package kubatech.loaders.block.defc;
+
+import static kubatech.kubatech.KT;
+
+import java.util.List;
+
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.StatCollector;
+
+import gregtech.common.blocks.GT_Item_Casings_Abstract;
+
+public class DEFCCasingItemBlock extends GT_Item_Casings_Abstract {
+
+ public DEFCCasingItemBlock(Block block) {
+ super(block);
+ this.setMaxDamage(0);
+ this.setHasSubtypes(true);
+ this.setCreativeTab(KT);
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) {
+ if (getDamage(aStack) > 0)
+ aList.add(StatCollector.translateToLocalFormatted("defc.casing.tip", getDamage(aStack)));
+ super.addInformation(aStack, aPlayer, aList, aF3_H);
+ }
+
+ @Override
+ public IIcon getIconFromDamage(int p_77617_1_) {
+ return this.field_150939_a.getIcon(0, p_77617_1_);
+ }
+}
diff --git a/src/main/java/kubatech/loaders/block/BlockProxy.java b/src/main/java/kubatech/loaders/block/kubablock/BlockProxy.java
index 86f403a0c8..b11dcec244 100644
--- a/src/main/java/kubatech/loaders/block/BlockProxy.java
+++ b/src/main/java/kubatech/loaders/block/kubablock/BlockProxy.java
@@ -18,9 +18,9 @@
* spotless:on
*/
-package kubatech.loaders.block;
+package kubatech.loaders.block.kubablock;
-import static kubatech.loaders.block.KubaBlock.defaultTileEntityUI;
+import static kubatech.loaders.block.kubablock.KubaBlock.defaultTileEntityUI;
import java.util.List;
diff --git a/src/main/java/kubatech/loaders/block/IProxyTileEntityProvider.java b/src/main/java/kubatech/loaders/block/kubablock/IProxyTileEntityProvider.java
index a7b2f79e88..9025fbb402 100644
--- a/src/main/java/kubatech/loaders/block/IProxyTileEntityProvider.java
+++ b/src/main/java/kubatech/loaders/block/kubablock/IProxyTileEntityProvider.java
@@ -18,7 +18,7 @@
* spotless:on
*/
-package kubatech.loaders.block;
+package kubatech.loaders.block.kubablock;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
diff --git a/src/main/java/kubatech/loaders/block/KubaBlock.java b/src/main/java/kubatech/loaders/block/kubablock/KubaBlock.java
index ac722358e1..d86745ab26 100644
--- a/src/main/java/kubatech/loaders/block/KubaBlock.java
+++ b/src/main/java/kubatech/loaders/block/kubablock/KubaBlock.java
@@ -18,7 +18,7 @@
* spotless:on
*/
-package kubatech.loaders.block;
+package kubatech.loaders.block.kubablock;
import static kubatech.kubatech.KT;
diff --git a/src/main/java/kubatech/loaders/block/KubaItemBlock.java b/src/main/java/kubatech/loaders/block/kubablock/KubaItemBlock.java
index 6964ef5152..77485f2a30 100644
--- a/src/main/java/kubatech/loaders/block/KubaItemBlock.java
+++ b/src/main/java/kubatech/loaders/block/kubablock/KubaItemBlock.java
@@ -18,7 +18,7 @@
* spotless:on
*/
-package kubatech.loaders.block;
+package kubatech.loaders.block.kubablock;
import java.util.List;
diff --git a/src/main/java/kubatech/loaders/block/blocks/TeaAcceptor.java b/src/main/java/kubatech/loaders/block/kubablock/blocks/TeaAcceptor.java
index d06466094a..206da6de1f 100644
--- a/src/main/java/kubatech/loaders/block/blocks/TeaAcceptor.java
+++ b/src/main/java/kubatech/loaders/block/kubablock/blocks/TeaAcceptor.java
@@ -18,7 +18,7 @@
* spotless:on
*/
-package kubatech.loaders.block.blocks;
+package kubatech.loaders.block.kubablock.blocks;
import java.util.List;
@@ -29,8 +29,8 @@ import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
-import kubatech.loaders.block.BlockProxy;
-import kubatech.loaders.block.IProxyTileEntityProvider;
+import kubatech.loaders.block.kubablock.BlockProxy;
+import kubatech.loaders.block.kubablock.IProxyTileEntityProvider;
import kubatech.tileentity.TeaAcceptorTile;
public class TeaAcceptor extends BlockProxy implements IProxyTileEntityProvider {
diff --git a/src/main/java/kubatech/loaders/block/blocks/TeaStorage.java b/src/main/java/kubatech/loaders/block/kubablock/blocks/TeaStorage.java
index 059c873ad4..273690e296 100644
--- a/src/main/java/kubatech/loaders/block/blocks/TeaStorage.java
+++ b/src/main/java/kubatech/loaders/block/kubablock/blocks/TeaStorage.java
@@ -18,7 +18,7 @@
* spotless:on
*/
-package kubatech.loaders.block.blocks;
+package kubatech.loaders.block.kubablock.blocks;
import static kubatech.api.Variables.numberFormat;
@@ -32,8 +32,8 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
-import kubatech.loaders.block.BlockProxy;
-import kubatech.loaders.block.IProxyTileEntityProvider;
+import kubatech.loaders.block.kubablock.BlockProxy;
+import kubatech.loaders.block.kubablock.IProxyTileEntityProvider;
import kubatech.tileentity.TeaStorageTile;
public class TeaStorage extends BlockProxy implements IProxyTileEntityProvider {
diff --git a/src/main/java/kubatech/loaders/item/ItemProxy.java b/src/main/java/kubatech/loaders/item/ItemProxy.java
index 4e37175cd7..9c27959aa1 100644
--- a/src/main/java/kubatech/loaders/item/ItemProxy.java
+++ b/src/main/java/kubatech/loaders/item/ItemProxy.java
@@ -72,6 +72,10 @@ public class ItemProxy {
texturepath = Tags.MODID + ":" + texture;
}
+ public ItemProxy(String unlocalizedNameAndTexture) {
+ this(unlocalizedNameAndTexture, unlocalizedNameAndTexture);
+ }
+
public void ItemInit(int index) {}
public String getUnlocalizedName() {
diff --git a/src/main/java/kubatech/tileentity/TeaAcceptorTile.java b/src/main/java/kubatech/tileentity/TeaAcceptorTile.java
index a2952117ea..1addb1a887 100644
--- a/src/main/java/kubatech/tileentity/TeaAcceptorTile.java
+++ b/src/main/java/kubatech/tileentity/TeaAcceptorTile.java
@@ -54,7 +54,7 @@ import kubatech.api.enums.ItemList;
import kubatech.api.tea.TeaNetwork;
import kubatech.api.utils.StringUtils;
import kubatech.loaders.ItemLoader;
-import kubatech.loaders.block.KubaBlock;
+import kubatech.loaders.block.kubablock.KubaBlock;
public class TeaAcceptorTile extends TileEntity
implements IInventory, ITileWithModularUI, KubaBlock.IModularUIProvider {
diff --git a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_DEFusionCrafter.java b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_DEFusionCrafter.java
new file mode 100644
index 0000000000..696413ee55
--- /dev/null
+++ b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_DEFusionCrafter.java
@@ -0,0 +1,266 @@
+package kubatech.tileentity.gregtech.multiblock;
+
+import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock;
+import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlocksTiered;
+import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofChain;
+import static com.gtnewhorizon.structurelib.structure.StructureUtility.onElementPass;
+import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose;
+import static gregtech.api.enums.Textures.BlockIcons.MACHINE_CASING_MAGIC;
+import static gregtech.api.enums.Textures.BlockIcons.MACHINE_CASING_MAGIC_ACTIVE;
+import static gregtech.api.enums.Textures.BlockIcons.MACHINE_CASING_MAGIC_ACTIVE_GLOW;
+import static gregtech.api.enums.Textures.BlockIcons.MACHINE_CASING_MAGIC_GLOW;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_TELEPORTER;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_TELEPORTER_ACTIVE;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_TELEPORTER_ACTIVE_GLOW;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_TELEPORTER_GLOW;
+import static gregtech.api.util.GT_StructureUtility.ofHatchAdder;
+import static kubatech.api.Variables.StructureHologram;
+import static kubatech.api.Variables.buildAuthorList;
+
+import java.util.Arrays;
+import java.util.List;
+
+import net.minecraft.block.Block;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.common.util.ForgeDirection;
+
+import org.apache.commons.lang3.tuple.Pair;
+import org.jetbrains.annotations.NotNull;
+
+import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
+import com.gtnewhorizon.structurelib.structure.StructureDefinition;
+
+import gregtech.api.GregTech_API;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.logic.ProcessingLogic;
+import gregtech.api.recipe.check.CheckRecipeResult;
+import gregtech.api.recipe.check.CheckRecipeResultRegistry;
+import gregtech.api.render.TextureFactory;
+import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
+import gregtech.api.util.GT_OverclockCalculator;
+import gregtech.api.util.GT_ParallelHelper;
+import gregtech.api.util.GT_Recipe;
+import kubatech.Tags;
+import kubatech.api.implementations.KubaTechGTMultiBlockBase;
+import kubatech.loaders.BlockLoader;
+import kubatech.loaders.DEFCRecipes;
+
+public class GT_MetaTileEntity_DEFusionCrafter extends KubaTechGTMultiBlockBase<GT_MetaTileEntity_DEFusionCrafter> {
+
+ private static final int CASING_INDEX = (1 << 7) + (15 + 48);
+ private int mTierCasing = 0;
+ private int mFusionTierCasing = 0;
+ private int mCasing = 0;
+
+ @SuppressWarnings("unused")
+ public GT_MetaTileEntity_DEFusionCrafter(int aID, String aName, String aNameRegional) {
+ super(aID, aName, aNameRegional);
+ }
+
+ public GT_MetaTileEntity_DEFusionCrafter(String aName) {
+ super(aName);
+ }
+
+ @Override
+ public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_DEFusionCrafter(mName);
+ }
+
+ private static final String STRUCTURE_PIECE_MAIN = "main";
+ private static final List<Pair<Block, Integer>> fusionCasingTiers = Arrays
+ .asList(Pair.of(GregTech_API.sBlockCasings4, 6), Pair.of(GregTech_API.sBlockCasings4, 8));
+ private static final List<Pair<Block, Integer>> coreTiers = Arrays.asList(
+ Pair.of(BlockLoader.defcCasingBlock, 1),
+ Pair.of(BlockLoader.defcCasingBlock, 2),
+ Pair.of(BlockLoader.defcCasingBlock, 3),
+ Pair.of(BlockLoader.defcCasingBlock, 4),
+ Pair.of(BlockLoader.defcCasingBlock, 5));
+ private static final IStructureDefinition<GT_MetaTileEntity_DEFusionCrafter> STRUCTURE_DEFINITION = StructureDefinition
+ .<GT_MetaTileEntity_DEFusionCrafter>builder()
+ .addShape(
+ STRUCTURE_PIECE_MAIN,
+ transpose(
+ new String[][] { // spotless:off
+ { "nnnnn", "nnnnn", "nnnnn", "nnnnn", "nnnnn" },
+ { " ", " F ", " FfF ", " F ", " " },
+ { " ", " F ", " FfF ", " F ", " " },
+ { "RRRRR", "R F R", "RFfFR", "R F R", "RRRRR" },
+ { " ", " F ", " FfF ", " F ", " " },
+ { " ", " F ", " FfF ", " F ", " " },
+ { "RRRRR", "R F R", "RFfFR", "R F R", "RRRRR" },
+ { " ", " F ", " FfF ", " F ", " " },
+ { " ", " F ", " FfF ", " F ", " " },
+ { "NN~NN", "NNNNN", "NNNNN", "NNNNN", "NNNNN" }
+ })) // spotless:on
+ .addElement(
+ 'N',
+ ofChain(
+ onElementPass(e -> e.mCasing++, ofBlock(BlockLoader.defcCasingBlock, 0)),
+ ofHatchAdder(GT_MetaTileEntity_DEFusionCrafter::addEnergyInputToMachineList, CASING_INDEX, 1),
+ ofHatchAdder(GT_MetaTileEntity_DEFusionCrafter::addInputToMachineList, CASING_INDEX, 1),
+ ofHatchAdder(GT_MetaTileEntity_DEFusionCrafter::addOutputToMachineList, CASING_INDEX, 1),
+ ofHatchAdder(GT_MetaTileEntity_DEFusionCrafter::addMaintenanceToMachineList, CASING_INDEX, 1)))
+ .addElement('n', onElementPass(e -> e.mCasing++, ofBlock(BlockLoader.defcCasingBlock, 0)))
+ .addElement('f', ofBlock(GregTech_API.sBlockCasings4, 7))
+ .addElement('F', ofBlocksTiered((Block b, int m) -> {
+ if (b != GregTech_API.sBlockCasings4 || (m != 6 && m != 8)) return -2;
+ return m == 6 ? 1 : 2;
+ }, fusionCasingTiers, -1, (e, i) -> e.mFusionTierCasing = i, e -> e.mFusionTierCasing))
+ .addElement('R', ofBlocksTiered((Block b, int m) -> {
+ if (b != BlockLoader.defcCasingBlock || m < 1 || m > 5) return -2;
+ return m;
+ }, coreTiers, -1, (e, i) -> e.mTierCasing = i, e -> e.mTierCasing))
+ .build();
+
+ @Override
+ public IStructureDefinition<GT_MetaTileEntity_DEFusionCrafter> getStructureDefinition() {
+ return STRUCTURE_DEFINITION;
+ }
+
+ public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
+ mCasing = 0;
+ mTierCasing = -1;
+ mFusionTierCasing = -1;
+ if (!checkPiece(STRUCTURE_PIECE_MAIN, 2, 9, 0)) return false;
+ if (mCasing < 19) return false;
+ if (mTierCasing == -2 || mFusionTierCasing == -2) return false;
+ if (mTierCasing > 3 && mFusionTierCasing < 2) return false;
+ return mMaintenanceHatches.size() == 1;
+ }
+
+ @Override
+ protected GT_Multiblock_Tooltip_Builder createTooltip() {
+ GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder();
+ tt.addMachineType("Fusion Crafter")
+ .addInfo("Controller Block for the Draconic Evolution Fusion Crafter")
+ .addInfo(buildAuthorList("kuba6000", "Prometheus0000"))
+ .addInfo("Machine can be overclocked by using casings above the recipe tier:")
+ .addInfo("Recipe time is divided by number of tiers above the recipe")
+ .addInfo("Normal EU OC still applies !")
+ .addInfo(StructureHologram)
+ .addSeparator()
+ .beginStructureBlock(5, 10, 5, false)
+ .addController("Front bottom center")
+ .addCasingInfoMin("Naquadah Alloy Fusion Casing", 19, false)
+ .addOtherStructurePart("Fusion Coil Block", "Center pillar")
+ .addOtherStructurePart("Fusion Machine Casing", "Touching Fusion Coil Block at every side")
+ .addOtherStructurePart("Tiered Fusion Casing", "Rings (5x5 hollow) at layer 4 and 7")
+ .addStructureInfo("Bloody Ichorium for tier 1, Draconium for tier 2, etc")
+ .addStructureInfo("To use tier 3 + you have to use fusion casing MK II")
+ .addInputBus("Any bottom casing", 1)
+ .addInputHatch("Any bottom casing", 1)
+ .addOutputBus("Any bottom casing", 1)
+ .addOutputHatch("Any bottom casing", 1)
+ .addEnergyHatch("Any bottom casing", 1)
+ .addMaintenanceHatch("Any bottom casing", 1)
+ .toolTipFinisher(Tags.MODNAME);
+ return tt;
+ }
+
+ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection side, ForgeDirection facing,
+ int colorIndex, boolean aActive, boolean aRedstone) {
+ if (side == facing) {
+ if (aActive) return new ITexture[] { TextureFactory.of(MACHINE_CASING_MAGIC), TextureFactory.builder()
+ .addIcon(OVERLAY_TELEPORTER_ACTIVE)
+ .extFacing()
+ .build(),
+ TextureFactory.builder()
+ .addIcon(OVERLAY_TELEPORTER_ACTIVE_GLOW)
+ .extFacing()
+ .glow()
+ .build() };
+ return new ITexture[] { TextureFactory.of(MACHINE_CASING_MAGIC), TextureFactory.builder()
+ .addIcon(OVERLAY_TELEPORTER)
+ .extFacing()
+ .build(),
+ TextureFactory.builder()
+ .addIcon(OVERLAY_TELEPORTER_GLOW)
+ .extFacing()
+ .glow()
+ .build() };
+ }
+ if (aActive) return new ITexture[] { TextureFactory.of(MACHINE_CASING_MAGIC), TextureFactory.builder()
+ .addIcon(MACHINE_CASING_MAGIC_ACTIVE)
+ .extFacing()
+ .build(),
+ TextureFactory.builder()
+ .addIcon(MACHINE_CASING_MAGIC_ACTIVE_GLOW)
+ .extFacing()
+ .glow()
+ .build() };
+ return new ITexture[] { TextureFactory.of(MACHINE_CASING_MAGIC), TextureFactory.builder()
+ .addIcon(MACHINE_CASING_MAGIC)
+ .extFacing()
+ .build(),
+ TextureFactory.builder()
+ .addIcon(MACHINE_CASING_MAGIC_GLOW)
+ .extFacing()
+ .glow()
+ .build() };
+ }
+
+ @Override
+ public boolean isCorrectMachinePart(ItemStack aStack) {
+ return true;
+ }
+
+ @Override
+ public GT_Recipe.GT_Recipe_Map getRecipeMap() {
+ return DEFCRecipes.sFusionCraftingRecipes;
+ }
+
+ @Override
+ protected ProcessingLogic createProcessingLogic() {
+ return new ProcessingLogic() {
+
+ @NotNull
+ @Override
+ protected CheckRecipeResult validateRecipe(@NotNull GT_Recipe recipe) {
+ return recipe.mSpecialValue <= mTierCasing ? CheckRecipeResultRegistry.SUCCESSFUL
+ : CheckRecipeResultRegistry.NO_RECIPE;
+ }
+
+ @Override
+ protected double calculateDuration(@NotNull GT_Recipe recipe, @NotNull GT_ParallelHelper helper,
+ @NotNull GT_OverclockCalculator calculator) {
+ return Math.max(
+ 1d,
+ super.calculateDuration(recipe, helper, calculator) / ((mTierCasing - recipe.mSpecialValue) + 1));
+ }
+ };
+ }
+
+ 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) {
+ buildPiece(STRUCTURE_PIECE_MAIN, itemStack, b, 2, 9, 0);
+ }
+
+ @Override
+ public boolean supportsVoidProtection() {
+ return true;
+ }
+
+ @Override
+ public boolean supportsInputSeparation() {
+ return true;
+ }
+
+}
diff --git a/src/main/resources/assets/kubatech/lang/en_US.lang b/src/main/resources/assets/kubatech/lang/en_US.lang
index 3d39bb8e4a..6b01ca661c 100644
--- a/src/main/resources/assets/kubatech/lang/en_US.lang
+++ b/src/main/resources/assets/kubatech/lang/en_US.lang
@@ -27,9 +27,17 @@ kubatech.command.tea.usage=<username> get/set/add (<amount>)
kubablock.tea_acceptor.name=§4§lTea Acceptor
kubablock.tea_storage.name=§4§lTea Storage Extender
+#DEFC Casings
+defc.casing.tip=Draconic Evolution Fusion Crafter Casing, Tier %d
+
#Items
kubaitem.fromcollection=This item is from
kubaitem.notyours=It looks like that item is not yours
+kubaitem.defc_schematic_t1.name=Draconic Core Schematic
+kubaitem.defc_schematic_t1.tip=This Schematic can be found in Pluto Dungeons
+kubaitem.defc_schematic_t2.name=Wyvern Core Schematic
+kubaitem.defc_schematic_t3.name=Awakened Core Schematic
+kubaitem.defc_schematic_t4.name=Chaotic Core Schematic
#Tea
kubaitem.tea.black_tea.name=Black Tea
diff --git a/src/main/resources/assets/kubatech/textures/blocks/casing/defc_0.png b/src/main/resources/assets/kubatech/textures/blocks/casing/defc_0.png
new file mode 100644
index 0000000000..06e2f526c4
--- /dev/null
+++ b/src/main/resources/assets/kubatech/textures/blocks/casing/defc_0.png
Binary files differ
diff --git a/src/main/resources/assets/kubatech/textures/blocks/casing/defc_1.png b/src/main/resources/assets/kubatech/textures/blocks/casing/defc_1.png
new file mode 100644
index 0000000000..8c40f46c9c
--- /dev/null
+++ b/src/main/resources/assets/kubatech/textures/blocks/casing/defc_1.png
Binary files differ
diff --git a/src/main/resources/assets/kubatech/textures/blocks/casing/defc_2.png b/src/main/resources/assets/kubatech/textures/blocks/casing/defc_2.png
new file mode 100644
index 0000000000..18948e711d
--- /dev/null
+++ b/src/main/resources/assets/kubatech/textures/blocks/casing/defc_2.png
Binary files differ
diff --git a/src/main/resources/assets/kubatech/textures/blocks/casing/defc_3.png b/src/main/resources/assets/kubatech/textures/blocks/casing/defc_3.png
new file mode 100644
index 0000000000..7aa78f8f3c
--- /dev/null
+++ b/src/main/resources/assets/kubatech/textures/blocks/casing/defc_3.png
Binary files differ
diff --git a/src/main/resources/assets/kubatech/textures/blocks/casing/defc_4.png b/src/main/resources/assets/kubatech/textures/blocks/casing/defc_4.png
new file mode 100644
index 0000000000..c670106653
--- /dev/null
+++ b/src/main/resources/assets/kubatech/textures/blocks/casing/defc_4.png
Binary files differ
diff --git a/src/main/resources/assets/kubatech/textures/blocks/casing/defc_5.png b/src/main/resources/assets/kubatech/textures/blocks/casing/defc_5.png
new file mode 100644
index 0000000000..c8c8eb0ccb
--- /dev/null
+++ b/src/main/resources/assets/kubatech/textures/blocks/casing/defc_5.png
Binary files differ
diff --git a/src/main/resources/assets/kubatech/textures/gui/slot/fusion_crafter.png b/src/main/resources/assets/kubatech/textures/gui/slot/fusion_crafter.png
new file mode 100644
index 0000000000..e08a173166
--- /dev/null
+++ b/src/main/resources/assets/kubatech/textures/gui/slot/fusion_crafter.png
Binary files differ
diff --git a/src/main/resources/assets/kubatech/textures/items/defc_schematic_t1.png b/src/main/resources/assets/kubatech/textures/items/defc_schematic_t1.png
new file mode 100644
index 0000000000..8012beec89
--- /dev/null
+++ b/src/main/resources/assets/kubatech/textures/items/defc_schematic_t1.png
Binary files differ
diff --git a/src/main/resources/assets/kubatech/textures/items/defc_schematic_t2.png b/src/main/resources/assets/kubatech/textures/items/defc_schematic_t2.png
new file mode 100644
index 0000000000..695584132a
--- /dev/null
+++ b/src/main/resources/assets/kubatech/textures/items/defc_schematic_t2.png
Binary files differ
diff --git a/src/main/resources/assets/kubatech/textures/items/defc_schematic_t3.png b/src/main/resources/assets/kubatech/textures/items/defc_schematic_t3.png
new file mode 100644
index 0000000000..3a03b2d3f8
--- /dev/null
+++ b/src/main/resources/assets/kubatech/textures/items/defc_schematic_t3.png
Binary files differ
diff --git a/src/main/resources/assets/kubatech/textures/items/defc_schematic_t4.png b/src/main/resources/assets/kubatech/textures/items/defc_schematic_t4.png
new file mode 100644
index 0000000000..4eba9f970f
--- /dev/null
+++ b/src/main/resources/assets/kubatech/textures/items/defc_schematic_t4.png
Binary files differ