diff options
15 files changed, 209 insertions, 43 deletions
diff --git a/src/main/java/com/github/technus/tectech/TecTech.java b/src/main/java/com/github/technus/tectech/TecTech.java index 6a99a437cd..d011f558a9 100644 --- a/src/main/java/com/github/technus/tectech/TecTech.java +++ b/src/main/java/com/github/technus/tectech/TecTech.java @@ -20,7 +20,6 @@ import gregtech.api.enums.Materials; import gregtech.api.util.GT_Recipe; import net.minecraft.block.Block; import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.init.Blocks; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/README b/src/main/java/com/github/technus/tectech/elementalMatter/README index 211dd10b06..f6c0b35e5f 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/README +++ b/src/main/java/com/github/technus/tectech/elementalMatter/README @@ -8,20 +8,21 @@ TO CHANGE DEFINITION YOU MUST INSTANTIATE IT ONCE MORE (from scratch, failing to | DefStack ||||| - DefStackTree + DefStackMap | ..... ETC up to the point when you can no longer make NBT to save it (128 levels - already used ones) + Def - definition of the parent stack | DefStack - stacks that build the parent definition |||||multiple to 1 - DefStackTree - internal storage for components of parent def + DefStackMap - internal storage for components of parent def | Def - definition of the parent stack | DefStack - stacks that build the parent definition |||||multiple to 1 - DefStackTree - internal storage for components of parent def + DefStackMap - internal storage for components of parent def | Definition - top hierarchy definition | 1 to 1 diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalMutableDefinitionStackMap.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalMutableDefinitionStackMap.java index 70931016d7..10ae31bdb5 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalMutableDefinitionStackMap.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalMutableDefinitionStackMap.java @@ -13,7 +13,6 @@ import static com.github.technus.tectech.elementalMatter.definitions.cPrimitiveD * Created by danie_000 on 22.01.2017. */ public final class cElementalMutableDefinitionStackMap extends cElementalStackMap {//Transient class for construction of definitions/recipes - //Constructors + Clone, all make a whole new OBJ. public cElementalMutableDefinitionStackMap() { map = new TreeMap<>(); diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/eLeptonDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/eLeptonDefinition.java index b54f0a536d..4da388df21 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/eLeptonDefinition.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/eLeptonDefinition.java @@ -21,7 +21,6 @@ public final class eLeptonDefinition extends cElementalPrimitive { public static final cElementalDefinitionStack lepton_e1 = new cElementalDefinitionStack(lepton_e, 1); public static final cElementalDefinitionStack lepton_e_1 = new cElementalDefinitionStack(lepton_e_, 1); - private eLeptonDefinition(String name, String symbol, int type, float mass, int charge, int color, int ID) { super(name, symbol, type, mass, charge, color, ID); //this.itemThing=null; diff --git a/src/main/java/com/github/technus/tectech/loader/ThingsLoader.java b/src/main/java/com/github/technus/tectech/loader/ThingsLoader.java index 03fba83f3d..8a3523f9df 100644 --- a/src/main/java/com/github/technus/tectech/loader/ThingsLoader.java +++ b/src/main/java/com/github/technus/tectech/loader/ThingsLoader.java @@ -2,10 +2,13 @@ package com.github.technus.tectech.loader; import com.github.technus.tectech.TecTech; import com.github.technus.tectech.thing.block.QuantumGlassBlock; +import com.github.technus.tectech.thing.block.TurretBaseEM; +import com.github.technus.tectech.thing.block.TurretHeadEM; import com.github.technus.tectech.thing.casing.GT_Block_CasingsTT; import com.github.technus.tectech.thing.casing.GT_Container_CasingsTT; import com.github.technus.tectech.thing.item.DebugBuilder; import com.github.technus.tectech.thing.item.DebugContainer_EM; +import cpw.mods.fml.common.Loader; /** * Created by danie_000 on 16.11.2016. @@ -18,6 +21,13 @@ public class ThingsLoader implements Runnable { QuantumGlassBlock.run(); TecTech.Logger.info("Quantum Glass registered"); + if(Loader.isModLoaded("openmodularturrets")) { + TurretHeadEM.run(); + TecTech.Logger.info("TurretHeadEM registered"); + TurretBaseEM.run(); + TecTech.Logger.info("TurretBaseEM registered"); + } + DebugContainer_EM.run(); DebugBuilder.run(); TecTech.Logger.info("Debug Items registered"); diff --git a/src/main/java/com/github/technus/tectech/proxy/ClientProxy.java b/src/main/java/com/github/technus/tectech/proxy/ClientProxy.java index 67ed5e81ef..d68ef8b9a3 100644 --- a/src/main/java/com/github/technus/tectech/proxy/ClientProxy.java +++ b/src/main/java/com/github/technus/tectech/proxy/ClientProxy.java @@ -2,8 +2,12 @@ package com.github.technus.tectech.proxy; import com.github.technus.tectech.TecTech; import com.github.technus.tectech.thing.block.QuantumGlassRender; +import com.github.technus.tectech.thing.block.TurretHeadRenderEM; +import com.github.technus.tectech.thing.tileEntity.TileTurretHeadEM; import cpw.mods.fml.client.FMLClientHandler; +import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.common.Loader; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; @@ -14,11 +18,18 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import org.lwjgl.opengl.GL11; +import static openmodularturrets.client.render.renderers.blockitem.TileEntityRenderers.laserTurretRenderer; + public class ClientProxy extends CommonProxy { @Override public void registerRenderInfo() { QuantumGlassRender.renderID = RenderingRegistry.getNextAvailableRenderId(); RenderingRegistry.registerBlockHandler(QuantumGlassRender.renderID, new QuantumGlassRender()); + + if(Loader.isModLoaded("openmodularturrets")) { + TurretHeadRenderEM turretHeadRenderEM=new TurretHeadRenderEM(); + ClientRegistry.bindTileEntitySpecialRenderer(TileTurretHeadEM.class, turretHeadRenderEM); + } } @Override diff --git a/src/main/java/com/github/technus/tectech/thing/block/TurretBaseEM.java b/src/main/java/com/github/technus/tectech/thing/block/TurretBaseEM.java index 4127ecf593..ac410c36ab 100644 --- a/src/main/java/com/github/technus/tectech/thing/block/TurretBaseEM.java +++ b/src/main/java/com/github/technus/tectech/thing/block/TurretBaseEM.java @@ -3,18 +3,19 @@ package com.github.technus.tectech.thing.block; import com.github.technus.tectech.TecTech; import com.github.technus.tectech.auxiliary.Reference; import com.github.technus.tectech.thing.tileEntity.TileTurretBaseEM; -import cpw.mods.fml.common.Optional; +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; import openmodularturrets.blocks.turretbases.BlockAbstractTurretBase; -import openmodularturrets.tileentity.turretbase.TurretBaseTierFiveTileEntity; /** * Created by Bass on 27/07/2017. */ public class TurretBaseEM extends BlockAbstractTurretBase { + public static TurretBaseEM INSTANCE; + public TurretBaseEM(){ super(); setCreativeTab(TecTech.mainTab); @@ -26,11 +27,17 @@ public class TurretBaseEM extends BlockAbstractTurretBase { @Override public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileTurretBaseEM(); + return new TileTurretBaseEM(1000000000,50000); } 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/com/github/technus/tectech/thing/block/TurretBaseItemEM.java b/src/main/java/com/github/technus/tectech/thing/block/TurretBaseItemEM.java new file mode 100644 index 0000000000..1c8dc311cf --- /dev/null +++ b/src/main/java/com/github/technus/tectech/thing/block/TurretBaseItemEM.java @@ -0,0 +1,33 @@ +package com.github.technus.tectech.thing.block; + +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/com/github/technus/tectech/thing/block/TurretHeadEM.java b/src/main/java/com/github/technus/tectech/thing/block/TurretHeadEM.java index aa7a61b540..d6fc241aef 100644 --- a/src/main/java/com/github/technus/tectech/thing/block/TurretHeadEM.java +++ b/src/main/java/com/github/technus/tectech/thing/block/TurretHeadEM.java @@ -3,10 +3,10 @@ package com.github.technus.tectech.thing.block; import com.github.technus.tectech.TecTech; import com.github.technus.tectech.auxiliary.Reference; import com.github.technus.tectech.thing.tileEntity.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.EntityLiving; import net.minecraft.entity.EnumCreatureType; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; @@ -17,6 +17,8 @@ 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); @@ -57,4 +59,10 @@ public class TurretHeadEM extends Block implements ITileEntityProvider { 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/com/github/technus/tectech/thing/block/TurretHeadItemEM.java b/src/main/java/com/github/technus/tectech/thing/block/TurretHeadItemEM.java new file mode 100644 index 0000000000..e8ee236809 --- /dev/null +++ b/src/main/java/com/github/technus/tectech/thing/block/TurretHeadItemEM.java @@ -0,0 +1,44 @@ +package com.github.technus.tectech.thing.block; + +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/com/github/technus/tectech/thing/block/TurretHeadRenderEM.java b/src/main/java/com/github/technus/tectech/thing/block/TurretHeadRenderEM.java new file mode 100644 index 0000000000..6d10a0cde5 --- /dev/null +++ b/src/main/java/com/github/technus/tectech/thing/block/TurretHeadRenderEM.java @@ -0,0 +1,11 @@ +package com.github.technus.tectech.thing.block; + +import openmodularturrets.client.render.renderers.blockitem.LaserTurretRenderer; + +/** + * Created by Bass on 28/07/2017. + */ +public class TurretHeadRenderEM extends LaserTurretRenderer { + public TurretHeadRenderEM() { + } +} diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/entity/projectileEM.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/entity/projectileEM.java index b181de2807..76b0071527 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/entity/projectileEM.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/entity/projectileEM.java @@ -1,22 +1,74 @@ package com.github.technus.tectech.thing.metaTileEntity.entity; -import net.minecraft.entity.projectile.EntityThrowable; +import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStackMap; +import net.minecraft.block.Block; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; import openmodularturrets.entity.projectiles.LaserProjectile; -import openmodularturrets.entity.projectiles.TurretProjectile; +import openmodularturrets.entity.projectiles.damagesources.NormalDamageSource; +import openmodularturrets.handler.ConfigHandler; import openmodularturrets.tileentity.turretbase.TurretBase; +import openmodularturrets.util.PlayerUtil; + +import java.util.Random; /** * Created by Bass on 27/07/2017. */ public class projectileEM extends LaserProjectile { + private TurretBase turretBase; + public projectileEM(World par1World) { super(par1World); this.gravity = 0.0F; } - public projectileEM(World par1World, TurretBase turretBase) { + public projectileEM(World par1World, TurretBase turretBase, cElementalInstanceStackMap avalableEM) { super(par1World, turretBase); + this.turretBase = turretBase; this.gravity = 0.0F; } + + protected void onImpact(MovingObjectPosition movingobjectposition) { + if(this.ticksExisted > 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/other todo b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/other todo index 3d87269020..b9feb9b976 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/other todo +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/other todo @@ -22,3 +22,5 @@ BlockFakeLight.java for turrets: floodlight + +parametrizer memory card 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 index b272930a0a..4f7f399b93 100644 --- a/src/main/java/com/github/technus/tectech/thing/tileEntity/TileTurretBaseEM.java +++ b/src/main/java/com/github/technus/tectech/thing/tileEntity/TileTurretBaseEM.java @@ -5,17 +5,15 @@ import com.github.technus.tectech.elementalMatter.interfaces.iElementalInstanceC 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 gregtech.api.metatileentity.MetaTileEntity; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -import openmodularturrets.tileentity.turretbase.TurretBase; - -import java.util.ArrayList; +import openmodularturrets.tileentity.turretbase.TurretBaseTierFiveTileEntity; /** * Created by Bass on 27/07/2017. */ -public class TileTurretBaseEM extends TurretBase implements iElementalInstanceContainer { + +public class TileTurretBaseEM extends TurretBaseTierFiveTileEntity implements iElementalInstanceContainer { public TileTurretBaseEM(int MaxEnergyStorage, int MaxIO) { super(MaxEnergyStorage, MaxIO); } @@ -36,10 +34,9 @@ public class TileTurretBaseEM extends TurretBase implements iElementalInstanceCo return "turretBaseEM"; } - @Override public int getBaseTier() { - return 6; + return 5; } @Override 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 index 72c79772af..f6211fac31 100644 --- a/src/main/java/com/github/technus/tectech/thing/tileEntity/TileTurretHeadEM.java +++ b/src/main/java/com/github/technus/tectech/thing/tileEntity/TileTurretHeadEM.java @@ -1,35 +1,24 @@ package com.github.technus.tectech.thing.tileEntity; import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStackMap; -import com.github.technus.tectech.elementalMatter.definitions.eLeptonDefinition; -import com.github.technus.tectech.thing.block.QuantumGlassBlock; -import com.github.technus.tectech.thing.block.QuantumGlassItem; +import com.github.technus.tectech.thing.item.DebugContainer_EM; import com.github.technus.tectech.thing.metaTileEntity.entity.projectileEM; -import gregtech.api.util.GT_Utility; import net.minecraft.entity.Entity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; -import openmodularturrets.entity.projectiles.LaserProjectile; import openmodularturrets.entity.projectiles.TurretProjectile; import openmodularturrets.handler.ConfigHandler; import openmodularturrets.tileentity.turrets.TurretHead; import openmodularturrets.util.TurretHeadUtil; -import java.lang.reflect.Field; - /** * Created by Bass on 27/07/2017. */ public class TileTurretHeadEM extends TurretHead{ - private cElementalInstanceStackMap consumedEM; + private cElementalInstanceStackMap hatchContentPointer; public TileTurretHeadEM() { - try { - GT_Utility.getField(this, "turretTier").setInt(this, 6); - }catch (IllegalAccessException e){ - e.printStackTrace(); - } } public int getTurretRange() { @@ -48,27 +37,31 @@ public class TileTurretHeadEM extends TurretHead{ 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 true; + return hatchContentPointer == null || !hatchContentPointer.hasStacks(); } public boolean requiresSpecificAmmo() { - return true; + return true;//to enable failure in shooting when there is no EM to use } public Item getAmmo() { - //consume em - consumedEM=new cElementalInstanceStackMap().putReplace(); - return QuantumGlassItem.INSTANCE; + 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(consumedEM!=null && consumedEM.hasStacks()){ - projectileEM projectile= new projectileEM(world, TurretHeadUtil.getTurretBase(worldObj, xCoord, yCoord, zCoord)); - consumedEM=null; + //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)); + //} + //return new LaserProjectile(world, TurretHeadUtil.getTurretBase(worldObj, xCoord, yCoord, zCoord)); } public String getLaunchSoundEffect() { |