Merge pull request #1130 from Antifluxfield/AssemblyLine_upgrade
Assembly line upgrade
This commit is contained in:
commit
ebd2d13d7a
12 changed files with 288 additions and 86 deletions
|
@ -555,7 +555,7 @@ public enum ItemList implements IItemContainer {
|
|||
Hatch_Output_ULV, Hatch_Output_LV, Hatch_Output_MV, Hatch_Output_HV, Hatch_Output_EV, Hatch_Output_IV, Hatch_Output_LuV, Hatch_Output_ZPM, Hatch_Output_UV, Hatch_Output_MAX,
|
||||
Hatch_Output_Bus_ULV, Hatch_Output_Bus_LV, Hatch_Output_Bus_MV, Hatch_Output_Bus_HV, Hatch_Output_Bus_EV, Hatch_Output_Bus_IV, Hatch_Output_Bus_LuV, Hatch_Output_Bus_ZPM, Hatch_Output_Bus_UV, Hatch_Output_Bus_MAX,
|
||||
Hatch_Muffler_LV, Hatch_Muffler_MV, Hatch_Muffler_HV, Hatch_Muffler_EV, Hatch_Muffler_IV, Hatch_Muffler_LuV, Hatch_Muffler_ZPM, Hatch_Muffler_UV, Hatch_Muffler_MAX,
|
||||
Hatch_Maintenance,
|
||||
Hatch_Maintenance, Hatch_DataAccess_EV, Hatch_DataAccess_LuV,
|
||||
|
||||
Battery_Buffer_1by1_ULV, Battery_Buffer_1by1_LV, Battery_Buffer_1by1_MV, Battery_Buffer_1by1_HV, Battery_Buffer_1by1_EV, Battery_Buffer_1by1_IV, Battery_Buffer_1by1_LuV, Battery_Buffer_1by1_ZPM, Battery_Buffer_1by1_UV, Battery_Buffer_1by1_MAX,
|
||||
Battery_Buffer_2by2_ULV, Battery_Buffer_2by2_LV, Battery_Buffer_2by2_MV, Battery_Buffer_2by2_HV, Battery_Buffer_2by2_EV, Battery_Buffer_2by2_IV, Battery_Buffer_2by2_LuV, Battery_Buffer_2by2_ZPM, Battery_Buffer_2by2_UV, Battery_Buffer_2by2_MAX,
|
||||
|
|
|
@ -51,7 +51,7 @@ public class Textures {
|
|||
OVERLAY_LOCKER_002, OVERLAY_LOCKER_003, OVERLAY_LOCKER_004, OVERLAY_LOCKER_005, OVERLAY_LOCKER_006, OVERLAY_LOCKER_007, OVERLAY_LOCKER_008, OVERLAY_LOCKER_009, OVERLAY_LOCKER_010,
|
||||
OVERLAY_LOCKER_011, OVERLAY_LOCKER_012, OVERLAY_LOCKER_013, OVERLAY_LENS, OVERLAY_PIPE, OVERLAY_PIPE_IN, OVERLAY_PIPE_OUT, OVERLAY_MUFFLER, OVERLAY_CONTROLLER, OVERLAY_ACTIVITYDETECTOR,
|
||||
OVERLAY_ENERGYDETECTOR, OVERLAY_FLUIDDETECTOR, OVERLAY_ITEMDETECTOR, OVERLAY_FUSION1, OVERLAY_FUSION2, OVERLAY_FUSION3, OVERLAY_SCREEN, OVERLAY_QTANK, OVERLAY_QCHEST, OVERLAY_SHUTTER,
|
||||
OVERLAY_CLOSET, OVERLAY_DUCTTAPE, OVERLAY_MAINTENANCE, OVERLAY_CONVEYOR, OVERLAY_PUMP, OVERLAY_ARM, OVERLAY_DRAIN, OVERLAY_CRAFTING, OVERLAY_ENERGY_IN, OVERLAY_ENERGY_OUT,
|
||||
OVERLAY_CLOSET, OVERLAY_DUCTTAPE, OVERLAY_MAINTENANCE, OVERLAY_DATA_ACCESS, OVERLAY_CONVEYOR, OVERLAY_PUMP, OVERLAY_ARM, OVERLAY_DRAIN, OVERLAY_CRAFTING, OVERLAY_ENERGY_IN, OVERLAY_ENERGY_OUT,
|
||||
OVERLAY_ENERGY_IN_MULTI, OVERLAY_ENERGY_OUT_MULTI, OVERLAY_FRONT_LARGE_BOILER, OVERLAY_FRONT_LARGE_BOILER_ACTIVE, OVERLAY_FRONT_VACUUM_FREEZER, OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE,
|
||||
OVERLAY_FRONT_MULTI_SMELTER, OVERLAY_FRONT_MULTI_SMELTER_ACTIVE, OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE, OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE, OVERLAY_FRONT_IMPLOSION_COMPRESSOR,
|
||||
OVERLAY_FRONT_IMPLOSION_COMPRESSOR_ACTIVE, OVERLAY_TOP_POTIONBREWER, OVERLAY_TOP_REPLICATOR, OVERLAY_TOP_MASSFAB, OVERLAY_TOP_STEAM_HAMMER, OVERLAY_TOP_STEAM_FURNACE, OVERLAY_TOP_STEAM_ALLOY_SMELTER,
|
||||
|
|
|
@ -14,6 +14,11 @@ public class GT_GUIContainer_1by1 extends GT_GUIContainerMetaTile_Machine {
|
|||
mName = aName;
|
||||
}
|
||||
|
||||
public GT_GUIContainer_1by1(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName, String aBackground) {
|
||||
super(new GT_Container_1by1(aInventoryPlayer, aTileEntity), RES_PATH_GUI + aBackground + "1by1.png");
|
||||
mName = aName;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerForegroundLayer(int par1, int par2) {
|
||||
fontRendererObj.drawString(mName, 8, 4, 4210752);
|
||||
|
|
|
@ -14,6 +14,11 @@ public class GT_GUIContainer_2by2 extends GT_GUIContainerMetaTile_Machine {
|
|||
mName = aName;
|
||||
}
|
||||
|
||||
public GT_GUIContainer_2by2(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName, String aBackground) {
|
||||
super(new GT_Container_2by2(aInventoryPlayer, aTileEntity), RES_PATH_GUI + aBackground + "2by2.png");
|
||||
mName = aName;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerForegroundLayer(int par1, int par2) {
|
||||
fontRendererObj.drawString(mName, 8, 4, 4210752);
|
||||
|
|
|
@ -14,6 +14,11 @@ public class GT_GUIContainer_3by3 extends GT_GUIContainerMetaTile_Machine {
|
|||
mName = aName;
|
||||
}
|
||||
|
||||
public GT_GUIContainer_3by3(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName, String aBackground) {
|
||||
super(new GT_Container_3by3(aInventoryPlayer, aTileEntity), RES_PATH_GUI + aBackground + "3by3.png");
|
||||
mName = aName;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerForegroundLayer(int par1, int par2) {
|
||||
fontRendererObj.drawString(mName, 8, 4, 4210752);
|
||||
|
|
|
@ -14,6 +14,11 @@ public class GT_GUIContainer_4by4 extends GT_GUIContainerMetaTile_Machine {
|
|||
mName = aName;
|
||||
}
|
||||
|
||||
public GT_GUIContainer_4by4(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName, String aBackground) {
|
||||
super(new GT_Container_4by4(aInventoryPlayer, aTileEntity), RES_PATH_GUI + aBackground + "4by4.png");
|
||||
mName = aName;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerForegroundLayer(int par1, int par2) {
|
||||
fontRendererObj.drawString(mName, 8, 4, 4210752);
|
||||
|
|
|
@ -0,0 +1,99 @@
|
|||
package gregtech.api.metatileentity.implementations;
|
||||
|
||||
import gregtech.api.enums.Textures;
|
||||
import gregtech.api.gui.*;
|
||||
import gregtech.api.interfaces.ITexture;
|
||||
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
|
||||
import gregtech.api.metatileentity.MetaTileEntity;
|
||||
import gregtech.api.objects.GT_RenderedTexture;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class GT_MetaTileEntity_Hatch_DataAccess extends GT_MetaTileEntity_Hatch {
|
||||
public GT_MetaTileEntity_Hatch_DataAccess(int aID, String aName, String aNameRegional, int aTier) {
|
||||
super(aID, aName, aNameRegional, aTier, 16, "Data Access for Multiblocks");
|
||||
}
|
||||
|
||||
public GT_MetaTileEntity_Hatch_DataAccess(String aName, int aTier, String aDescription, ITexture[][][] aTextures) {
|
||||
super(aName, aTier, aTier == 4 ? 4 : 16, aDescription, aTextures);
|
||||
}
|
||||
|
||||
public GT_MetaTileEntity_Hatch_DataAccess(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) {
|
||||
super(aName, aTier, aTier == 4 ? 4 : 16, aDescription, aTextures);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ITexture[] getTexturesActive(ITexture aBaseTexture) {
|
||||
return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_DATA_ACCESS)};
|
||||
}
|
||||
|
||||
@Override
|
||||
public ITexture[] getTexturesInactive(ITexture aBaseTexture) {
|
||||
return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_DATA_ACCESS)};
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSimpleMachine() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFacingValid(byte aFacing) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAccessAllowed(EntityPlayer aPlayer) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValidSlot(int aIndex) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
|
||||
return new GT_MetaTileEntity_Hatch_DataAccess(mName, mTier, mDescriptionArray, mTextures);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) {
|
||||
if (aBaseMetaTileEntity.isClientSide()) return true;
|
||||
aBaseMetaTileEntity.openGUI(aPlayer);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
|
||||
switch (mTier) {
|
||||
case 4:
|
||||
return new GT_Container_2by2(aPlayerInventory, aBaseMetaTileEntity);
|
||||
default:
|
||||
return new GT_Container_4by4(aPlayerInventory, aBaseMetaTileEntity);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
|
||||
switch (mTier) {
|
||||
case 4:
|
||||
return new GT_GUIContainer_2by2(aPlayerInventory, aBaseMetaTileEntity, "Data Access Hatch", "DataAccess");
|
||||
case 6:
|
||||
return new GT_GUIContainer_4by4(aPlayerInventory, aBaseMetaTileEntity, "Data Access Hatch", "DataAccess");
|
||||
default:
|
||||
return new GT_GUIContainer_4by4(aPlayerInventory, aBaseMetaTileEntity, "Data Access Hatch", "DataAccess");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
package gregtech.common.tileentities.machines.multi;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import gregtech.api.GregTech_API;
|
||||
import gregtech.api.enums.GT_Values;
|
||||
import gregtech.api.enums.ItemList;
|
||||
|
@ -8,6 +9,8 @@ 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_DataAccess;
|
||||
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase;
|
||||
import gregtech.api.objects.GT_RenderedTexture;
|
||||
import gregtech.api.util.GT_Recipe;
|
||||
|
@ -20,6 +23,9 @@ import net.minecraftforge.fluids.FluidStack;
|
|||
|
||||
public class GT_MetaTileEntity_AssemblyLine
|
||||
extends GT_MetaTileEntity_MultiBlockBase {
|
||||
|
||||
public ArrayList<GT_MetaTileEntity_Hatch_DataAccess> mDataAccessHatches = new ArrayList<GT_MetaTileEntity_Hatch_DataAccess>();
|
||||
|
||||
public GT_MetaTileEntity_AssemblyLine(int aID, String aName, String aNameRegional) {
|
||||
super(aID, aName, aNameRegional);
|
||||
}
|
||||
|
@ -40,9 +46,10 @@ public class GT_MetaTileEntity_AssemblyLine
|
|||
"Middle: Reinforced Glass, Assembly Line, Reinforced Glass",
|
||||
"UpMiddle: Grate Machine Casing,",
|
||||
" Assembler Machine Casing,",
|
||||
" Grate Machine Casing (or Controller)",
|
||||
" Grate Machine Casing (or Controller or Data Access Hatch)",
|
||||
"Top: Steel Casing(or Energy Hatch)",
|
||||
"Up to 16 repeating slices, last is Output Bus"};
|
||||
"Up to 16 repeating slices, last is Output Bus",
|
||||
"Optional 1x Data Access Hatch next to the Controller"};
|
||||
}
|
||||
|
||||
public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
|
||||
|
@ -70,53 +77,76 @@ public class GT_MetaTileEntity_AssemblyLine
|
|||
|
||||
public boolean checkRecipe(ItemStack aStack) {
|
||||
if(GT_Values.D1)System.out.println("Start ALine recipe check");
|
||||
if (!GT_Utility.isStackValid(mInventory[1]) || !ItemList.Tool_DataStick.isStackEqual(mInventory[1], false, true))
|
||||
return false;
|
||||
if(GT_Values.D1)System.out.println("Stick accepted");
|
||||
ArrayList<ItemStack> tDataStickList = getDataItems(2);
|
||||
if (tDataStickList.size() == 0) return false;
|
||||
if(GT_Values.D1)System.out.println("Stick accepted, " + tDataStickList.size() + " Data Sticks found");
|
||||
|
||||
NBTTagCompound tTag = mInventory[1].getTagCompound();
|
||||
if (tTag == null) return false;
|
||||
ItemStack tStack[] = new ItemStack[15];
|
||||
FluidStack[] tFluids = new FluidStack[4];
|
||||
boolean recipeNA = false;
|
||||
boolean findRecipe = false;
|
||||
for (ItemStack tDataStick : tDataStickList){
|
||||
recipeNA = false;
|
||||
NBTTagCompound tTag = tDataStick.getTagCompound();
|
||||
if (tTag == null) continue;
|
||||
for (int i = 0; i < 15; i++) {
|
||||
if (!tTag.hasKey("" + i)) continue;
|
||||
if (mInputBusses.get(i) == null) return false;
|
||||
if (mInputBusses.get(i) == null) {
|
||||
recipeNA = true;
|
||||
break;
|
||||
}
|
||||
tStack[i] = GT_Utility.loadItem(tTag, "" + i);
|
||||
if (tStack[i] == null) continue;
|
||||
if(GT_Values.D1)System.out.println("Item "+i+" : "+tStack[i].getUnlocalizedName());
|
||||
ItemStack stackInSlot = mInputBusses.get(i).getBaseMetaTileEntity().getStackInSlot(0);
|
||||
if (!GT_Utility.areStacksEqual(tStack[i], stackInSlot, true) || tStack[i].stackSize > stackInSlot.stackSize) {
|
||||
if(GT_Values.D1)System.out.println(i +" not accepted");
|
||||
return false;
|
||||
recipeNA = true;
|
||||
break;
|
||||
}
|
||||
if(GT_Values.D1)System.out.println(i+" accepted");
|
||||
}
|
||||
if (recipeNA) continue;
|
||||
|
||||
if(GT_Values.D1)System.out.println("All Items done, start fluid check");
|
||||
FluidStack[] tFluids = new FluidStack[4];
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (!tTag.hasKey("f" + i)) continue;
|
||||
tFluids[i] = GT_Utility.loadFluid(tTag, "f" + i);
|
||||
if (tFluids[i] == null) continue;
|
||||
if(GT_Values.D1)System.out.println("Fluid "+i+" "+tFluids[i].getUnlocalizedName());
|
||||
if (mInputHatches.get(i) == null) return false;
|
||||
if (mInputHatches.get(i) == null) {
|
||||
recipeNA = true;
|
||||
break;
|
||||
}
|
||||
FluidStack fluidInHatch = mInputHatches.get(i).mFluid;
|
||||
if (fluidInHatch == null || !GT_Utility.areFluidsEqual(fluidInHatch, tFluids[i], true) || fluidInHatch.amount < tFluids[i].amount) {
|
||||
if(GT_Values.D1)System.out.println(i+" not accepted");
|
||||
return false;
|
||||
recipeNA = true;
|
||||
break;
|
||||
}
|
||||
if(GT_Values.D1)System.out.println(i+" accepted");
|
||||
}
|
||||
if (recipeNA) continue;
|
||||
|
||||
if(GT_Values.D1)System.out.println("Input accepted, check other values");
|
||||
if (!tTag.hasKey("output")) return false;
|
||||
if (!tTag.hasKey("output")) continue;
|
||||
mOutputItems = new ItemStack[]{GT_Utility.loadItem(tTag, "output")};
|
||||
if (mOutputItems[0] == null || !GT_Utility.isStackValid(mOutputItems[0]))
|
||||
return false;
|
||||
continue;
|
||||
|
||||
if (!tTag.hasKey("time")) return false;
|
||||
if (!tTag.hasKey("time")) continue;
|
||||
mMaxProgresstime = tTag.getInteger("time");
|
||||
if (mMaxProgresstime <= 0) return false;
|
||||
if (mMaxProgresstime <= 0) continue;
|
||||
|
||||
if (!tTag.hasKey("eu")) return false;
|
||||
if (!tTag.hasKey("eu")) continue;
|
||||
mEUt = tTag.getInteger("eu");
|
||||
|
||||
if(GT_Values.D1)System.out.println("Find avaiable recipe");
|
||||
findRecipe = true;
|
||||
break;
|
||||
}
|
||||
if (!findRecipe) return false;
|
||||
|
||||
if(GT_Values.D1)System.out.println("All checked start consuming inputs");
|
||||
for (int i = 0; i < 15; i++) {
|
||||
if (tStack[i] == null) continue;
|
||||
|
@ -168,13 +198,16 @@ public class GT_MetaTileEntity_AssemblyLine
|
|||
for (int r = 0; r <= 16; r++) {
|
||||
int i = r * xDir;
|
||||
|
||||
IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(0, 0, i);
|
||||
if (i != 0 && !(aBaseMetaTileEntity.getBlockOffset(0, 0, i) == GregTech_API.sBlockCasings3 && aBaseMetaTileEntity.getMetaIDOffset(0, 0, i) == 10)) {
|
||||
if(r == 1 && !addDataAccessToMachineList(tTileEntity, 16)){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (!aBaseMetaTileEntity.getBlockOffset(0, -1, i).getUnlocalizedName().equals("blockAlloyGlass")) {
|
||||
return false;
|
||||
}
|
||||
IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(0, -2, i);
|
||||
tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(0, -2, i);
|
||||
if ((!addMaintenanceToMachineList(tTileEntity, 16)) && (!addInputToMachineList(tTileEntity, 16))) {
|
||||
if (aBaseMetaTileEntity.getBlockOffset(0, -2, i) != GregTech_API.sBlockCasings2) {
|
||||
return false;
|
||||
|
@ -225,13 +258,16 @@ public class GT_MetaTileEntity_AssemblyLine
|
|||
for (int r = 0; r <= 16; r++) {
|
||||
int i = r * -zDir;
|
||||
|
||||
IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(i, 0, 0);
|
||||
if (i != 0 && !(aBaseMetaTileEntity.getBlockOffset(i, 0, 0) == GregTech_API.sBlockCasings3 && aBaseMetaTileEntity.getMetaIDOffset(i, 0, 0) == 10)) {
|
||||
if(r == 1 && !addDataAccessToMachineList(tTileEntity, 16)){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (!aBaseMetaTileEntity.getBlockOffset(i, -1, 0).getUnlocalizedName().equals("blockAlloyGlass")) {
|
||||
return false;
|
||||
}
|
||||
IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(i, -2, 0);
|
||||
tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(i, -2, 0);
|
||||
if ((!addMaintenanceToMachineList(tTileEntity, 16)) && (!addInputToMachineList(tTileEntity, 16))) {
|
||||
if (aBaseMetaTileEntity.getBlockOffset(i, -2, 0) != GregTech_API.sBlockCasings2) {
|
||||
return false;
|
||||
|
@ -282,6 +318,47 @@ public class GT_MetaTileEntity_AssemblyLine
|
|||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param state using bitmask, 1 for IntegratedCircuit, 2 for DataStick, 4 for DataOrb
|
||||
*/
|
||||
private boolean isCorrectDataItem(ItemStack aStack, int state){
|
||||
if ((state & 1) != 0 && ItemList.Circuit_Integrated.isStackEqual(aStack, false, true)) return true;
|
||||
if ((state & 2) != 0 && ItemList.Tool_DataStick.isStackEqual(aStack, false, true)) return true;
|
||||
if ((state & 4) != 0 && ItemList.Tool_DataOrb.isStackEqual(aStack, false, true)) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param state using bitmask, 1 for IntegratedCircuit, 2 for DataStick, 4 for DataOrb
|
||||
*/
|
||||
public ArrayList<ItemStack> getDataItems(int state) {
|
||||
ArrayList<ItemStack> rList = new ArrayList<ItemStack>();
|
||||
if (GT_Utility.isStackValid(mInventory[1]) && isCorrectDataItem(mInventory[1], state)) {
|
||||
rList.add(mInventory[1]);
|
||||
}
|
||||
for (GT_MetaTileEntity_Hatch_DataAccess tHatch : mDataAccessHatches) {
|
||||
if (isValidMetaTileEntity(tHatch)) {
|
||||
for (int i = 0; i < tHatch.getBaseMetaTileEntity().getSizeInventory(); i++) {
|
||||
if (tHatch.getBaseMetaTileEntity().getStackInSlot(i) != null
|
||||
&& isCorrectDataItem(tHatch.getBaseMetaTileEntity().getStackInSlot(i), state))
|
||||
rList.add(tHatch.getBaseMetaTileEntity().getStackInSlot(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
return rList;
|
||||
}
|
||||
|
||||
public boolean addDataAccessToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) {
|
||||
if (aTileEntity == null) return false;
|
||||
IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
|
||||
if (aMetaTileEntity == null) return false;
|
||||
if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_DataAccess) {
|
||||
((GT_MetaTileEntity_Hatch) aMetaTileEntity).mMachineBlock = (byte) aBaseCasingIndex;
|
||||
return mDataAccessHatches.add((GT_MetaTileEntity_Hatch_DataAccess) aMetaTileEntity);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getMaxEfficiency(ItemStack aStack) {
|
||||
return 10000;
|
||||
}
|
||||
|
|
|
@ -357,6 +357,12 @@ public class GT_Loader_MetaTileEntities implements Runnable {
|
|||
|
||||
GT_ModHandler.addCraftingRecipe(ItemList.Hatch_AutoMaintenance.get(1L, new Object[0]), bitsd, new Object[]{"CHC", "AMA", "CHC", 'M', ItemList.Hull_IV,'H',ItemList.Hatch_Maintenance,'A',ItemList.Robot_Arm_IV,'C',OrePrefixes.circuit.get(Materials.Master)});
|
||||
|
||||
ItemList.Hatch_DataAccess_EV.set(new GT_MetaTileEntity_Hatch_DataAccess(131, "hatch.dataaccess", "Data Access Hatch", 4).getStackForm(1L));
|
||||
ItemList.Hatch_DataAccess_LuV.set(new GT_MetaTileEntity_Hatch_DataAccess(132, "hatch.dataaccess", "Advanced Data Access Hatch", 6).getStackForm(1L));
|
||||
|
||||
GT_ModHandler.addCraftingRecipe(ItemList.Hatch_DataAccess_EV.get(1L, new Object[0]), bitsd, new Object[]{"COC", "OMO", "COC", 'M', ItemList.Hull_EV, 'O', ItemList.Tool_DataStick , 'C' ,OrePrefixes.circuit.get(Materials.Elite)});
|
||||
GT_ModHandler.addCraftingRecipe(ItemList.Hatch_DataAccess_LuV.get(1L, new Object[0]), bitsd, new Object[]{"COC", "OMO", "COC", 'M', ItemList.Hull_LuV, 'O', ItemList.Tool_DataOrb , 'C' ,OrePrefixes.circuit.get(Materials.Ultimate)});
|
||||
|
||||
ItemList.Hatch_Muffler_LV.set(new GT_MetaTileEntity_Hatch_Muffler(91, "hatch.muffler.tier.01", "Muffler Hatch (LV)", 1).getStackForm(1L));
|
||||
ItemList.Hatch_Muffler_MV.set(new GT_MetaTileEntity_Hatch_Muffler(92, "hatch.muffler.tier.02", "Muffler Hatch (MV)", 2).getStackForm(1L));
|
||||
ItemList.Hatch_Muffler_HV.set(new GT_MetaTileEntity_Hatch_Muffler(93, "hatch.muffler.tier.03", "Muffler Hatch (HV)", 3).getStackForm(1L));
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 398 B |
Binary file not shown.
After Width: | Height: | Size: 2.1 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.2 KiB |
Loading…
Reference in a new issue