diff options
author | Technus <daniel112092@gmail.com> | 2017-07-30 17:24:31 +0200 |
---|---|---|
committer | Technus <daniel112092@gmail.com> | 2017-07-30 17:24:31 +0200 |
commit | 0409d4bccfc32d116612cb8a6a3d0e9e7790c895 (patch) | |
tree | 6452ee3a324737235842d783a8f9de1e2f5d922f /src/main/java/openmodularturrets/tileentity/turret/TileTurretHeadEM.java | |
parent | 40145b83953f22feace2d7c09c128cdbdade4408 (diff) | |
download | GT5-Unofficial-0409d4bccfc32d116612cb8a6a3d0e9e7790c895.tar.gz GT5-Unofficial-0409d4bccfc32d116612cb8a6a3d0e9e7790c895.tar.bz2 GT5-Unofficial-0409d4bccfc32d116612cb8a6a3d0e9e7790c895.zip |
Refactor turret to gain accees to package private things...
Also fixes projectile and adds most of the mechanics to it.
Diffstat (limited to 'src/main/java/openmodularturrets/tileentity/turret/TileTurretHeadEM.java')
-rw-r--r-- | src/main/java/openmodularturrets/tileentity/turret/TileTurretHeadEM.java | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/main/java/openmodularturrets/tileentity/turret/TileTurretHeadEM.java b/src/main/java/openmodularturrets/tileentity/turret/TileTurretHeadEM.java new file mode 100644 index 0000000000..277d692f47 --- /dev/null +++ b/src/main/java/openmodularturrets/tileentity/turret/TileTurretHeadEM.java @@ -0,0 +1,67 @@ +package openmodularturrets.tileentity.turret; + +import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStackMap; +import com.github.technus.tectech.thing.item.DebugContainer_EM; +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.entity.projectiles.projectileEM; +import openmodularturrets.handler.ConfigHandler; +import openmodularturrets.tileentity.turretbase.TileTurretBaseEM; +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()<<1; + } + + public int getTurretPowerUsage() { + return ConfigHandler.getLaserTurretSettings().getPowerUsage()<<4; + } + + public int getTurretFireRate() { + return (int)Math.ceil(ConfigHandler.getLaserTurretSettings().getFireRate()/2f); + } + + public double getTurretAccuracy() { + return (int)Math.ceil(ConfigHandler.getLaserTurretSettings().getAccuracy() / 10.0F); + } + + @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 final TurretProjectile createProjectile(World world, Entity target, ItemStack ammo) { + return new projectileEM(world, TurretHeadUtil.getTurretBase(worldObj, xCoord, yCoord, zCoord), hatchContentPointer); + } + + public String getLaunchSoundEffect() { + return "laser"; + } +} |