Implemented Output Calculation
This commit is contained in:
parent
6c2c76bd06
commit
4a59d0efbd
4 changed files with 85 additions and 26 deletions
|
@ -638,7 +638,7 @@ public enum ItemList implements IItemContainer {
|
|||
ModularBasicHelmet, ModularBasicChestplate, ModularBasicLeggings, ModularBasicBoots,
|
||||
ModularElectric1Helmet, ModularElectric1Chestplate, ModularElectric1Leggings, ModularElectric1Boots,
|
||||
ModularElectric2Helmet, ModularElectric2Chestplate, ModularElectric2Leggings, ModularElectric2Boots, Block_Powderbarrel, GelledToluene,
|
||||
FluidRegulator_LV, FluidRegulator_MV, FluidRegulator_HV, FluidRegulator_EV, FluidRegulator_IV, FluidFilter, CuringOven, Machine_Multi_Assemblyline, Machine_Multi_LargeDieselGenerator;
|
||||
FluidRegulator_LV, FluidRegulator_MV, FluidRegulator_HV, FluidRegulator_EV, FluidRegulator_IV, FluidFilter, CuringOven, Machine_Multi_Assemblyline, Machine_Multi_LargeDieselEngine;
|
||||
|
||||
public static final ItemList[]
|
||||
DYE_ONLY_ITEMS = {Color_00, Color_01, Color_02, Color_03, Color_04, Color_05, Color_06, Color_07, Color_08, Color_09, Color_10, Color_11, Color_12, Color_13, Color_14, Color_15}, SPRAY_CAN_DYES = {Spray_Color_00, Spray_Color_01, Spray_Color_02, Spray_Color_03, Spray_Color_04, Spray_Color_05, Spray_Color_06, Spray_Color_07, Spray_Color_08, Spray_Color_09, Spray_Color_10, Spray_Color_11, Spray_Color_12, Spray_Color_13, Spray_Color_14, Spray_Color_15}, SPRAY_CAN_DYES_USED = {Spray_Color_Used_00, Spray_Color_Used_01, Spray_Color_Used_02, Spray_Color_Used_03, Spray_Color_Used_04, Spray_Color_Used_05, Spray_Color_Used_06, Spray_Color_Used_07, Spray_Color_Used_08, Spray_Color_Used_09, Spray_Color_Used_10, Spray_Color_Used_11, Spray_Color_Used_12, Spray_Color_Used_13, Spray_Color_Used_14, Spray_Color_Used_15}, TRANSFORMERS = {Transformer_LV_ULV, Transformer_MV_LV, Transformer_HV_MV, Transformer_EV_HV, Transformer_IV_EV, Transformer_LuV_IV, Transformer_ZPM_LuV, Transformer_UV_ZPM, Transformer_MAX_UV}, MACHINE_HULLS = {Hull_ULV, Hull_LV, Hull_MV, Hull_HV, Hull_EV, Hull_IV, Hull_LuV, Hull_ZPM, Hull_UV, Hull_MAX}, HATCHES_DYNAMO = {Hatch_Dynamo_ULV, Hatch_Dynamo_LV, Hatch_Dynamo_MV, Hatch_Dynamo_HV, Hatch_Dynamo_EV, Hatch_Dynamo_IV, Hatch_Dynamo_LuV, Hatch_Dynamo_ZPM, Hatch_Dynamo_UV, Hatch_Dynamo_MAX}, HATCHES_ENERGY = {Hatch_Energy_ULV, Hatch_Energy_LV, Hatch_Energy_MV, Hatch_Energy_HV, Hatch_Energy_EV, Hatch_Energy_IV, Hatch_Energy_LuV, Hatch_Energy_ZPM, Hatch_Energy_UV, Hatch_Energy_MAX}, HATCHES_INPUT = {Hatch_Input_ULV, Hatch_Input_LV, Hatch_Input_MV, Hatch_Input_HV, Hatch_Input_EV, Hatch_Input_IV, Hatch_Input_LuV, Hatch_Input_ZPM, Hatch_Input_UV, Hatch_Input_MAX}, HATCHES_INPUT_BUS = {Hatch_Input_Bus_ULV, Hatch_Input_Bus_LV, Hatch_Input_Bus_MV, Hatch_Input_Bus_HV, Hatch_Input_Bus_EV, Hatch_Input_Bus_IV, Hatch_Input_Bus_LuV, Hatch_Input_Bus_ZPM, Hatch_Input_Bus_UV, Hatch_Input_Bus_MAX}, HATCHES_OUTPUT = {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}, HATCHES_OUTPUT_BUS = {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}, HATCHES_MUFFLER = {Hatch_Muffler_LV, 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};
|
||||
|
|
|
@ -15,22 +15,28 @@ import net.minecraft.block.Block;
|
|||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import net.minecraftforge.fluids.FluidRegistry;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
||||
public class GT_MetaTileEntity_LargeDieselGenerator extends GT_MetaTileEntity_MultiBlockBase {
|
||||
public GT_MetaTileEntity_LargeDieselGenerator(int aID, String aName, String aNameRegional) {
|
||||
public class GT_MetaTileEntity_LargeDieselEngine extends GT_MetaTileEntity_MultiBlockBase {
|
||||
boolean firstRun = true;
|
||||
boolean hasLubricant = false;
|
||||
boolean hasCoolant = false;
|
||||
boolean hasOxygen = false;
|
||||
|
||||
public GT_MetaTileEntity_LargeDieselEngine(int aID, String aName, String aNameRegional) {
|
||||
super(aID, aName, aNameRegional);
|
||||
}
|
||||
public GT_MetaTileEntity_LargeDieselGenerator(String aName) {
|
||||
public GT_MetaTileEntity_LargeDieselEngine(String aName) {
|
||||
super(aName);
|
||||
}
|
||||
|
||||
public String[] getDescription() {
|
||||
return new String[]{
|
||||
"Controller Block for the Large Diesel Generator",
|
||||
"Controller Block for the Large Diesel Engine",
|
||||
"Size: 3x3x3",
|
||||
"Controller (front centered)",
|
||||
"3x3x3 of Stable Titanium Casing (hollow, Min 24!)",
|
||||
|
@ -49,7 +55,7 @@ public class GT_MetaTileEntity_LargeDieselGenerator extends GT_MetaTileEntity_Mu
|
|||
}
|
||||
|
||||
public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
|
||||
return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "LargeDieselGenerator.png");
|
||||
return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "LargeDieselEngine.png");
|
||||
}
|
||||
|
||||
public boolean isCorrectMachinePart(ItemStack aStack) {
|
||||
|
@ -63,26 +69,65 @@ public class GT_MetaTileEntity_LargeDieselGenerator extends GT_MetaTileEntity_Mu
|
|||
public boolean checkRecipe(ItemStack aStack) {
|
||||
ArrayList<FluidStack> tFluids = getStoredFluids();
|
||||
Collection<GT_Recipe> tRecipeList = GT_Recipe.GT_Recipe_Map.sDieselFuels.mRecipeList;
|
||||
|
||||
boolean hasLubricant = false;
|
||||
hasLubricant = false;
|
||||
hasCoolant = false;
|
||||
hasOxygen = false;
|
||||
|
||||
if(tFluids.size() > 0 && tRecipeList != null) {
|
||||
for (FluidStack hatchFluid : tFluids) {
|
||||
if(hatchFluid.isFluidEqual(Materials.Lubricant.getFluid(1L))) {
|
||||
hasLubricant = true;
|
||||
}
|
||||
}
|
||||
for (FluidStack hatchFluid : tFluids) { //Loops through hatches
|
||||
|
||||
for (FluidStack hatchFluid1 : tFluids) { //Loops through hatches
|
||||
for(GT_Recipe aFuel : tRecipeList) { //Loops through diesel fuel recipes
|
||||
FluidStack tLiquid;
|
||||
if ((tLiquid = GT_Utility.getFluidForFilledItem(aFuel.getRepresentativeInput(0), true)) != null) {
|
||||
if (hatchFluid.isFluidEqual(tLiquid) && hasLubricant) {
|
||||
tLiquid.amount = 5;
|
||||
depleteInput(tLiquid); //Possible issue if diesel isn't divisible by 5?
|
||||
depleteInput(Materials.Lubricant.getFluid(1L)); //Possible NPE?
|
||||
if (hatchFluid1.isFluidEqual(tLiquid)) {
|
||||
for (FluidStack hatchFluid2 : tFluids) {
|
||||
if(hatchFluid2.isFluidEqual(Materials.Lubricant.getFluid(1L))) hasLubricant = true;
|
||||
if(hatchFluid2.isFluidEqual(FluidRegistry.getFluidStack("ic2coolant", 1))) hasCoolant = true;
|
||||
if(hatchFluid2.isFluidEqual(Materials.Oxygen.getGas(1L))) {
|
||||
if(hatchFluid2.amount >= aFuel.mSpecialValue / 10) {
|
||||
hasOxygen = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Implement output calculation
|
||||
System.out.println("Fuel Value: "+aFuel.mSpecialValue);
|
||||
|
||||
//Deplete Oxygen
|
||||
if(hasOxygen) depleteInput(Materials.Oxygen.getGas(aFuel.mSpecialValue / 10));
|
||||
|
||||
//Deplete coolant every IRL hour
|
||||
//Create Maintenance issues every hour if there is no coolant
|
||||
if(hasCoolant) {
|
||||
int amount = hasOxygen ? 3 ^ (mEfficiency / 10000) : (mEfficiency / 10000);
|
||||
if(firstRun) {
|
||||
depleteInput(FluidRegistry.getFluidStack("ic2coolant", amount));
|
||||
} else if(mRuntime % 720 == 0) {
|
||||
depleteInput(FluidRegistry.getFluidStack("ic2coolant", amount));
|
||||
}
|
||||
} else {
|
||||
doRandomMaintenanceDamage();
|
||||
}
|
||||
|
||||
//Deplete Lubricant every 12096 ticks or 10.08 minutes (Every 1000L should last an IRL week)
|
||||
if(hasLubricant) {
|
||||
if(firstRun) {
|
||||
depleteInput(Materials.Lubricant.getFluid(1L));
|
||||
} else if(mRuntime % 12096 == 0) {
|
||||
depleteInput(Materials.Lubricant.getFluid(1L));
|
||||
}
|
||||
} else {
|
||||
//Negative Effect?
|
||||
}
|
||||
|
||||
tLiquid.amount = 1;
|
||||
depleteInput(tLiquid);
|
||||
|
||||
mProgresstime = 1;
|
||||
mMaxProgresstime = 1;
|
||||
mEfficiencyIncrease = 10;
|
||||
|
||||
int baseEUt = 768;
|
||||
mEUt = (baseEUt + (aFuel.mSpecialValue * 10) * mEfficiency / 10000);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -92,6 +137,19 @@ public class GT_MetaTileEntity_LargeDieselGenerator extends GT_MetaTileEntity_Mu
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
|
||||
if (mProgresstime > 0 && firstRun) {
|
||||
firstRun = false;
|
||||
try {
|
||||
//Implement Achievement
|
||||
//GT_Mod.instance.achievements.issueAchievement(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), "extremepressure");
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
super.onPostTick(aBaseMetaTileEntity, aTick);
|
||||
}
|
||||
|
||||
public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
|
||||
int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX;
|
||||
int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ;
|
||||
|
@ -107,7 +165,7 @@ public class GT_MetaTileEntity_LargeDieselGenerator extends GT_MetaTileEntity_Mu
|
|||
for (int h = -1; h < 2; h++) {
|
||||
if ((h != 0) || (((xDir + i != 0) || (zDir + j != 0)) && ((i != 0) || (j != 0)))) {
|
||||
IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, h, zDir + j);
|
||||
if ((!addMaintenanceToMachineList(tTileEntity, 50)) && (!addMufflerToMachineList(tTileEntity, 50)) && (!addInputToMachineList(tTileEntity, 50)) && (!addInputToMachineList(tTileEntity, 50)) && (!addInputToMachineList(tTileEntity, 50)) && (!addDynamoToMachineList(tTileEntity, 50))) {
|
||||
if ((!addMaintenanceToMachineList(tTileEntity, 50)) && (!addMufflerToMachineList(tTileEntity, 50)) && (!addInputToMachineList(tTileEntity, 50)) && (!addInputToMachineList(tTileEntity, 50)) && (!addInputToMachineList(tTileEntity, 50)) && (!addInputToMachineList(tTileEntity, 50)) && (!addOutputToMachineList(tTileEntity, 50)) && (!addDynamoToMachineList(tTileEntity, 50))) {
|
||||
Block tBlock = aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j);
|
||||
byte tMeta = aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j);
|
||||
if (((tBlock != GregTech_API.sBlockCasings4) || (tMeta != 2))) {
|
||||
|
@ -143,7 +201,7 @@ public class GT_MetaTileEntity_LargeDieselGenerator extends GT_MetaTileEntity_Mu
|
|||
}
|
||||
|
||||
public int getMaxEfficiency(ItemStack aStack) {
|
||||
return 10000;
|
||||
return hasOxygen ? 14500 : 10000;
|
||||
}
|
||||
|
||||
public int getPollutionPerTick(ItemStack aStack) {
|
||||
|
@ -163,14 +221,15 @@ public class GT_MetaTileEntity_LargeDieselGenerator extends GT_MetaTileEntity_Mu
|
|||
}
|
||||
|
||||
public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
|
||||
return new GT_MetaTileEntity_LargeDieselGenerator(this.mName);
|
||||
return new GT_MetaTileEntity_LargeDieselEngine(this.mName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getInfoData() {
|
||||
return new String[]{
|
||||
"Large Diesel Generator",
|
||||
"Efficiency: " + mEfficiency / 100 + "%",
|
||||
"Large Diesel Engine",
|
||||
"Efficiency: " + (float) mEfficiency / 100 + "%",
|
||||
"EfficiencyRaw: " + mEfficiency,
|
||||
"Current Output: " + mEUt + " EU/t"
|
||||
};
|
||||
}
|
|
@ -1033,8 +1033,8 @@ public class GT_Loader_MetaTileEntities
|
|||
ItemList.Machine_Multi_Assemblyline.set(new GT_MetaTileEntity_AssemblyLine(1170, "multimachine.assemblyline", "Assemblyline").getStackForm(1L));
|
||||
GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_Assemblyline.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WCW", "EME", "WCW", 'M', ItemList.Hull_IV, 'W', ItemList.Casing_Assembler, 'E', OrePrefixes.circuit.get(Materials.Ultimate), 'C', ItemList.Robot_Arm_IV});
|
||||
|
||||
ItemList.Machine_Multi_LargeDieselGenerator.set(new GT_MetaTileEntity_LargeDieselGenerator(1171, "multimachine.dieselgenerator", "Large Diesel Generator").getStackForm(1L));
|
||||
GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_LargeDieselGenerator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WCW", "EME", "WCW", 'M', ItemList.Hull_IV, 'W', ItemList.Casing_Assembler, 'E', OrePrefixes.circuit.get(Materials.Ultimate), 'C', ItemList.Robot_Arm_IV});
|
||||
ItemList.Machine_Multi_LargeDieselEngine.set(new GT_MetaTileEntity_LargeDieselEngine(1171, "multimachine.dieselengine", "Large Diesel Engine").getStackForm(1L));
|
||||
GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_LargeDieselEngine.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WCW", "EME", "WCW", 'M', ItemList.Hull_IV, 'W', ItemList.Casing_Assembler, 'E', OrePrefixes.circuit.get(Materials.Ultimate), 'C', ItemList.Robot_Arm_IV});
|
||||
}
|
||||
|
||||
private static void run4() {
|
||||
|
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
Loading…
Reference in a new issue