aboutsummaryrefslogtreecommitdiff
path: root/main/java/gregtech/common/tileentities
diff options
context:
space:
mode:
authorBlood-Asp <Blood@Asp>2015-05-19 23:12:36 +0200
committerBlood-Asp <Blood@Asp>2015-05-19 23:12:36 +0200
commita102e63891d2af3452dc9b25d9fd97bc266582b7 (patch)
tree8dc1eea0d0875fdd17750d199649c3c9ac662746 /main/java/gregtech/common/tileentities
parent20313127ce97c9fe336ac0fa91ab70fc6eee62eb (diff)
downloadGT5-Unofficial-a102e63891d2af3452dc9b25d9fd97bc266582b7.tar.gz
GT5-Unofficial-a102e63891d2af3452dc9b25d9fd97bc266582b7.tar.bz2
GT5-Unofficial-a102e63891d2af3452dc9b25d9fd97bc266582b7.zip
Update 5.08.16
Monster repellator + large turbine
Diffstat (limited to 'main/java/gregtech/common/tileentities')
-rw-r--r--main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MonsterRepellent.java79
-rw-r--r--main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java63
2 files changed, 104 insertions, 38 deletions
diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MonsterRepellent.java b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MonsterRepellent.java
new file mode 100644
index 0000000000..871835020d
--- /dev/null
+++ b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MonsterRepellent.java
@@ -0,0 +1,79 @@
+package gregtech.common.tileentities.machines.basic;
+
+import static gregtech.api.enums.GT_Values.V;
+import cpw.mods.fml.common.eventhandler.SubscribeEvent;
+import cpw.mods.fml.common.eventhandler.Event;
+import net.minecraft.entity.EnumCreatureType;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraftforge.common.MinecraftForge;
+import net.minecraftforge.event.entity.living.LivingSpawnEvent;
+import gregtech.api.enums.Textures;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_TieredMachineBlock;
+import gregtech.api.objects.GT_RenderedTexture;
+import gregtech.api.util.GT_SpawnEventHandler;
+
+public class GT_MetaTileEntity_MonsterRepellent extends GT_MetaTileEntity_TieredMachineBlock {
+
+ public int mRange = 16;
+
+ public GT_MetaTileEntity_MonsterRepellent(int aID, String aName, String aNameRegional, int aTier) {
+ super(aID, aName, aNameRegional, aTier, 0, "Reprells nasty Creatures. Range: "+(4 + (12*aTier))+" unpowered / "+(16 + (48*aTier))+" powered");
+ }
+
+ public GT_MetaTileEntity_MonsterRepellent(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) {
+ super(aName, aTier, aInvSlotCount, aDescription, aTextures);
+ }
+
+ public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_MonsterRepellent(this.mName, this.mTier, this.mInventory.length, this.mDescription, this.mTextures);
+ }
+
+ @Override
+ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
+ return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex+1], (aSide != 1) ? null : aActive ? new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TELEPORTER_ACTIVE) : new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TELEPORTER) };
+ }
+
+ @Override
+ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) {
+ if (aBaseMetaTileEntity.isAllowedToWork() && aBaseMetaTileEntity.isServerSide()) {
+ int[] tCoords = new int[]{aBaseMetaTileEntity.getXCoord(),aBaseMetaTileEntity.getYCoord(),aBaseMetaTileEntity.getZCoord(),aBaseMetaTileEntity.getWorld().provider.dimensionId};
+ if((aTimer%600 == 0)&&!GT_SpawnEventHandler.mobReps.contains(tCoords)){
+ GT_SpawnEventHandler.mobReps.add(tCoords);
+ }
+ if(aBaseMetaTileEntity.isUniversalEnergyStored(getMinimumStoredEU()) && aBaseMetaTileEntity.decreaseStoredEnergyUnits(1 << (this.mTier*2), false)){
+ mRange = 16 + (48*mTier);
+ }else{
+ mRange = 4 + (12*mTier);
+ }}
+ }
+
+ @Override
+ public void onFirstTick(IGregTechTileEntity aBaseMetaTileEntity) {
+ int[] tCoords = new int[]{aBaseMetaTileEntity.getXCoord(),aBaseMetaTileEntity.getYCoord(),aBaseMetaTileEntity.getZCoord(),aBaseMetaTileEntity.getWorld().provider.dimensionId};
+ GT_SpawnEventHandler.mobReps.add(tCoords);
+ }
+
+ @Override
+ public void onRemoval() {
+ int[] tCoords = new int[]{this.getBaseMetaTileEntity().getXCoord(),this.getBaseMetaTileEntity().getYCoord(),this.getBaseMetaTileEntity().getZCoord(),this.getBaseMetaTileEntity().getWorld().provider.dimensionId};
+ GT_SpawnEventHandler.mobReps.remove(tCoords);
+ }
+ @Override public boolean isSimpleMachine() {return false;}
+ @Override public boolean isFacingValid(byte aFacing) {return true;}
+ @Override public boolean isEnetInput() {return true;}
+ @Override public boolean isInputFacing(byte aSide) {return true;}
+ @Override public boolean isTeleporterCompatible() {return false;}
+ @Override public long getMinimumStoredEU() {return 512;}
+ @Override public long maxEUStore() {return 512+V[mTier]*50;}
+ @Override public long maxEUInput() {return V[mTier];}
+ @Override public long maxAmperesIn() {return 2;}
+ @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;}
+ @Override public ITexture[][][] getTextureSet(ITexture[] aTextures) {return null;}
+ @Override public void saveNBTData(NBTTagCompound aNBT) {}
+ @Override public void loadNBTData(NBTTagCompound aNBT) {}
+ }
diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java
index 5dfee91ff9..1d5f18d9e5 100644
--- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java
+++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java
@@ -7,11 +7,14 @@ import gregtech.api.enums.Textures;
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.implementations.GT_MetaTileEntity_Hatch;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Dynamo;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase;
import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_Utility;
+import gregtech.common.items.GT_MetaGenerated_Tool_01;
public class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_MultiBlockBase{
@@ -20,7 +23,7 @@ public class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_MultiBlock
@Override
public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
- return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][aColorIndex+1], aFacing == aSide ? new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE5) : Textures.BlockIcons.CASING_BLOCKS[57]};
+ return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][aColorIndex+1], aFacing == aSide ? aActive ? new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE_ACTIVE5):new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE5) : Textures.BlockIcons.CASING_BLOCKS[57]};
}
@@ -42,25 +45,24 @@ public class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_MultiBlock
@Override
public boolean checkRecipe(ItemStack aStack) {
-
if (depleteInput(GT_ModHandler.getSteam(1600L)))
{
- this.mEUt = 800;
+ this.mEUt = 1000;
this.mMaxProgresstime = 1;
- if (ItemList.Component_Turbine_Bronze.isStackEqual(aStack, true, true)) {
- this.mEfficiencyIncrease = (this.mMaxProgresstime * 10);
- } else if (ItemList.Component_Turbine_Steel.isStackEqual(aStack, true, true)) {
- this.mEfficiencyIncrease = (this.mMaxProgresstime * 20);
- } else if (ItemList.Component_Turbine_Magnalium.isStackEqual(aStack, true, true)) {
- this.mEfficiencyIncrease = (this.mMaxProgresstime * 50);
- } else if (ItemList.Component_Turbine_TungstenSteel.isStackEqual(aStack, true, true)) {
- this.mEfficiencyIncrease = (this.mMaxProgresstime * 15);
- } else if (ItemList.Component_Turbine_Carbon.isStackEqual(aStack, true, true)) {
- this.mEfficiencyIncrease = (this.mMaxProgresstime * 100);
- } else {
+// if (ItemList.Component_Turbine_Bronze.isStackEqual(aStack, true, true)) {
+// this.mEfficiencyIncrease = (this.mMaxProgresstime * 10);
+// } else if (ItemList.Component_Turbine_Steel.isStackEqual(aStack, true, true)) {
+// this.mEfficiencyIncrease = (this.mMaxProgresstime * 20);
+// } else if (ItemList.Component_Turbine_Magnalium.isStackEqual(aStack, true, true)) {
+// this.mEfficiencyIncrease = (this.mMaxProgresstime * 50);
+// } else if (ItemList.Component_Turbine_TungstenSteel.isStackEqual(aStack, true, true)) {
+// this.mEfficiencyIncrease = (this.mMaxProgresstime * 15);
+// } else if (ItemList.Component_Turbine_Carbon.isStackEqual(aStack, true, true)) {
+// this.mEfficiencyIncrease = (this.mMaxProgresstime * 100);
+// } else {
this.mEfficiencyIncrease = (this.mMaxProgresstime * 20);
- }
- addOutput(GT_ModHandler.getWater(10L));
+// }
+ addOutput(GT_ModHandler.getDistilledWater(10L));
return true;
}
return false;
@@ -68,7 +70,6 @@ public class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_MultiBlock
@Override
public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
-
byte tSide = getBaseMetaTileEntity().getBackFacing();
if ((getBaseMetaTileEntity().getAirAtSideAndDistance(getBaseMetaTileEntity().getBackFacing(), 1)) && (getBaseMetaTileEntity().getAirAtSideAndDistance(getBaseMetaTileEntity().getBackFacing(), 2)))
{
@@ -103,15 +104,15 @@ public class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_MultiBlock
{
if (getBaseMetaTileEntity().getBlock(tX + (tSide == 5 ? k : tSide < 4 ? i : -k), tY + j, tZ + (tSide < 4 ? -k : tSide == 3 ? k : i)) == GregTech_API.sBlockCasings4)
{
- if (getBaseMetaTileEntity().getMetaID(tX + (tSide == 5 ? k : tSide < 4 ? i : -k), tY + j, tZ + (tSide < 4 ? -k : tSide == 3 ? k : i)) == 13) {}
+ if (getBaseMetaTileEntity().getMetaID(tX + (tSide == 5 ? k : tSide < 4 ? i : -k), tY + j, tZ + (tSide < 4 ? -k : tSide == 3 ? k : i)) == 9) {}
}
else if (!addToMachineList(getBaseMetaTileEntity().getIGregTechTileEntity(tX + (tSide == 5 ? k : tSide < 4 ? i : -k), tY + j, tZ + (tSide < 4 ? -k : tSide == 3 ? k : i)))) {
- return false;
+ return false;
}
}
else if (getBaseMetaTileEntity().getBlock(tX + (tSide == 5 ? k : tSide < 4 ? i : -k), tY + j, tZ + (tSide < 4 ? -k : tSide == 3 ? k : i)) == GregTech_API.sBlockCasings4)
{
- if (getBaseMetaTileEntity().getMetaID(tX + (tSide == 5 ? k : tSide < 4 ? i : -k), tY + j, tZ + (tSide < 4 ? -k : tSide == 3 ? k : i)) == 13) {}
+ if (getBaseMetaTileEntity().getMetaID(tX + (tSide == 5 ? k : tSide < 4 ? i : -k), tY + j, tZ + (tSide < 4 ? -k : tSide == 3 ? k : i)) == 9) {}
}
else {
return false;
@@ -125,6 +126,7 @@ public class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_MultiBlock
if ((tTileEntity != null) && (tTileEntity.getMetaTileEntity() != null)) {
if ((tTileEntity.getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_Dynamo)) {
this.mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo)tTileEntity.getMetaTileEntity());
+ ((GT_MetaTileEntity_Hatch)tTileEntity.getMetaTileEntity()).mMachineBlock = (byte)46;
} else {
return false;
}
@@ -138,12 +140,12 @@ public class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_MultiBlock
}
private boolean addToMachineList(IGregTechTileEntity tTileEntity){
- return ((!addMaintenanceToMachineList(tTileEntity, 11)) && (!addInputToMachineList(tTileEntity, 11)) && (!addOutputToMachineList(tTileEntity, 11)));
+ return ((addMaintenanceToMachineList(tTileEntity, 46)) || (addInputToMachineList(tTileEntity, 46)) || (addOutputToMachineList(tTileEntity, 46)));
}
@Override
public int getDamageToComponent(ItemStack aStack) {
- return GT_Utility.areStacksEqual(GT_ModHandler.getModItem("Railcraft","part.turbine.rotor", 1L, 32767), aStack) ? 2 : 1;
+ return 1;//GT_Utility.areStacksEqual(GT_ModHandler.getModItem("Railcraft","part.turbine.rotor", 1L, 32767), aStack) ? 2 : 1;
}
@@ -152,24 +154,9 @@ public class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_MultiBlock
if (GT_Utility.isStackInvalid(aStack)) {
return 0;
}
- if (ItemList.Component_Turbine_Bronze.isStackEqual(aStack, true, true)) {
- return 6000;
- }
- if (ItemList.Component_Turbine_Steel.isStackEqual(aStack, true, true)) {
- return 8000;
- }
- if (ItemList.Component_Turbine_Magnalium.isStackEqual(aStack, true, true)) {
+ if (aStack.getItem() instanceof GT_MetaGenerated_Tool_01) {
return 10000;
}
- if (ItemList.Component_Turbine_TungstenSteel.isStackEqual(aStack, true, true)) {
- return 9000;
- }
- if (ItemList.Component_Turbine_Carbon.isStackEqual(aStack, true, true)) {
- return 12500;
- }
- if (GT_Utility.areStacksEqual(aStack, GT_ModHandler.getModItem("Railcraft","part.turbine.rotor", 1L, 32767))) {
- return 8000;
- }
return 0;
}