From 0409d4bccfc32d116612cb8a6a3d0e9e7790c895 Mon Sep 17 00:00:00 2001 From: Technus Date: Sun, 30 Jul 2017 17:24:31 +0200 Subject: Refactor turret to gain accees to package private things... Also fixes projectile and adds most of the mechanics to it. --- .../technus/tectech/auxiliary/TecTechConfig.java | 12 ++ .../classes/cElementalInstanceStackMap.java | 4 + .../technus/tectech/loader/EntityLoader.java | 15 +++ .../github/technus/tectech/loader/MainLoader.java | 10 +- .../technus/tectech/loader/ThingsLoader.java | 5 +- .../GT_MetaTileEntity_EM_essentiaDequantizer.java | 1 + .../GT_MetaTileEntity_EM_essentiaQuantizer.java | 1 + .../github/technus/tectech/proxy/ClientProxy.java | 15 ++- .../technus/tectech/thing/block/TurretBaseEM.java | 43 ------- .../tectech/thing/block/TurretBaseItemEM.java | 33 ------ .../technus/tectech/thing/block/TurretHeadEM.java | 68 ------------ .../tectech/thing/block/TurretHeadItemEM.java | 44 -------- .../tectech/thing/block/TurretHeadRenderEM.java | 11 -- .../tectech/thing/casing/GT_Block_CasingsTT.java | 3 +- .../thing/metaTileEntity/entity/projectileEM.java | 74 ------------- .../multi/GT_MetaTileEntity_EM_annihilation.java | 1 + .../multi/GT_MetaTileEntity_EM_bhg.java | 1 + .../multi/GT_MetaTileEntity_EM_collider.java | 1 + .../multi/GT_MetaTileEntity_EM_computer.java | 1 + .../multi/GT_MetaTileEntity_EM_crafter.java | 1 + .../multi/GT_MetaTileEntity_EM_decay.java | 1 + .../multi/GT_MetaTileEntity_EM_dequantizer.java | 1 + .../multi/GT_MetaTileEntity_EM_infuser.java | 1 + .../multi/GT_MetaTileEntity_EM_junction.java | 1 + .../multi/GT_MetaTileEntity_EM_quantizer.java | 1 + .../multi/GT_MetaTileEntity_EM_research.java | 1 + .../multi/GT_MetaTileEntity_EM_scanner.java | 1 + .../multi/GT_MetaTileEntity_EM_stabilizer.java | 1 + .../multi/GT_MetaTileEntity_EM_switch.java | 1 + .../multi/GT_MetaTileEntity_EM_transformer.java | 1 + .../multi/GT_MetaTileEntity_EM_wormhole.java | 1 + .../multi/GT_MetaTileEntity_MultiblockBase_EM.java | 2 +- .../tectech/thing/tileEntity/TileTurretBaseEM.java | 78 ------------- .../tectech/thing/tileEntity/TileTurretHeadEM.java | 70 ------------ .../blocks/turretbases/TurretBaseEM.java | 45 ++++++++ .../blocks/turretbases/TurretBaseItemEM.java | 33 ++++++ .../blocks/turretheads/TurretHeadEM.java | 68 ++++++++++++ .../blocks/turretheads/TurretHeadItemEM.java | 44 ++++++++ .../blocks/turretheads/TurretHeadItemRenderEM.java | 37 +++++++ .../blocks/turretheads/TurretHeadRenderEM.java | 11 ++ .../entity/projectiles/projectileEM.java | 123 +++++++++++++++++++++ .../entity/projectiles/projectileRenderEM.java | 74 +++++++++++++ .../tileentity/turret/TileTurretHeadEM.java | 67 +++++++++++ .../tileentity/turretbase/TileTurretBaseEM.java | 63 +++++++++++ .../tectech/textures/blocks/turretBaseEM.png | Bin 0 -> 1166 bytes .../tectech/textures/entity/projectileEM.png | Bin 0 -> 4254 bytes 46 files changed, 640 insertions(+), 430 deletions(-) create mode 100644 src/main/java/com/github/technus/tectech/loader/EntityLoader.java delete mode 100644 src/main/java/com/github/technus/tectech/thing/block/TurretBaseEM.java delete mode 100644 src/main/java/com/github/technus/tectech/thing/block/TurretBaseItemEM.java delete mode 100644 src/main/java/com/github/technus/tectech/thing/block/TurretHeadEM.java delete mode 100644 src/main/java/com/github/technus/tectech/thing/block/TurretHeadItemEM.java delete mode 100644 src/main/java/com/github/technus/tectech/thing/block/TurretHeadRenderEM.java delete mode 100644 src/main/java/com/github/technus/tectech/thing/metaTileEntity/entity/projectileEM.java delete mode 100644 src/main/java/com/github/technus/tectech/thing/tileEntity/TileTurretBaseEM.java delete mode 100644 src/main/java/com/github/technus/tectech/thing/tileEntity/TileTurretHeadEM.java create mode 100644 src/main/java/openmodularturrets/blocks/turretbases/TurretBaseEM.java create mode 100644 src/main/java/openmodularturrets/blocks/turretbases/TurretBaseItemEM.java create mode 100644 src/main/java/openmodularturrets/blocks/turretheads/TurretHeadEM.java create mode 100644 src/main/java/openmodularturrets/blocks/turretheads/TurretHeadItemEM.java create mode 100644 src/main/java/openmodularturrets/blocks/turretheads/TurretHeadItemRenderEM.java create mode 100644 src/main/java/openmodularturrets/blocks/turretheads/TurretHeadRenderEM.java create mode 100644 src/main/java/openmodularturrets/entity/projectiles/projectileEM.java create mode 100644 src/main/java/openmodularturrets/entity/projectiles/projectileRenderEM.java create mode 100644 src/main/java/openmodularturrets/tileentity/turret/TileTurretHeadEM.java create mode 100644 src/main/java/openmodularturrets/tileentity/turretbase/TileTurretBaseEM.java create mode 100644 src/main/resources/assets/tectech/textures/blocks/turretBaseEM.png create mode 100644 src/main/resources/assets/tectech/textures/entity/projectileEM.png (limited to 'src/main') diff --git a/src/main/java/com/github/technus/tectech/auxiliary/TecTechConfig.java b/src/main/java/com/github/technus/tectech/auxiliary/TecTechConfig.java index 633bbc5097..59b3e2e0fe 100644 --- a/src/main/java/com/github/technus/tectech/auxiliary/TecTechConfig.java +++ b/src/main/java/com/github/technus/tectech/auxiliary/TecTechConfig.java @@ -15,6 +15,9 @@ public class TecTechConfig extends ConfigManager { public static final boolean DEBUG_MODE = true; public boolean BOOM_ENABLE; public boolean NERF_FUSION; + public boolean ENABLE_TURRET_EXPLOSIONS; + public float TURRET_DAMAGE_FACTOR; + public float TURRET_EXPLOSION_FACTOR; @Override protected void PreInit() { @@ -22,6 +25,9 @@ public class TecTechConfig extends ConfigManager { //DEBUG_MODE = false; BOOM_ENABLE = true; NERF_FUSION = true; + ENABLE_TURRET_EXPLOSIONS = true; + TURRET_DAMAGE_FACTOR=10; + TURRET_EXPLOSION_FACTOR=1; } @Override @@ -34,6 +40,12 @@ public class TecTechConfig extends ConfigManager { "Set to false to disable explosions on everything bad that you can do (this will not be available after release)"); NERF_FUSION = _mainConfig.getBoolean("NerfFusion", "Features", NERF_FUSION, "Set to false to disable nerfing of plasmas heavier than Fe"); + ENABLE_TURRET_EXPLOSIONS = _mainConfig.getBoolean("TurretBoomEnable", "Features", ENABLE_TURRET_EXPLOSIONS, + "Set to false to disable explosions caused by EM turrets"); + TURRET_DAMAGE_FACTOR = _mainConfig.getFloat("TurretDamageFactor", "Features", TURRET_DAMAGE_FACTOR, 0, Short.MAX_VALUE, + "Damage is multiplied by this number"); + TURRET_EXPLOSION_FACTOR = _mainConfig.getFloat("TurretExplosionFactor", "Features", TURRET_EXPLOSION_FACTOR, 0, Short.MAX_VALUE, + "Explosion strength is multiplied by this number"); } @Override diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStackMap.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStackMap.java index 3443463718..7d27f573bb 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStackMap.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalInstanceStackMap.java @@ -267,6 +267,10 @@ public final class cElementalInstanceStackMap implements Comparable 1) { - if(movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) { - Block hitBlock = this.worldObj.getBlock(movingobjectposition.blockX, movingobjectposition.blockY, movingobjectposition.blockZ); - if(hitBlock != null && !hitBlock.getMaterial().isSolid()) { - return; - } - } - - if(movingobjectposition.entityHit != null && !this.worldObj.isRemote) { - Random random = new Random(); - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "openmodularturrets:laserHit", ConfigHandler.getTurretSoundVolume(), random.nextFloat() + 0.5F); - if(movingobjectposition.entityHit != null && !this.worldObj.isRemote) { - int damage = ConfigHandler.getLaserTurretSettings().getDamage(); - if(movingobjectposition.entityHit instanceof EntityLivingBase) { - EntityLivingBase elb = (EntityLivingBase)movingobjectposition.entityHit; - damage = (int)((double)damage + (double)((int)elb.getHealth()) * 0.1D); - } - - if(movingobjectposition.entityHit instanceof EntityPlayer) { - if(this.canDamagePlayer((EntityPlayer)movingobjectposition.entityHit)) { - movingobjectposition.entityHit.setFire(2); - movingobjectposition.entityHit.attackEntityFrom(new NormalDamageSource("laser"), (float)damage); - movingobjectposition.entityHit.hurtResistantTime = 0; - } - } else { - movingobjectposition.entityHit.setFire(2); - movingobjectposition.entityHit.attackEntityFrom(new NormalDamageSource("laser"), (float)damage); - movingobjectposition.entityHit.hurtResistantTime = 0; - } - } - } - - this.setDead(); - } - } - - private boolean canDamagePlayer(EntityPlayer entityPlayer) { - return ConfigHandler.turretDamageTrustedPlayers || this.turretBase.getTrustedPlayer(entityPlayer.getUniqueID()) == null && !PlayerUtil.getPlayerUIDUnstable(this.turretBase.getOwner()).equals(entityPlayer.getUniqueID()); - } -} diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_annihilation.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_annihilation.java index 57488e9072..799bdc1404 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_annihilation.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_annihilation.java @@ -10,6 +10,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import static com.github.technus.tectech.Util.StructureBuilder; +import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.textureOffset; import static com.github.technus.tectech.thing.casing.GT_Container_CasingsTT.sBlockCasingsTT; /** diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_bhg.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_bhg.java index 3f83e923f4..118af9093c 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_bhg.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_bhg.java @@ -14,6 +14,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import static com.github.technus.tectech.Util.StructureBuilder; +import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.textureOffset; import static com.github.technus.tectech.thing.casing.GT_Container_CasingsTT.sBlockCasingsTT; import static gregtech.api.enums.GT_Values.E; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java index eebfd99b28..3ee9b844b1 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java @@ -19,6 +19,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.util.ForgeDirection; import static com.github.technus.tectech.Util.StructureBuilder; +import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.textureOffset; import static com.github.technus.tectech.thing.casing.GT_Container_CasingsTT.sBlockCasingsTT; /** diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java index 6e36a8b3a7..3f347ba33b 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java @@ -24,6 +24,7 @@ import net.minecraft.util.EnumChatFormatting; import java.util.ArrayList; import static com.github.technus.tectech.Util.StructureBuilder; +import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.textureOffset; import static com.github.technus.tectech.thing.casing.GT_Container_CasingsTT.sBlockCasingsTT; import static gregtech.api.enums.GT_Values.V; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_crafter.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_crafter.java index 9c4e7ff147..bc59a4fb0d 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_crafter.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_crafter.java @@ -10,6 +10,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import static com.github.technus.tectech.Util.StructureBuilder; +import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.textureOffset; import static com.github.technus.tectech.thing.casing.GT_Container_CasingsTT.sBlockCasingsTT; /** diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_decay.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_decay.java index 19b63ed604..dd4ca44a3a 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_decay.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_decay.java @@ -14,6 +14,7 @@ import net.minecraft.util.EnumChatFormatting; import static com.github.technus.tectech.Util.StructureBuilder; import static com.github.technus.tectech.elementalMatter.interfaces.iElementalDefinition.stableRawLifeTime; +import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.textureOffset; import static com.github.technus.tectech.thing.casing.GT_Container_CasingsTT.sBlockCasingsTT; import static gregtech.api.enums.GT_Values.VN; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java index 4814ba3cde..fbe526d905 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java @@ -22,6 +22,7 @@ import java.util.ArrayList; import static com.github.technus.tectech.Util.StructureBuilder; import static com.github.technus.tectech.elementalMatter.definitions.dAtomDefinition.refMass; import static com.github.technus.tectech.elementalMatter.definitions.dAtomDefinition.refUnstableMass; +import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.textureOffset; import static com.github.technus.tectech.thing.casing.GT_Container_CasingsTT.sBlockCasingsTT; import static gregtech.api.enums.GT_Values.V; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java index 2a3a229cd6..38d3d67f31 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java @@ -15,6 +15,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import static com.github.technus.tectech.Util.StructureBuilder; +import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.textureOffset; import static com.github.technus.tectech.thing.casing.GT_Container_CasingsTT.sBlockCasingsTT; import static gregtech.api.GregTech_API.mEUtoRF; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java index 71f9ccfdc0..a77b10bd9d 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java @@ -11,6 +11,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import static com.github.technus.tectech.Util.StructureBuilder; +import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.textureOffset; import static com.github.technus.tectech.thing.casing.GT_Container_CasingsTT.sBlockCasingsTT; import static gregtech.api.enums.GT_Values.V; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java index 09ed83fa5e..334dd45642 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java @@ -20,6 +20,7 @@ import static com.github.technus.tectech.Util.StructureBuilder; import static com.github.technus.tectech.Util.isInputEqual; import static com.github.technus.tectech.elementalMatter.definitions.dAtomDefinition.refMass; import static com.github.technus.tectech.elementalMatter.definitions.dAtomDefinition.refUnstableMass; +import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.textureOffset; import static com.github.technus.tectech.thing.casing.GT_Container_CasingsTT.sBlockCasingsTT; import static gregtech.api.enums.GT_Values.V; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java index f59e835652..81832939ed 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java @@ -19,6 +19,7 @@ import net.minecraft.util.EnumChatFormatting; import java.util.ArrayList; import static com.github.technus.tectech.Util.StructureBuilder; +import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.textureOffset; import static com.github.technus.tectech.thing.casing.GT_Container_CasingsTT.sBlockCasingsTT; import static gregtech.api.enums.GT_Values.E; import static gregtech.api.enums.GT_Values.V; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java index 731758f955..5acd5e047f 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java @@ -10,6 +10,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import static com.github.technus.tectech.Util.StructureBuilder; +import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.textureOffset; import static com.github.technus.tectech.thing.casing.GT_Container_CasingsTT.sBlockCasingsTT; /** diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_stabilizer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_stabilizer.java index 66d25782a1..e2124a9710 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_stabilizer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_stabilizer.java @@ -10,6 +10,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import static com.github.technus.tectech.Util.StructureBuilder; +import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.textureOffset; import static com.github.technus.tectech.thing.casing.GT_Container_CasingsTT.sBlockCasingsTT; /** diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_switch.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_switch.java index 66058ec3a3..ab85a2058b 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_switch.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_switch.java @@ -14,6 +14,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.util.ForgeDirection; +import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.textureOffset; import static com.github.technus.tectech.thing.casing.GT_Container_CasingsTT.sBlockCasingsTT; import static gregtech.api.enums.GT_Values.V; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_transformer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_transformer.java index df8fc702b0..0080d9b3f6 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_transformer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_transformer.java @@ -10,6 +10,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.util.ForgeDirection; +import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.textureOffset; import static com.github.technus.tectech.thing.casing.GT_Container_CasingsTT.sBlockCasingsTT; import static gregtech.api.GregTech_API.sBlockCasings1; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_wormhole.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_wormhole.java index 7f54412f0b..0bad115812 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_wormhole.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_wormhole.java @@ -14,6 +14,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import static com.github.technus.tectech.Util.StructureBuilder; +import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.textureOffset; import static com.github.technus.tectech.thing.casing.GT_Container_CasingsTT.sBlockCasingsTT; import static gregtech.api.enums.GT_Values.E; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_MultiblockBase_EM.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_MultiblockBase_EM.java index b790b84394..1b2babf471 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_MultiblockBase_EM.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_MultiblockBase_EM.java @@ -40,6 +40,7 @@ import java.util.Map; import static com.github.technus.tectech.CommonValues.*; import static com.github.technus.tectech.Util.StructureChecker; import static com.github.technus.tectech.Util.StructureCheckerAdvanced; +import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.textureOffset; import static gregtech.api.enums.GT_Values.V; import static gregtech.api.enums.GT_Values.VN; @@ -57,7 +58,6 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt protected static Textures.BlockIcons.CustomIcon ScreenOFF; protected static Textures.BlockIcons.CustomIcon ScreenON; - protected final static int textureOffset = 96; public ArrayList eInputHatches = new ArrayList<>(); public ArrayList eOutputHatches = new ArrayList<>(); diff --git a/src/main/java/com/github/technus/tectech/thing/tileEntity/TileTurretBaseEM.java b/src/main/java/com/github/technus/tectech/thing/tileEntity/TileTurretBaseEM.java deleted file mode 100644 index 4f7f399b93..0000000000 --- a/src/main/java/com/github/technus/tectech/thing/tileEntity/TileTurretBaseEM.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.github.technus.tectech.thing.tileEntity; - -import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStackMap; -import com.github.technus.tectech.elementalMatter.interfaces.iElementalInstanceContainer; -import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_InputElemental; -import cpw.mods.fml.common.Optional; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import openmodularturrets.tileentity.turretbase.TurretBaseTierFiveTileEntity; - -/** - * Created by Bass on 27/07/2017. - */ - -public class TileTurretBaseEM extends TurretBaseTierFiveTileEntity implements iElementalInstanceContainer { - public TileTurretBaseEM(int MaxEnergyStorage, int MaxIO) { - super(MaxEnergyStorage, MaxIO); - } - - @Override - public int getSizeInventory() { - return 13; - } - - public String getInventoryName() { - return "modtur.turretbasefive"; - } - - @Optional.Method( - modid = "OpenComputers" - ) - public String getComponentName() { - return "turretBaseEM"; - } - - @Override - public int getBaseTier() { - return 5; - } - - @Override - public cElementalInstanceStackMap getContainerHandler() { - World worldIn=getWorldObj(); - TileEntity te; - if((te=worldIn.getTileEntity(xCoord + 1, yCoord, zCoord)) instanceof IGregTechTileEntity) - if(((IGregTechTileEntity)te).getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_InputElemental) - return ((GT_MetaTileEntity_Hatch_InputElemental)((IGregTechTileEntity) te).getMetaTileEntity()).getContainerHandler(); - - if((te=worldIn.getTileEntity(xCoord - 1, yCoord, zCoord)) instanceof IGregTechTileEntity) - if(((IGregTechTileEntity)te).getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_InputElemental) - return ((GT_MetaTileEntity_Hatch_InputElemental)((IGregTechTileEntity) te).getMetaTileEntity()).getContainerHandler(); - - if((te=worldIn.getTileEntity(xCoord, yCoord+1, zCoord)) instanceof IGregTechTileEntity) - if(((IGregTechTileEntity)te).getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_InputElemental) - return ((GT_MetaTileEntity_Hatch_InputElemental)((IGregTechTileEntity) te).getMetaTileEntity()).getContainerHandler(); - - if((te=worldIn.getTileEntity(xCoord, yCoord-1, zCoord)) instanceof IGregTechTileEntity) - if(((IGregTechTileEntity)te).getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_InputElemental) - return ((GT_MetaTileEntity_Hatch_InputElemental)((IGregTechTileEntity) te).getMetaTileEntity()).getContainerHandler(); - - if((te=worldIn.getTileEntity(xCoord, yCoord, zCoord+1)) instanceof IGregTechTileEntity) - if(((IGregTechTileEntity)te).getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_InputElemental) - return ((GT_MetaTileEntity_Hatch_InputElemental)((IGregTechTileEntity) te).getMetaTileEntity()).getContainerHandler(); - - if((te=worldIn.getTileEntity(xCoord, yCoord, zCoord-1)) instanceof IGregTechTileEntity) - if(((IGregTechTileEntity)te).getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_InputElemental) - return ((GT_MetaTileEntity_Hatch_InputElemental)((IGregTechTileEntity) te).getMetaTileEntity()).getContainerHandler(); - - return null; - } - - @Override - @Deprecated - public float purgeOverflow() { - throw new NoSuchMethodError("This is not a valid use"); - } -} diff --git a/src/main/java/com/github/technus/tectech/thing/tileEntity/TileTurretHeadEM.java b/src/main/java/com/github/technus/tectech/thing/tileEntity/TileTurretHeadEM.java deleted file mode 100644 index f6211fac31..0000000000 --- a/src/main/java/com/github/technus/tectech/thing/tileEntity/TileTurretHeadEM.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.github.technus.tectech.thing.tileEntity; - -import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStackMap; -import com.github.technus.tectech.thing.item.DebugContainer_EM; -import com.github.technus.tectech.thing.metaTileEntity.entity.projectileEM; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import openmodularturrets.entity.projectiles.TurretProjectile; -import openmodularturrets.handler.ConfigHandler; -import openmodularturrets.tileentity.turrets.TurretHead; -import openmodularturrets.util.TurretHeadUtil; - -/** - * Created by Bass on 27/07/2017. - */ -public class TileTurretHeadEM extends TurretHead{ - private cElementalInstanceStackMap hatchContentPointer; - - public TileTurretHeadEM() { - } - - public int getTurretRange() { - return ConfigHandler.getLaserTurretSettings().getRange(); - } - - public int getTurretPowerUsage() { - return ConfigHandler.getLaserTurretSettings().getPowerUsage(); - } - - public int getTurretFireRate() { - return ConfigHandler.getLaserTurretSettings().getFireRate(); - } - - public double getTurretAccuracy() { - return ConfigHandler.getLaserTurretSettings().getAccuracy() / 10.0D; - } - - @Override - public void updateEntity() { - if(!worldObj.isRemote && base instanceof TileTurretBaseEM) - hatchContentPointer =((TileTurretBaseEM) base).getContainerHandler(); - super.updateEntity(); - } - - public boolean requiresAmmo() { - return hatchContentPointer == null || !hatchContentPointer.hasStacks(); - } - - public boolean requiresSpecificAmmo() { - return true;//to enable failure in shooting when there is no EM to use - } - - public Item getAmmo() { - return DebugContainer_EM.INSTANCE;//Placeholder item that cannot be achieved, yet still usable for debug - } - - public TurretProjectile createProjectile(World world, Entity target, ItemStack ammo) { - //if(hatchContentPointer!=null && hatchContentPointer.hasStacks()){ - projectileEM projectile= new projectileEM(world, TurretHeadUtil.getTurretBase(worldObj, xCoord, yCoord, zCoord), hatchContentPointer); - return projectile; - //} - //return new LaserProjectile(world, TurretHeadUtil.getTurretBase(worldObj, xCoord, yCoord, zCoord)); - } - - public String getLaunchSoundEffect() { - return "laser"; - } -} diff --git a/src/main/java/openmodularturrets/blocks/turretbases/TurretBaseEM.java b/src/main/java/openmodularturrets/blocks/turretbases/TurretBaseEM.java new file mode 100644 index 0000000000..78733d0599 --- /dev/null +++ b/src/main/java/openmodularturrets/blocks/turretbases/TurretBaseEM.java @@ -0,0 +1,45 @@ +package openmodularturrets.blocks.turretbases; + +import com.github.technus.tectech.TecTech; +import com.github.technus.tectech.auxiliary.Reference; +import openmodularturrets.handler.ConfigHandler; +import openmodularturrets.tileentity.turretbase.TileTurretBaseEM; +import cpw.mods.fml.common.registry.GameRegistry; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +/** + * Created by Bass on 27/07/2017. + */ +public class TurretBaseEM extends BlockAbstractTurretBase { + private final int MaxCharge = ConfigHandler.getBaseTierFiveMaxCharge(); + private final int MaxIO = ConfigHandler.getBaseTierFiveMaxIo(); + public static TurretBaseEM INSTANCE; + + public TurretBaseEM(){ + super(); + setCreativeTab(TecTech.mainTab); + this.setResistance(16); + this.setBlockName("turretBaseEM"); + this.setStepSound(Block.soundTypeMetal); + this.setBlockTextureName(Reference.MODID+":turretBaseEM"); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileTurretBaseEM(MaxCharge,MaxIO); + } + + public void registerBlockIcons(IIconRegister p_149651_1_) { + super.registerBlockIcons(p_149651_1_); + this.blockIcon = p_149651_1_.registerIcon(Reference.MODID+":turretBaseEM"); + } + + public static void run() { + INSTANCE = new TurretBaseEM(); + GameRegistry.registerBlock(INSTANCE, TurretBaseItemEM.class, INSTANCE.getUnlocalizedName()); + GameRegistry.registerTileEntity(TileTurretBaseEM.class,"TileTurretBaseEM"); + } +} diff --git a/src/main/java/openmodularturrets/blocks/turretbases/TurretBaseItemEM.java b/src/main/java/openmodularturrets/blocks/turretbases/TurretBaseItemEM.java new file mode 100644 index 0000000000..36437fa741 --- /dev/null +++ b/src/main/java/openmodularturrets/blocks/turretbases/TurretBaseItemEM.java @@ -0,0 +1,33 @@ +package openmodularturrets.blocks.turretbases; + +import com.github.technus.tectech.CommonValues; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; + +import java.util.List; + +/** + * Created by Bass on 28/07/2017. + */ +public class TurretBaseItemEM extends ItemBlock { + public TurretBaseItemEM(Block b) { + super(b); + } + + public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List list, boolean p_77624_4_) { + list.add(CommonValues.tecMark); + list.add(""); + list.add(EnumChatFormatting.AQUA + "--" + StatCollector.translateToLocal("tooptip.energy.label") + "--"); + list.add(StatCollector.translateToLocal("tooltip.rf.max") + ": " + EnumChatFormatting.WHITE + 1000000000); + list.add(StatCollector.translateToLocal("tooltip.rf.io") + ": " + EnumChatFormatting.WHITE + 50000); + list.add(""); + list.add(EnumChatFormatting.GREEN + "--" + StatCollector.translateToLocal("tooltip.extras.label") + "--"); + list.add(StatCollector.translateToLocal("tooltip.extras.addons.0")); + list.add(""); + list.add(EnumChatFormatting.DARK_GRAY + StatCollector.translateToLocal("flavour.base.0")); + } +} diff --git a/src/main/java/openmodularturrets/blocks/turretheads/TurretHeadEM.java b/src/main/java/openmodularturrets/blocks/turretheads/TurretHeadEM.java new file mode 100644 index 0000000000..255a5a56d3 --- /dev/null +++ b/src/main/java/openmodularturrets/blocks/turretheads/TurretHeadEM.java @@ -0,0 +1,68 @@ +package openmodularturrets.blocks.turretheads; + +import com.github.technus.tectech.TecTech; +import com.github.technus.tectech.auxiliary.Reference; +import openmodularturrets.tileentity.turret.TileTurretHeadEM; +import cpw.mods.fml.common.registry.GameRegistry; +import net.minecraft.block.Block; +import net.minecraft.block.ITileEntityProvider; +import net.minecraft.block.material.Material; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import openmodularturrets.tileentity.turretbase.TurretBase; + +/** + * Created by Bass on 27/07/2017. + */ +public class TurretHeadEM extends Block implements ITileEntityProvider { + public static TurretHeadEM INSTANCE; + + public TurretHeadEM(){ + super(Material.glass); + this.setCreativeTab(TecTech.mainTab); + this.setBlockUnbreakable(); + this.setResistance(6000000.0F); + this.setStepSound(Block.soundTypeMetal); + this.setBlockBounds(0.2F, 0.0F, 0.2F, 0.8F, 1F, 0.8F); + this.setBlockName("turretHeadEM"); + this.setBlockTextureName(Reference.MODID+":turretHeadEM"); + } + + @Override + public int getRenderType() { + return -1; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean canPlaceBlockAt(World worldIn, int x, int y, int z) { + return worldIn.getTileEntity(x + 1, y, z) instanceof TurretBase || + worldIn.getTileEntity(x - 1, y, z) instanceof TurretBase || + worldIn.getTileEntity(x,y + 1, z) instanceof TurretBase || + worldIn.getTileEntity(x,y - 1, z) instanceof TurretBase || + worldIn.getTileEntity(x,y, z + 1) instanceof TurretBase || + worldIn.getTileEntity(x,y, z - 1) instanceof TurretBase; + } + + @Override + public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) { + return false; + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileTurretHeadEM(); + } + + public static void run() { + INSTANCE = new TurretHeadEM(); + GameRegistry.registerBlock(INSTANCE, TurretHeadItemEM.class, INSTANCE.getUnlocalizedName()); + GameRegistry.registerTileEntity(TileTurretHeadEM.class,"TileTurretHeadEM"); + } +} diff --git a/src/main/java/openmodularturrets/blocks/turretheads/TurretHeadItemEM.java b/src/main/java/openmodularturrets/blocks/turretheads/TurretHeadItemEM.java new file mode 100644 index 0000000000..db2e034710 --- /dev/null +++ b/src/main/java/openmodularturrets/blocks/turretheads/TurretHeadItemEM.java @@ -0,0 +1,44 @@ +package openmodularturrets.blocks.turretheads; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; +import openmodularturrets.handler.ConfigHandler; + +import java.text.DecimalFormat; +import java.util.List; + +import static com.github.technus.tectech.CommonValues.tecMark; + +/** + * Created by Bass on 28/07/2017. + */ +public class TurretHeadItemEM extends ItemBlock { + private static final DecimalFormat df = new DecimalFormat("0.0"); + + public TurretHeadItemEM(Block b) { + super(b); + } + + public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List list, boolean p_77624_4_) { + list.add(tecMark); + list.add(""); + list.add(EnumChatFormatting.GOLD + "--" + StatCollector.translateToLocal("tooltip.info") + "--"); + list.add(StatCollector.translateToLocal("tooltip.tier") + ": " + EnumChatFormatting.WHITE + "5"); + list.add(StatCollector.translateToLocal("tooltip.range") + ": " + EnumChatFormatting.WHITE + ConfigHandler.getLaserTurretSettings().getRange()); + list.add(StatCollector.translateToLocal("tooltip.accuracy") + ": " + EnumChatFormatting.WHITE + StatCollector.translateToLocal("turret.accuracy.high")); + list.add(StatCollector.translateToLocal("tooltip.ammo") + ": " + EnumChatFormatting.WHITE + StatCollector.translateToLocal("turret.ammo.4")); + list.add(StatCollector.translateToLocal("tooltip.tierRequired") + ": " + EnumChatFormatting.WHITE + StatCollector.translateToLocal("base.tier.5")); + list.add(""); + list.add(EnumChatFormatting.DARK_PURPLE + "--" + StatCollector.translateToLocal("tooltip.damage.label") + "--"); + list.add(StatCollector.translateToLocal("tooltip.damage.stat") + ": " + EnumChatFormatting.WHITE + (float)ConfigHandler.getLaserTurretSettings().getDamage() / 2.0F + " " + StatCollector.translateToLocal("tooltip.health")); + list.add(StatCollector.translateToLocal("tooltip.aoe") + ": " + EnumChatFormatting.WHITE + "0"); + list.add(StatCollector.translateToLocal("tooltip.firerate") + ": " + EnumChatFormatting.WHITE + df.format((double)(20.0F / (float)ConfigHandler.getLaserTurretSettings().getFireRate()))); + list.add(StatCollector.translateToLocal("tooltip.energy.stat") + ": " + EnumChatFormatting.WHITE + ConfigHandler.getLaserTurretSettings().getPowerUsage() + " RF"); + list.add(""); + list.add(EnumChatFormatting.DARK_GRAY + StatCollector.translateToLocal("flavour.turret.4")); + } +} diff --git a/src/main/java/openmodularturrets/blocks/turretheads/TurretHeadItemRenderEM.java b/src/main/java/openmodularturrets/blocks/turretheads/TurretHeadItemRenderEM.java new file mode 100644 index 0000000000..fbfda7c6ee --- /dev/null +++ b/src/main/java/openmodularturrets/blocks/turretheads/TurretHeadItemRenderEM.java @@ -0,0 +1,37 @@ +package openmodularturrets.blocks.turretheads; + +import openmodularturrets.tileentity.turret.TileTurretHeadEM; +import net.minecraft.item.ItemStack; +import net.minecraftforge.client.IItemRenderer; +import openmodularturrets.client.render.models.ModelLaserTurret; +import org.lwjgl.opengl.GL11; + +/** + * Created by Tec on 30.07.201