aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus')
-rw-r--r--src/Java/gtPlusPlus/core/common/BasePlayer.java183
-rw-r--r--src/Java/gtPlusPlus/core/handler/events/SneakManager.java33
-rw-r--r--src/Java/gtPlusPlus/core/item/crafting/ItemDummyResearch.java4
-rw-r--r--src/Java/gtPlusPlus/core/item/general/ItemSlowBuildingRing.java36
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java256
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_SeleniumProcessing.java18
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_Tools.java11
-rw-r--r--src/Java/gtPlusPlus/core/util/data/ArrayUtils.java17
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java3
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/gui/hatches/CONTAINER_1by1_Turbine.java4
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_TurbineProvider.java212
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_CapeRenderer.java10
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_ThermalBoiler.java14
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java13
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechCustomHatches.java14
17 files changed, 542 insertions, 290 deletions
diff --git a/src/Java/gtPlusPlus/core/common/BasePlayer.java b/src/Java/gtPlusPlus/core/common/BasePlayer.java
index d60925102a..4686f34207 100644
--- a/src/Java/gtPlusPlus/core/common/BasePlayer.java
+++ b/src/Java/gtPlusPlus/core/common/BasePlayer.java
@@ -1,19 +1,14 @@
package gtPlusPlus.core.common;
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.audio.PositionedSoundRecord;
-import net.minecraft.client.entity.EntityClientPlayerMP;
-import net.minecraft.client.gui.GuiScreen;
-import net.minecraft.client.settings.GameSettings;
-import net.minecraft.network.play.client.C0BPacketEntityAction;
-import net.minecraft.potion.Potion;
-import net.minecraft.util.MovementInputFromOptions;
-import net.minecraft.util.ResourceLocation;
-
import api.player.client.ClientPlayerAPI;
import api.player.client.ClientPlayerBase;
import gtPlusPlus.core.handler.events.CustomMovementHandler;
import gtPlusPlus.core.handler.events.SneakManager;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.settings.GameSettings;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.potion.Potion;
+import net.minecraft.util.MovementInputFromOptions;
public class BasePlayer extends ClientPlayerBase
{
@@ -30,8 +25,17 @@ public class BasePlayer extends ClientPlayerBase
* EntityPlayerSP.onLivingUpdate() - Adapted to PlayerAPI
*/
@Override
- public void onLivingUpdate()
- {
+ public void onLivingUpdate() {
+
+ super.onLivingUpdate();
+ EntityPlayer aPlayer = this.player;
+ if (aPlayer != null) {
+ SneakManager aSneak = SneakManager.get(aPlayer);
+ if (!aSneak.isWearingRing()) {
+ return;
+ }
+ }
+
if(this.player.sprintingTicksLeft > 0)
{
--this.player.sprintingTicksLeft;
@@ -57,54 +61,9 @@ public class BasePlayer extends ClientPlayerBase
}
else
{
- this.player.prevTimeInPortal = this.player.timeInPortal;
- if(this.playerAPI.getInPortalField())
- {
- if(this.mc.currentScreen != null)
- {
- this.mc.displayGuiScreen((GuiScreen)null);
- }
-
- if(this.player.timeInPortal == 0.0F)
- {
- this.mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("portal.trigger"), (this.player.getRNG().nextFloat() * 0.4F) + 0.8F));
- }
-
- this.player.timeInPortal += 0.0125F;
-
- if(this.player.timeInPortal >= 1.0F)
- {
- this.player.timeInPortal = 1.0F;
- }
-
- this.playerAPI.setInPortalField(false);
- }
- else if(this.player.isPotionActive(Potion.confusion) && (this.player.getActivePotionEffect(Potion.confusion).getDuration() > 60))
- {
- this.player.timeInPortal += 0.006666667F;
- if(this.player.timeInPortal > 1.0F)
- {
- this.player.timeInPortal = 1.0F;
- }
- }
- else
- {
- if(this.player.timeInPortal > 0.0F)
- {
- this.player.timeInPortal -= 0.05F;
- }
-
- if(this.player.timeInPortal < 0.0F)
- {
- this.player.timeInPortal = 0.0F;
- }
- }
- if(this.player.timeUntilPortal > 0)
- {
- --this.player.timeUntilPortal;
- }
+
final boolean isJumping = this.player.movementInput.jump;
@@ -112,23 +71,6 @@ public class BasePlayer extends ClientPlayerBase
final boolean isMovingForward = this.player.movementInput.moveForward >= minSpeed;
this.customMovementInput.update(this.mc, (MovementInputFromOptions)this.player.movementInput, this.player);
- if(this.player.isUsingItem() && !this.player.isRiding())
- {
- this.player.movementInput.moveStrafe *= 0.2F;
- this.player.movementInput.moveForward *= 0.2F;
- this.playerAPI.setSprintToggleTimerField(0);
- }
-
- if(this.player.movementInput.sneak && (this.player.ySize < 0.2F))
- {
- this.player.ySize = 0.2F;
- }
-
- this.playerAPI.localPushOutOfBlocks(this.player.posX - (this.player.width * 0.35D), this.player.boundingBox.minY + 0.5D, this.player.posZ + (this.player.width * 0.35D));
- this.playerAPI.localPushOutOfBlocks(this.player.posX - (this.player.width * 0.35D), this.player.boundingBox.minY + 0.5D, this.player.posZ - (this.player.width * 0.35D));
- this.playerAPI.localPushOutOfBlocks(this.player.posX + (this.player.width * 0.35D), this.player.boundingBox.minY + 0.5D, this.player.posZ - (this.player.width * 0.35D));
- this.playerAPI.localPushOutOfBlocks(this.player.posX + (this.player.width * 0.35D), this.player.boundingBox.minY + 0.5D, this.player.posZ + (this.player.width * 0.35D));
- final boolean enoughHunger = (this.player.getFoodStats().getFoodLevel() > 6.0F) || this.player.capabilities.isFlying;
/*
* Begin ToggleSneak Changes - ToggleSprint
@@ -151,7 +93,7 @@ public class BasePlayer extends ClientPlayerBase
if(isSprintDisabled)
{
//Utils.LOG_INFO("Sprint pressed");
- if(aSneak.optionDoubleTap && this.player.onGround && !isMovingForward && (this.player.movementInput.moveForward >= minSpeed) && !this.player.isSprinting() && enoughHunger && !this.player.isUsingItem() && !this.player.isPotionActive(Potion.blindness))
+ if(aSneak.optionDoubleTap && this.player.onGround && !isMovingForward && (this.player.movementInput.moveForward >= minSpeed) && !this.player.isSprinting() && !this.player.isUsingItem() && !this.player.isPotionActive(Potion.blindness))
{
if((this.playerAPI.getSprintToggleTimerField() <= 0) && !this.settings.keyBindSprint.getIsKeyPressed())
{
@@ -170,7 +112,7 @@ public class BasePlayer extends ClientPlayerBase
}
}
- if(!this.player.isSprinting() && (this.player.movementInput.moveForward >= minSpeed) && enoughHunger && !this.player.isUsingItem() && !this.player.isPotionActive(Potion.blindness) && this.settings.keyBindSprint.getIsKeyPressed())
+ if(!this.player.isSprinting() && (this.player.movementInput.moveForward >= minSpeed) && !this.player.isUsingItem() && !this.player.isPotionActive(Potion.blindness) && this.settings.keyBindSprint.getIsKeyPressed())
{
if (aSneak.Sprinting()){
this.player.setSprinting(true);
@@ -192,7 +134,7 @@ public class BasePlayer extends ClientPlayerBase
// 5/6/14 - onGround check removed to match vanilla's 'start sprint while jumping' behavior.
//if(this.player.onGround && enoughHunger && !this.player.isUsingItem() && !this.player.isPotionActive(Potion.blindness) && !this.customMovementInput.sprintHeldAndReleased)
- if(enoughHunger && !this.player.isUsingItem() && !this.player.isPotionActive(Potion.blindness) && !this.customMovementInput.sprintHeldAndReleased)
+ if(!this.player.isUsingItem() && !this.player.isPotionActive(Potion.blindness) && !this.customMovementInput.sprintHeldAndReleased)
{
if((canDoubleTap && !this.player.isSprinting()) || !canDoubleTap)
{
@@ -204,7 +146,7 @@ public class BasePlayer extends ClientPlayerBase
}
}
- if(canDoubleTap && !state && this.player.onGround && !isMovingForward && (this.player.movementInput.moveForward >= minSpeed) && !this.player.isSprinting() && enoughHunger && !this.player.isUsingItem() && !this.player.isPotionActive(Potion.blindness))
+ if(canDoubleTap && !state && this.player.onGround && !isMovingForward && (this.player.movementInput.moveForward >= minSpeed) && !this.player.isSprinting() && !this.player.isUsingItem() && !this.player.isPotionActive(Potion.blindness))
{
if(this.playerAPI.getSprintToggleTimerField() == 0)
{
@@ -223,7 +165,7 @@ public class BasePlayer extends ClientPlayerBase
// If sprinting, break the sprint in appropriate circumstances:
// Player stops moving forward, runs into something, or gets too hungry
- if(this.player.isSprinting() && ((this.player.movementInput.moveForward < minSpeed) || this.player.isCollidedHorizontally || !enoughHunger))
+ if(this.player.isSprinting() && ((this.player.movementInput.moveForward < minSpeed) || this.player.isCollidedHorizontally))
{
this.player.setSprinting(false);
@@ -265,87 +207,6 @@ public class BasePlayer extends ClientPlayerBase
// this.handledDebugPress = false;
// }
- //
- // Fly Speed Boosting - Added 5/7/2014
- //
- if(this.player.capabilities.getFlySpeed() != 0.05F)
- {
- this.player.capabilities.setFlySpeed(0.05F);
- }
-
-
- if(this.player.capabilities.allowFlying && !isJumping && this.player.movementInput.jump)
- {
- if(this.playerAPI.getFlyToggleTimerField() == 0)
- {
- this.playerAPI.setFlyToggleTimerField(7);
- }
- else
- {
- this.player.capabilities.isFlying = !this.player.capabilities.isFlying;
- this.player.sendPlayerAbilities();
- this.playerAPI.setFlyToggleTimerField(0);
- }
- }
-
- if(this.player.capabilities.isFlying)
- {
- if(this.player.movementInput.sneak)
- {
- this.player.motionY -= 0.15D;
- }
- if(this.player.movementInput.jump)
- {
- this.player.motionY += 0.15D;
- }
- }
-
- if(this.player.isRidingHorse())
- {
- if(this.playerAPI.getHorseJumpPowerCounterField() < 0)
- {
- this.playerAPI.setHorseJumpPowerCounterField(this.playerAPI.getHorseJumpPowerCounterField() + 1);
- if(this.playerAPI.getHorseJumpPowerCounterField() == 0)
- {
- this.playerAPI.setHorseJumpPowerField(0.0F);
- }
- }
-
- if(isJumping && !this.player.movementInput.jump)
- {
- this.playerAPI.setHorseJumpPowerCounterField(this.playerAPI.getHorseJumpPowerCounterField() - 10);
- this.playerAPI.setHorseJumpPowerCounterField(-10);
- ((EntityClientPlayerMP)this.player).sendQueue.addToSendQueue(new C0BPacketEntityAction(this.player, 6, (int)(this.player.getHorseJumpPower() * 100.0F)));
- }
- else if(!isJumping && this.player.movementInput.jump)
- {
- this.playerAPI.setHorseJumpPowerCounterField(0);
- this.playerAPI.setHorseJumpPowerField(0.0F);
- }
- else if(isJumping)
- {
- this.playerAPI.setHorseJumpPowerCounterField(this.playerAPI.getHorseJumpPowerCounterField() + 1);
- if(this.playerAPI.getHorseJumpPowerCounterField() < 10)
- {
- this.playerAPI.setHorseJumpPowerField(this.playerAPI.getHorseJumpPowerCounterField() * 0.1F);
- }
- else
- {
- this.playerAPI.setHorseJumpPowerField(0.8F + ((2.0F / (this.playerAPI.getHorseJumpPowerCounterField() - 9)) * 0.1F));
- }
- }
- }
- else
- {
- this.playerAPI.setHorseJumpPowerField(0.0F);
- }
-
- this.playerAPI.superOnLivingUpdate();
- if(this.player.onGround && this.player.capabilities.isFlying)
- {
- this.player.capabilities.isFlying = false;
- this.player.sendPlayerAbilities();
- }
}
}
} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/handler/events/SneakManager.java b/src/Java/gtPlusPlus/core/handler/events/SneakManager.java
index 2b067be477..3e51c6488a 100644
--- a/src/Java/gtPlusPlus/core/handler/events/SneakManager.java
+++ b/src/Java/gtPlusPlus/core/handler/events/SneakManager.java
@@ -37,10 +37,11 @@ public class SneakManager {
public boolean canSprint = true;
public boolean isSneaking = true;
public boolean optionDoubleTap = true;
- public boolean wasSprintDisabled = false;
+ public boolean wasSprintDisabled = false;
+ public boolean mIsWearingRing = false;
- private static State Sprinting = State.ON;
- private static State Crouching = State.OFF;
+ private State Sprinting = State.ON;
+ private State Crouching = State.OFF;
public SneakManager(EntityPlayer aPlayer) {
owner = aPlayer;
@@ -78,22 +79,38 @@ public class SneakManager {
return State.ON;
}
- public State setCrouchingStateON(){
+ private State setCrouchingStateON(){
return Crouching = State.ON;
}
- public State setCrouchingStateOFF(){
+ private State setCrouchingStateOFF(){
return Crouching = State.OFF;
}
- public State setSprintingStateON(){
+ private State setSprintingStateON(){
return Sprinting = State.ON;
}
- public State setSprintingStateOFF(){
+ private State setSprintingStateOFF(){
return Sprinting = State.OFF;
}
-
+
+ public void putRingOn() {
+ mIsWearingRing = true;
+ setSprintingStateOFF();
+ setCrouchingStateON();
+ }
+
+ public void takeRingOff() {
+ mIsWearingRing = false;
+ setSprintingStateON();
+ setCrouchingStateOFF();
+ }
+
+ public boolean isWearingRing() {
+ return mIsWearingRing;
+ }
+
public static enum State {
ON(true),
OFF(false);
diff --git a/src/Java/gtPlusPlus/core/item/crafting/ItemDummyResearch.java b/src/Java/gtPlusPlus/core/item/crafting/ItemDummyResearch.java
index 1c28f99ff8..3f8e31d8d2 100644
--- a/src/Java/gtPlusPlus/core/item/crafting/ItemDummyResearch.java
+++ b/src/Java/gtPlusPlus/core/item/crafting/ItemDummyResearch.java
@@ -26,7 +26,9 @@ public class ItemDummyResearch extends ItemGenericToken {
RESEARCH_4_BASIC_PHYSICS("Basic Physics", "Fundamental laws of motion"),
RESEARCH_5_ADV_PHYSICS("Advanced Physics", "Advanced knowledge!"),
RESEARCH_6_BASIC_METALLURGY("Basic Metallurgy", "Information about material smelting"),
- RESEARCH_7_ADV_METALLURGY("Advanced Metallurgy", "Advanced Material Sciences!");
+ RESEARCH_7_ADV_METALLURGY("Advanced Metallurgy", "Advanced Material Sciences!"),
+ RESEARCH_8_TURBINE_AUTOMATION("Turbine Automation", "You really don't want to share this with anyone!"),
+ RESEARCH_9_CLOAKING("Cloaking Technologies", "Sneaking around like a mouse");
diff --git a/src/Java/gtPlusPlus/core/item/general/ItemSlowBuildingRing.java b/src/Java/gtPlusPlus/core/item/general/ItemSlowBuildingRing.java
index c151a16f09..fa008bf1a3 100644
--- a/src/Java/gtPlusPlus/core/item/general/ItemSlowBuildingRing.java
+++ b/src/Java/gtPlusPlus/core/item/general/ItemSlowBuildingRing.java
@@ -2,10 +2,15 @@ package gtPlusPlus.core.item.general;
import java.util.List;
+import baubles.api.BaubleType;
+import baubles.api.IBauble;
import cpw.mods.fml.common.Optional;
import cpw.mods.fml.common.registry.GameRegistry;
-
-import net.minecraft.client.Minecraft;
+import gtPlusPlus.core.creative.AddToCreativeTab;
+import gtPlusPlus.core.handler.events.CustomMovementHandler;
+import gtPlusPlus.core.handler.events.SneakManager;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
@@ -14,14 +19,6 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
-import baubles.api.BaubleType;
-import baubles.api.IBauble;
-import gtPlusPlus.core.creative.AddToCreativeTab;
-import gtPlusPlus.core.handler.events.CustomMovementHandler;
-import gtPlusPlus.core.handler.events.SneakManager;
-import gtPlusPlus.core.lib.CORE;
-import gtPlusPlus.core.util.minecraft.ItemUtils;
-
@Optional.InterfaceList(value = {@Optional.Interface(iface = "baubles.api.IBauble", modid = "Baubles"), @Optional.Interface(iface = "baubles.api.BaubleType", modid = "Baubles")})
public class ItemSlowBuildingRing extends Item implements IBauble{
@@ -84,7 +81,17 @@ public class ItemSlowBuildingRing extends Item implements IBauble{
@Override //TODO
public void onEquipped(final ItemStack arg0, final EntityLivingBase arg1) {
- doEffect(arg1);
+ try {
+ EntityPlayer aPlayer;
+ if (arg1 instanceof EntityPlayer) {
+ aPlayer = (EntityPlayer) arg1;
+ SneakManager s = SneakManager.get(aPlayer);
+ s.putRingOn();
+ }
+ }
+ catch (Throwable t) {
+ t.printStackTrace();
+ }
}
@Override //TODO
@@ -94,8 +101,7 @@ public class ItemSlowBuildingRing extends Item implements IBauble{
if (arg1 instanceof EntityPlayer) {
aPlayer = (EntityPlayer) arg1;
SneakManager s = SneakManager.get(aPlayer);
- s.setSprintingStateON();
- s.setCrouchingStateOFF();
+ s.takeRingOff();
}
}
catch (Throwable t) {
@@ -122,9 +128,7 @@ public class ItemSlowBuildingRing extends Item implements IBauble{
}
if (aPlayer.isSprinting()) {
aPlayer.setSprinting(false);
- }
- s.setSprintingStateOFF();
- s.setCrouchingStateON();
+ }
}
}
}
diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
index 3f631e0bca..ea7f5e4ef7 100644
--- a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
+++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
@@ -276,6 +276,35 @@ public class RECIPES_GREGTECH {
20 * 60 * 1 * (GTNH ? 2 : 1),
(int) GT_Values.V[5]);
+ // Turbine Automation Port
+ CORE.RA.addAssemblylineRecipe(
+ ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_8_TURBINE_AUTOMATION, 1),
+ 20 * 60 * 60 * 24,
+ new ItemStack[] {
+ CI.getTieredMachineHull(8, 4),
+ CI.getConveyor(8, GTNH ? 24 : 12),
+ CI.getElectricMotor(7, GTNH ? 32 : 16),
+ CI.getElectricPiston(7, GTNH ? 16 : 4),
+ CI.getEnergyCore(6, GTNH ? 8 : 2),
+ CI.getPlate(8, GTNH ? 24 : 12),
+ CI.getTieredComponent(OrePrefixes.screw, 8, GTNH ? 48 : 24),
+ CI.getTieredComponent(OrePrefixes.bolt, 7, GTNH ? 32 : 16),
+ CI.getTieredComponent(OrePrefixes.rod, 6, GTNH ? 12 : 6),
+ CI.getTieredComponent(OrePrefixes.circuit, 7, GTNH ? 20 : 10),
+ CI.getTieredComponent(OrePrefixes.rotor, 6, GTNH ? 16 : 8),
+ },
+ new FluidStack[] {
+ CI.getTieredFluid(8, 144 * 32),
+ CI.getAlternativeTieredFluid(7, 144 * 16),
+ CI.getTertiaryTieredFluid(7, 144 * 16),
+ ALLOY.BABBIT_ALLOY.getFluid(128 * 144),
+ ALLOY.ZERON_100.getFluid(144 * 64)
+
+ },
+ GregtechItemList.Hatch_Input_TurbineHousing.get(4),
+ 20 * 60 * 60 * (GTNH ? 2 : 1),
+ (int) GT_Values.V[8]);
+
/*
* Contianment casings
@@ -360,88 +389,116 @@ public class RECIPES_GREGTECH {
}
- //Nano Healer
- CORE.RA.addAssemblylineRecipe(
- ItemUtils.simpleMetaStack(Items.golden_apple, 1, 1),
- 20 * 60 * 10,
- new ItemStack[] {
- ItemUtils.getSimpleStack(aGemCasings[2], GTNH ? 4 : 2),
- CI.getTieredComponent(OrePrefixes.plate, 8, GTNH ? 32 : 16),
- CI.getTieredComponent(OrePrefixes.circuit, 7, GTNH ? 16 : 4),
- CI.getTieredComponent(OrePrefixes.cableGt02, 7, GTNH ? 16 : 8),
- CI.getTieredComponent(OrePrefixes.gearGt, 6, GTNH ? 6 : 3),
- CI.getTieredComponent(OrePrefixes.screw, 7, GTNH ? 16 : 8),
- CI.getTieredComponent(OrePrefixes.bolt, 5, GTNH ? 24 : 12),
- CI.getTieredComponent(OrePrefixes.frameGt, 4, GTNH ? 12 : 6),
- aCoilWire[3]
- },
- new FluidStack[] {
- CI.getTieredFluid(7, 144 * 18 * (GTNH ? 16 : 8)),
- CI.getTertiaryTieredFluid(7, 144 * 18 * (GTNH ? 16 : 8)),
- CI.getAlternativeTieredFluid(6, 144 * 18 * (GTNH ? 16 : 8)),
- CI.getAlternativeTieredFluid(7, 144 * 18 * (GTNH ? 16 : 8)),
-
- },
- ItemUtils.getItemStackFromFQRN("miscutils:personalHealingDevice", 1),
- 20 * 60 * 30 * (GTNH ? 2 : 1),
- (int) GT_Values.V[7]);
-
-
-
- //Charge Pack LuV-UV
-
- ItemStack[] aChargeResearch = new ItemStack[] {
- ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore7", 1),
- ItemUtils.getSimpleStack(ModItems.itemChargePack_High_1, 1),
- ItemUtils.getSimpleStack(ModItems.itemChargePack_High_2, 1),
- ItemUtils.getSimpleStack(ModItems.itemChargePack_High_3, 1),
- };
-
- ItemStack[] aChargeOutputs = new ItemStack[] {
- ItemUtils.getSimpleStack(ModItems.itemChargePack_High_1, 1),
- ItemUtils.getSimpleStack(ModItems.itemChargePack_High_2, 1),
- ItemUtils.getSimpleStack(ModItems.itemChargePack_High_3, 1),
- ItemUtils.getSimpleStack(ModItems.itemChargePack_High_4, 1),
- };
+ if (LoadedMods.Baubles) {
+ //Nano Healer
+ CORE.RA.addAssemblylineRecipe(
+ ItemUtils.simpleMetaStack(Items.golden_apple, 1, 1),
+ 20 * 60 * 10,
+ new ItemStack[] {
+ ItemUtils.getSimpleStack(aGemCasings[2], GTNH ? 4 : 2),
+ CI.getTieredComponent(OrePrefixes.plate, 8, GTNH ? 32 : 16),
+ CI.getTieredComponent(OrePrefixes.circuit, 7, GTNH ? 16 : 4),
+ CI.getTieredComponent(OrePrefixes.cableGt02, 7, GTNH ? 16 : 8),
+ CI.getTieredComponent(OrePrefixes.gearGt, 6, GTNH ? 6 : 3),
+ CI.getTieredComponent(OrePrefixes.screw, 7, GTNH ? 16 : 8),
+ CI.getTieredComponent(OrePrefixes.bolt, 5, GTNH ? 24 : 12),
+ CI.getTieredComponent(OrePrefixes.frameGt, 4, GTNH ? 12 : 6),
+ aCoilWire[3]
+ },
+ new FluidStack[] {
+ CI.getTieredFluid(7, 144 * 18 * (GTNH ? 16 : 8)),
+ CI.getTertiaryTieredFluid(7, 144 * 18 * (GTNH ? 16 : 8)),
+ CI.getAlternativeTieredFluid(6, 144 * 18 * (GTNH ? 16 : 8)),
+ CI.getAlternativeTieredFluid(7, 144 * 18 * (GTNH ? 16 : 8)),
- ItemStack[] aBufferCoreInputs = new ItemStack[] {
- ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore7", GTNH ? 8 : 4),
- ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore8", GTNH ? 8 : 4),
- ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore9", GTNH ? 8 : 4),
- ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore10", GTNH ? 8 : 4),
- };
+ },
+ ItemUtils.getItemStackFromFQRN("miscutils:personalHealingDevice", 1),
+ 20 * 60 * 30 * (GTNH ? 2 : 1),
+ (int) GT_Values.V[7]);
+
+
+
+ //Charge Pack LuV-UV
+
+ ItemStack[] aChargeResearch = new ItemStack[] {
+ ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore7", 1),
+ ItemUtils.getSimpleStack(ModItems.itemChargePack_High_1, 1),
+ ItemUtils.getSimpleStack(ModItems.itemChargePack_High_2, 1),
+ ItemUtils.getSimpleStack(ModItems.itemChargePack_High_3, 1),
+ };
+
+ ItemStack[] aChargeOutputs = new ItemStack[] {
+ ItemUtils.getSimpleStack(ModItems.itemChargePack_High_1, 1),
+ ItemUtils.getSimpleStack(ModItems.itemChargePack_High_2, 1),
+ ItemUtils.getSimpleStack(ModItems.itemChargePack_High_3, 1),
+ ItemUtils.getSimpleStack(ModItems.itemChargePack_High_4, 1),
+ };
+
+ ItemStack[] aBufferCoreInputs = new ItemStack[] {
+ ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore7", GTNH ? 8 : 4),
+ ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore8", GTNH ? 8 : 4),
+ ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore9", GTNH ? 8 : 4),
+ ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore10", GTNH ? 8 : 4),
+ };
+
+ int aCurrSlot = 0;
+ for (int h = 6; h < 10; h++) {
+ CORE.RA.addAssemblylineRecipe(
+ aChargeResearch[aCurrSlot],
+ 20 * 60 * 10 * (aCurrSlot + 1),
+ new ItemStack[] {
+ ItemUtils.getSimpleStack(
+ aGemBatteries[aCurrSlot], GTNH ? 4 : 2),
+ aBufferCoreInputs[aCurrSlot],
+ aCoilWire[aCurrSlot],
+ CI.getTieredComponent(OrePrefixes.plate, h, GTNH ? 16 : 8),
+ CI.getTieredComponent(OrePrefixes.plate, h-1, GTNH ? 32 : 16),
+ CI.getTieredComponent(OrePrefixes.circuit, h, GTNH ? 16 : 4),
+ CI.getTieredComponent(OrePrefixes.circuit, h-1, GTNH ? 32 : 8),
+ CI.getTieredComponent(OrePrefixes.cableGt12, h-1, GTNH ? 32 : 16),
+ CI.getTieredComponent(OrePrefixes.screw, h, GTNH ? 16 : 8),
+ CI.getTieredComponent(OrePrefixes.bolt, h-2, GTNH ? 32 : 16),
+ CI.getElectricMotor(h, GTNH ? 8 : 4),
+ CI.getFieldGenerator(h-1, 2),
+ CI.getRobotArm(h-2, GTNH ? 4 : 2),
+ },
+ new FluidStack[] {
+ CI.getTieredFluid(h, 144 * 18 * (GTNH ? 8 : 4)),
+ CI.getTertiaryTieredFluid(h-1, 144 * 18 * (GTNH ? 8 : 4)),
+ CI.getAlternativeTieredFluid(h-1, 144 * 18 * (GTNH ? 8 : 4)),
+ CI.getAlternativeTieredFluid(h-2, 144 * 18 * (GTNH ? 8 : 4)),
+ },
+ aChargeOutputs[aCurrSlot],
+ 20 * 60 * 30 * (GTNH ? 2 : 1) * (aCurrSlot+1),
+ (int) GT_Values.V[h]);
+ aCurrSlot++;
+ }
- int aCurrSlot = 0;
- for (int h = 6; h < 10; h++) {
+ //Cloaking device
CORE.RA.addAssemblylineRecipe(
- aChargeResearch[aCurrSlot],
- 20 * 60 * 10 * (aCurrSlot + 1),
+ ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_9_CLOAKING, 1),
+ 20 * 60 * 10,
new ItemStack[] {
- ItemUtils.getSimpleStack(
- aGemBatteries[aCurrSlot], GTNH ? 4 : 2),
- aBufferCoreInputs[aCurrSlot],
- aCoilWire[aCurrSlot],
- CI.getTieredComponent(OrePrefixes.plate, h, GTNH ? 16 : 8),
- CI.getTieredComponent(OrePrefixes.plate, h-1, GTNH ? 32 : 16),
- CI.getTieredComponent(OrePrefixes.circuit, h, GTNH ? 16 : 4),
- CI.getTieredComponent(OrePrefixes.circuit, h-1, GTNH ? 32 : 8),
- CI.getTieredComponent(OrePrefixes.cableGt12, h-1, GTNH ? 32 : 16),
- CI.getTieredComponent(OrePrefixes.screw, h, GTNH ? 16 : 8),
- CI.getTieredComponent(OrePrefixes.bolt, h-2, GTNH ? 32 : 16),
- CI.getElectricMotor(h, GTNH ? 8 : 4),
- CI.getFieldGenerator(h-1, 2),
- CI.getRobotArm(h-2, GTNH ? 4 : 2),
+ ItemUtils.getSimpleStack(aGemCasings[3], GTNH ? 4 : 2),
+ CI.getTieredComponent(OrePrefixes.plate, 8, GTNH ? 32 : 16),
+ CI.getTieredComponent(OrePrefixes.circuit, 7, GTNH ? 16 : 4),
+ CI.getTieredComponent(OrePrefixes.cableGt04, 8, GTNH ? 16 : 8),
+ CI.getTieredComponent(OrePrefixes.gearGt, 7, GTNH ? 6 : 3),
+ CI.getTieredComponent(OrePrefixes.screw, 8, GTNH ? 16 : 8),
+ CI.getTieredComponent(OrePrefixes.bolt, 7, GTNH ? 24 : 12),
+ CI.getTieredComponent(OrePrefixes.frameGt, 5, GTNH ? 12 : 6),
+ aCoilWire[3]
},
new FluidStack[] {
- CI.getTieredFluid(h, 144 * 18 * (GTNH ? 8 : 4)),
- CI.getTertiaryTieredFluid(h-1, 144 * 18 * (GTNH ? 8 : 4)),
- CI.getAlternativeTieredFluid(h-1, 144 * 18 * (GTNH ? 8 : 4)),
- CI.getAlternativeTieredFluid(h-2, 144 * 18 * (GTNH ? 8 : 4)),
+ CI.getTieredFluid(8, 144 * 18 * (GTNH ? 16 : 8)),
+ CI.getTertiaryTieredFluid(8, 144 * 18 * (GTNH ? 16 : 8)),
+ CI.getAlternativeTieredFluid(7, 144 * 18 * (GTNH ? 16 : 8)),
+ CI.getAlternativeTieredFluid(8, 144 * 18 * (GTNH ? 16 : 8)),
+
},
- aChargeOutputs[aCurrSlot],
- 20 * 60 * 30 * (GTNH ? 2 : 1) * (aCurrSlot+1),
- (int) GT_Values.V[h]);
- aCurrSlot++;
+ ItemUtils.getItemStackFromFQRN("miscutils:personalCloakingDevice", 1),
+ 20 * 60 * 30 * (GTNH ? 2 : 1),
+ (int) GT_Values.V[8]);
}
@@ -1491,6 +1548,53 @@ public class RECIPES_GREGTECH {
GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Invar, 8L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Invar, 4L), GregtechItemList.Fluid_Cell_144L.get(1L, new Object[0]), 75, 32);
}
}
+
+
+ if (LoadedMods.Baubles) {
+
+
+
+ // Turbine Housing Research Page
+ CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] {
+ ItemUtils.getGregtechCircuit(17),
+ ItemUtils.getItemStackOfAmountFromOreDict("plateRefinedTrinium", GTNH ? 64 : 32),
+ CI.getSensor(6, GTNH ? 6 : 3),
+ CI.getBolt(7, GTNH ? 64 : 32),
+ ItemUtils.getItemStackOfAmountFromOreDict("wireFinePlatinum", GTNH ? 64 : 32),
+ ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(7), GTNH ? 12 : 6)
+ },
+ CI.getAlternativeTieredFluid(7, 144 * 32),
+ ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_8_TURBINE_AUTOMATION, 1),
+ 20 * 60 * 5,
+ (int) GT_Values.V[6]);
+
+ // Cloaking Device Research Page
+ CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] {
+ ItemUtils.getGregtechCircuit(17),
+ ItemUtils.getSimpleStack(ModItems.itemCircuitLFTR, 4),
+ CI.getFieldGenerator(6, GTNH ? 16 : 8),
+ ItemUtils.getItemStackOfAmountFromOreDict("wireFinePalladium", GTNH ? 32 : 16),
+ ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(6), GTNH ? 12 : 6)
+ },
+ CI.getAlternativeTieredFluid(7, 144 * 32),
+ ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_9_CLOAKING, 1),
+ 20 * 60 * 10,
+ (int) GT_Values.V[7]);
+
+
+ // Supreme Pizza Gloves
+ CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] {
+ ItemUtils.getGregtechCircuit(17),
+ ItemUtils.getSimpleStack(ModItems.itemRope, 16),
+ ItemUtils.getItemStackOfAmountFromOreDict("gearGtSmallWroughtIron", GTNH ? 8 : 4),
+ ItemUtils.getItemStackOfAmountFromOreDict("wireFineTin", GTNH ? 32 : 16),
+ ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(1), GTNH ? 2 : 1)
+ },
+ FluidUtils.getFluidStack("molten.rubber", 2000),
+ ItemUtils.getSimpleStack(ModItems.itemPersonalFireProofDevice),
+ 20 * 60 * 5,
+ 30);
+ }
@@ -1641,7 +1745,7 @@ public class RECIPES_GREGTECH {
}
private static void centrifugeRecipes() {
-
+
//Try use all woods found, fix/add methane extraction.
ArrayList<ItemStack> aLogData = OreDictionary.getOres("logWood");
ArrayList<ItemStack> aRubberLogs = OreDictionary.getOres("logRubber");
diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_SeleniumProcessing.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_SeleniumProcessing.java
index 73c7279bb8..902806e026 100644
--- a/src/Java/gtPlusPlus/core/recipe/RECIPES_SeleniumProcessing.java
+++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_SeleniumProcessing.java
@@ -86,15 +86,15 @@ public class RECIPES_SeleniumProcessing {
public static void processCopperRecipes() {
- //Copper
+ //Copper
CORE.RA.addDehydratorRecipe(
new ItemStack[]{
- ItemUtils.getOrePrefixStack(OrePrefixes.crushedCentrifuged, Materials.Copper, 1), // Item Input
+ ItemUtils.getOrePrefixStack(OrePrefixes.crushedPurified, Materials.Copper, 1), // Item Input
},
FluidUtils.getHotWater(1000), // Fluid
MISC_MATERIALS.SELENIUM_DIOXIDE.getFluid(20), // Fluid
new ItemStack[] {
- ItemUtils.getOrePrefixStack(OrePrefixes.crushedPurified, Materials.Copper, 1),
+ ItemUtils.getOrePrefixStack(OrePrefixes.crushedCentrifuged, Materials.Copper, 1),
MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1),
MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1),
MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1),
@@ -121,12 +121,12 @@ public class RECIPES_SeleniumProcessing {
//Tetra
CORE.RA.addDehydratorRecipe(
new ItemStack[]{
- ItemUtils.getOrePrefixStack(OrePrefixes.crushedCentrifuged, Materials.Tetrahedrite, 1), // Item Input
+ ItemUtils.getOrePrefixStack(OrePrefixes.crushedPurified, Materials.Tetrahedrite, 1), // Item Input
},
FluidUtils.getHotWater(1000), // Fluid
MISC_MATERIALS.SELENIUM_DIOXIDE.getFluid(10), // Fluid
new ItemStack[] {
- ItemUtils.getOrePrefixStack(OrePrefixes.crushedPurified, Materials.Tetrahedrite, 1),
+ ItemUtils.getOrePrefixStack(OrePrefixes.crushedCentrifuged, Materials.Tetrahedrite, 1),
MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1),
MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1),
MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1),
@@ -153,12 +153,12 @@ public class RECIPES_SeleniumProcessing {
//Chalco
CORE.RA.addDehydratorRecipe(
new ItemStack[]{
- ItemUtils.getOrePrefixStack(OrePrefixes.crushedCentrifuged, Materials.Chalcopyrite, 1), // Item Input
+ ItemUtils.getOrePrefixStack(OrePrefixes.crushedPurified, Materials.Chalcopyrite, 1), // Item Input
},
FluidUtils.getHotWater(1000), // Fluid
MISC_MATERIALS.SELENIUM_DIOXIDE.getFluid(10), // Fluid
new ItemStack[] {
- ItemUtils.getOrePrefixStack(OrePrefixes.crushedPurified, Materials.Chalcopyrite, 1),
+ ItemUtils.getOrePrefixStack(OrePrefixes.crushedCentrifuged, Materials.Chalcopyrite, 1),
MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1),
MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1),
MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1),
@@ -185,12 +185,12 @@ public class RECIPES_SeleniumProcessing {
//Malachite
CORE.RA.addDehydratorRecipe(
new ItemStack[]{
- ItemUtils.getOrePrefixStack(OrePrefixes.crushedCentrifuged, Materials.Malachite, 1), // Item Input
+ ItemUtils.getOrePrefixStack(OrePrefixes.crushedPurified, Materials.Malachite, 1), // Item Input
},
FluidUtils.getHotWater(1000), // Fluid
MISC_MATERIALS.SELENIUM_DIOXIDE.getFluid(10), // Fluid
new ItemStack[] {
- ItemUtils.getOrePrefixStack(OrePrefixes.crushedPurified, Materials.Malachite, 1),
+ ItemUtils.getOrePrefixStack(OrePrefixes.crushedCentrifuged, Materials.Malachite, 1),
MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1),
MISC_MATERIALS.SELENIUM_DIOXIDE.getDust(1),
MISC_MATERIALS.SELENIUM_DIOXIDE.getSmallDust(1),
diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_Tools.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_Tools.java
index 10cefdf0c4..2cc6d7b41a 100644
--- a/src/Java/gtPlusPlus/core/recipe/RECIPES_Tools.java
+++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_Tools.java
@@ -154,16 +154,7 @@ public class RECIPES_Tools {
CobbleStone, sandHammer, CobbleStone,
CobbleStone, CobbleStone, CobbleStone,
RECIPE_Sand);
-
- if (LoadedMods.Baubles){
- //Cloaking Device
- RecipeUtils.recipeBuilder(
- plateDoubleNiChrome, plateIridiumAlloy, plateDoubleNiChrome,
- plateIridiumAlloy, batteryUltimate, plateIridiumAlloy,
- plateDoubleNiChrome, plateIridiumAlloy, plateDoubleNiChrome,
- personalCloakingDevice);
-
- }
+
//Sand to Sandstone
RecipeUtils.recipeBuilder(
Sand, Sand, Sand,
diff --git a/src/Java/gtPlusPlus/core/util/data/ArrayUtils.java b/src/Java/gtPlusPlus/core/util/data/ArrayUtils.java
index cca58467ef..3e96220995 100644
--- a/src/Java/gtPlusPlus/core/util/data/ArrayUtils.java
+++ b/src/Java/gtPlusPlus/core/util/data/ArrayUtils.java
@@ -1,10 +1,15 @@
package gtPlusPlus.core.util.data;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
-import net.minecraft.item.ItemStack;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
+import net.minecraft.item.ItemStack;
public class ArrayUtils {
@@ -75,5 +80,13 @@ public class ArrayUtils {
}
}
+ public static String toString(Object[] aArray, String string) {
+ return org.apache.commons.lang3.ArrayUtils.toString(aArray, string);
+ }
+
+ public static String toString(Object[] aArray) {
+ return org.apache.commons.lang3.ArrayUtils.toString(aArray);
+ }
+
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java b/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java
index 588c04d7e5..3ea2851a85 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java
@@ -343,6 +343,9 @@ public enum GregtechItemList implements GregtechItemContainer {
//XL Turbine Rotor Hatch
Hatch_Turbine_Rotor,
+ //Standard Turbine Rotor Hatch
+ Hatch_Input_TurbineHousing,
+
//Control Core
Hatch_Control_Core,
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/gui/hatches/CONTAINER_1by1_Turbine.java b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/hatches/CONTAINER_1by1_Turbine.java
index d4d2fcacd7..e6203823b6 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/gui/hatches/CONTAINER_1by1_Turbine.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/hatches/CONTAINER_1by1_Turbine.java
@@ -36,11 +36,11 @@ public class CONTAINER_1by1_Turbine extends GT_Container_1by1 {
}
@Override
public boolean isItemValid(final ItemStack itemstack) {
- /*if (itemstack.getItem() instanceof GT_MetaGenerated_Tool) {
+ if (itemstack.getItem() instanceof GT_MetaGenerated_Tool) {
if (itemstack.getItemDamage() >= 170 && itemstack.getItemDamage() <= 176) {
return true;
}
- }*/
+ }
return false;
}
@Override
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_TurbineProvider.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_TurbineProvider.java
new file mode 100644
index 0000000000..d9e2692b09
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_TurbineProvider.java
@@ -0,0 +1,212 @@
+package gtPlusPlus.xmod.gregtech.api.metatileentity.implementations;
+
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.items.GT_MetaGenerated_Tool;
+import gregtech.api.metatileentity.MetaTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus;
+import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_LargeTurbine;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.minecraft.PlayerUtils;
+import gtPlusPlus.core.util.sys.KeyboardUtils;
+import gtPlusPlus.xmod.gregtech.api.gui.hatches.CONTAINER_1by1_Turbine;
+import gtPlusPlus.xmod.gregtech.api.gui.hatches.GUI_1by1_Turbine;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.world.World;
+import net.minecraft.world.chunk.Chunk;
+
+public class GT_MetaTileEntity_Hatch_TurbineProvider extends GT_MetaTileEntity_Hatch_InputBus {
+
+ public GT_MetaTileEntity_Hatch_TurbineProvider(int aID, String aName, String aNameRegional, int aTier) {
+ super(aID, aName, aNameRegional, aTier);
+ }
+
+ public GT_MetaTileEntity_Hatch_TurbineProvider(String aName, int aTier, String aDescription, ITexture[][][] aTextures) {
+ super(aName, aTier, aDescription, aTextures);
+ }
+
+ public GT_MetaTileEntity_Hatch_TurbineProvider(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) {
+ super(aName, aTier, aDescription, aTextures);
+ }
+
+ public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_Hatch_TurbineProvider(this.mName, this.mTier, this.mDescriptionArray, this.mTextures);
+ }
+
+ public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new CONTAINER_1by1_Turbine(aPlayerInventory, aBaseMetaTileEntity);
+ }
+
+ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GUI_1by1_Turbine(aPlayerInventory, aBaseMetaTileEntity, "Turbine Housing");
+ }
+
+ @Override
+ public String[] getDescription() {
+ return new String[]{
+ "An automation port for Large Turbines", "Will attempt once per 1200 ticks to fill the turbine slot of it's parent turbine", "You may adjust this with a screwdriver", "Hold shift to adjust in finer amounts", "Hold control to adjust direction", "Left Click with Screwdriver to reset", "This module assumes the entire turbine is in the same Chunk"};
+ }
+
+
+ private GT_MetaTileEntity_LargeTurbine mParent = null;
+
+ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) {
+ super.onPostTick(aBaseMetaTileEntity, aTimer);
+ if (aTimer % mRefreshTime == 0 && this.getBaseMetaTileEntity().isServerSide()) {
+ tryRefillTurbine();
+ }
+ }
+
+ private final void tryFindParentTurbine() {
+ Logger.INFO("This turbine housing has no parent, searching world.");
+ IGregTechTileEntity T = this.getBaseMetaTileEntity();
+ World W = T.getWorld();
+ Chunk C = W.getChunkFromBlockCoords(T.getXCoord(), T.getZCoord());
+ for (Object o : C.chunkTileEntityMap.values()) {
+ if (o instanceof IGregTechTileEntity) {
+ IGregTechTileEntity G = (IGregTechTileEntity) o;
+ final IMetaTileEntity aMetaTileEntity = G.getMetaTileEntity();
+ if (aMetaTileEntity == null) {
+ continue;
+ }
+ if (aMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine) {
+ GT_MetaTileEntity_LargeTurbine aTurb = (GT_MetaTileEntity_LargeTurbine) aMetaTileEntity;
+ for (GT_MetaTileEntity_Hatch_InputBus ee : aTurb.mInputBusses) {
+ if (ee.equals(this)) {
+ mParent = aTurb;
+ Logger.INFO("Found a Parent to attach to this housing.");
+ return;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ private final void tryRefillTurbine() {
+ if (mParent == null) {
+ tryFindParentTurbine();
+ }
+ if (mParent != null && mParent.mInventory[1] == null) {
+ for (ItemStack aStack : this.mInventory) {
+ if (isItemStackTurbine(aStack)) {
+ setGUIItemStack(aStack);
+ }
+ }
+ }
+ }
+
+ protected boolean setGUIItemStack(ItemStack aNewGuiSlotContents) {
+ boolean result = false;
+ if (mParent.mInventory[1] == null) {
+ mParent.mInventory[1] = aNewGuiSlotContents != null ? aNewGuiSlotContents.copy() : null;
+ mParent.depleteInput(aNewGuiSlotContents);
+ mParent.updateSlots();
+ this.updateSlots();
+ result = true;
+ }
+ return result;
+ }
+
+ public boolean isItemStackTurbine(ItemStack aStack) {
+ if (aStack.getItem() instanceof GT_MetaGenerated_Tool) {
+ if (aStack.getItemDamage() >= 170 && aStack.getItemDamage() <= 176) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public boolean isItemStackScrewdriver(ItemStack aStack) {
+ if (aStack.getItem() instanceof GT_MetaGenerated_Tool) {
+ if (aStack.getItemDamage() == 22 || aStack.getItemDamage() == 150) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+
+ @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 isItemStackTurbine(aStack);
+ }
+
+ private int mRefreshTime = 1200;
+ private boolean mDescending = true;
+
+ @Override
+ public void saveNBTData(NBTTagCompound aNBT) {
+ super.saveNBTData(aNBT);
+ aNBT.setInteger("mRefreshTime", mRefreshTime);
+ aNBT.setBoolean("mDescending", mDescending);
+ }
+
+ @Override
+ public void loadNBTData(NBTTagCompound aNBT) {
+ super.loadNBTData(aNBT);
+ mRefreshTime = aNBT.getInteger("mRefreshTime");
+ mDescending = aNBT.getBoolean("mDescending");
+ }
+
+ @Override
+ public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
+ if (aPlayer != null) {
+ if (KeyboardUtils.isCtrlKeyDown()) {
+ mDescending = Utils.invertBoolean(mDescending);
+ PlayerUtils.messagePlayer(aPlayer, "Direction: "+(mDescending ? "DOWN" : "UP"));
+ }
+ else {
+ int aAmount = 0;
+ if (KeyboardUtils.isShiftKeyDown()) {
+ aAmount = 10;
+ }
+ else {
+ aAmount = 100;
+ }
+ if (mDescending) {
+ mRefreshTime -= aAmount;
+ if (mRefreshTime < 0) {
+ mRefreshTime = 1200;
+ }
+ }
+ else {
+ mRefreshTime += aAmount;
+ if (mRefreshTime > 1200) {
+ mRefreshTime = 0;
+ }
+ }
+ PlayerUtils.messagePlayer(aPlayer, "Set check time to be every "+mRefreshTime+" ticks.");
+ }
+ }
+ }
+
+ @Override
+ public void onLeftclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) {
+ boolean aDidScrewdriver = false;
+ if (aPlayer != null) {
+ if (aPlayer.getHeldItem() != null) {
+ if (isItemStackScrewdriver(aPlayer.getHeldItem())) {
+ aDidScrewdriver = true;
+ mRefreshTime = 1200;
+ PlayerUtils.messagePlayer(aPlayer, "Reset check time to "+mRefreshTime+" ticks.");
+ }
+ }
+ }
+ if (!aDidScrewdriver) {
+ super.onLeftclick(aBaseMetaTileEntity, aPlayer);
+ }
+ }
+
+
+}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output.java
index 3afa3312b1..cca5a39de3 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output.java
@@ -58,7 +58,7 @@ public class GT_MetaTileEntity_SuperBus_Output extends GT_MetaTileEntity_Hatch_O
if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.hasInventoryBeenModified()) {
this.fillStacksIntoFirstSlots();
}
-
+ super.onPostTick(aBaseMetaTileEntity, aTimer);
}
public void updateSlots() {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java
index 2e50d12aca..e5d7f58dc6 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java
@@ -1573,7 +1573,7 @@ GT_MetaTileEntity_MultiBlockBase {
boolean result = false;
if (this.mInventory[1] == null) {
this.mInventory[1] = aNewGuiSlotContents != null ? aNewGuiSlotContents.copy() : null;
- aNewGuiSlotContents = null;
+ this.depleteInput(aNewGuiSlotContents);
this.updateSlots();
result = true;
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_CapeRenderer.java b/src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_CapeRenderer.java
index 763a4a129d..6201a782de 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_CapeRenderer.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_CapeRenderer.java
@@ -63,7 +63,6 @@ public class GTPP_CapeRenderer extends RenderPlayer {
private final ArrayList<String> mData;
public GTPP_CapeRenderer() {
- setRenderManager(RenderManager.instance);
downloadCapeList();
ArrayList<String> aTemp = new ArrayList<String>();
try {
@@ -76,10 +75,19 @@ public class GTPP_CapeRenderer extends RenderPlayer {
}
private static boolean hasResourceChecked = false;
+ private static boolean hasSetRenderer = false;
private boolean hasCape = false;
private ResourceLocation tResource = null;
public synchronized void receiveRenderSpecialsEvent(RenderPlayerEvent.Specials.Pre aEvent) {
+ if (this.renderManager == null) {
+ hasSetRenderer = false;
+ }
+ if (!hasSetRenderer) {
+ if (RenderManager.instance != null) {
+ setRenderManager(RenderManager.instance);
+ }
+ }
AbstractClientPlayer aPlayer = (AbstractClientPlayer) aEvent.entityPlayer;
if (!ConfigSwitches.enableCustomCapes) {
aEvent.setCanceled(true);
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_ThermalBoiler.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_ThermalBoiler.java
index c55fe10829..6e7039f8ca 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_ThermalBoiler.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_ThermalBoiler.java
@@ -292,7 +292,19 @@ extends GregtechMeta_MultiBlockBase
@Override
public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
if (aBaseMetaTileEntity.isServerSide()){
- //Utils.LOG_INFO("tick: "+aTick);
+ // Reload Lava Filter
+ if (this.getGUIItemStack() == null) {
+ if (this.mInputBusses.size() > 0) {
+ for (GT_MetaTileEntity_Hatch_InputBus aBus : this.mInputBusses) {
+ for (ItemStack aStack : aBus.mInventory) {
+ if (aStack.getItem() instanceof ItemLavaFilter) {
+ this.setGUIItemStack(aStack);
+ }
+ }
+ }
+ }
+ }
+
if (this.mEUt > 0){
if (aTick % 600L == 0L){
damageFilter();
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java b/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
index d43adb2be3..cd853dfb0d 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
@@ -706,6 +706,17 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder {
if (ttTest != null) {
T = ttTest;
}
+ else {
+ Method[] aDump = TTRecipeAdder.getDeclaredMethods();
+ for (Method m : aDump) {
+ if (m != null) {
+ Logger.INFO("Found "+m.getName()+" | "+m.getModifiers()+" | "+ArrayUtils.toString(m.getParameters(), "EMPTY")+"");
+ if (m.getName().toLowerCase().equals("addresearchableassemblylinerecipe")){
+ Logger.INFO("Types: "+ArrayUtils.toString(m.getParameterTypes()));
+ }
+ }
+ }
+ }
}
}
else {
@@ -787,7 +798,7 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder {
Logger.INFO("Failed to generate TecTech recipe for "+ItemUtils.getItemName(aResearchItem)+", please report this to Alkalus.");
}
catch (Throwable t) {
-
+ t.printStackTrace();
}
}
return (boolean) mAssemblyLine.invoke(GT_Values.RA, aResearchItem, aResearchTime, aInputs,
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechCustomHatches.java b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechCustomHatches.java
index 45a23fb184..9f67363302 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechCustomHatches.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechCustomHatches.java
@@ -11,6 +11,7 @@ import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_ControlCore;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler_Adv;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Naquadah;
+import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_TurbineProvider;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_SuperBus_Input;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_SuperBus_Output;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GT_MetaTileEntity_Hatch_CustomFluidBase;
@@ -62,6 +63,19 @@ public class GregtechCustomHatches {
"Naquadah Reactor Input hatch" // Local name
).getStackForm(1L));
+
+ GregtechItemList.Hatch_Input_TurbineHousing.set(new GT_MetaTileEntity_Hatch_TurbineProvider(31025, // ID
+ "hatch.turbine.input.tier.00", // unlocal name
+ "Turbine Housing", // Local name
+ 8
+ ).getStackForm(1L));
+
+
+
+
+
+
+
}
private static void run2() {