aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/openmodularturrets/tileentity/turret
diff options
context:
space:
mode:
authorTechnus <daniel112092@gmail.com>2017-07-30 17:24:31 +0200
committerTechnus <daniel112092@gmail.com>2017-07-30 17:24:31 +0200
commit0409d4bccfc32d116612cb8a6a3d0e9e7790c895 (patch)
tree6452ee3a324737235842d783a8f9de1e2f5d922f /src/main/java/openmodularturrets/tileentity/turret
parent40145b83953f22feace2d7c09c128cdbdade4408 (diff)
downloadGT5-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')
-rw-r--r--src/main/java/openmodularturrets/tileentity/turret/TileTurretHeadEM.java67
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";
+ }
+}