aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com
diff options
context:
space:
mode:
authorTec <daniel112092@gmail.com>2018-05-06 14:58:02 +0200
committerTec <daniel112092@gmail.com>2018-05-06 14:58:02 +0200
commiteb760a8d0984709c22918180e8c5f9fa2f561914 (patch)
tree2d35ee1a0e96db761c173f0cf080483d4f710673 /src/main/java/com
parent26e5342ae016978a9b5cb83c7e9ebdf886e59add (diff)
downloadGT5-Unofficial-eb760a8d0984709c22918180e8c5f9fa2f561914.tar.gz
GT5-Unofficial-eb760a8d0984709c22918180e8c5f9fa2f561914.tar.bz2
GT5-Unofficial-eb760a8d0984709c22918180e8c5f9fa2f561914.zip
Fix security exception by refactoring package
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/TT_turret_loader.java23
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/blocks/turretbases/TurretBaseEM.java47
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/blocks/turretbases/TurretBaseItemEM.java34
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/blocks/turretheads/TurretHeadEM.java68
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/blocks/turretheads/TurretHeadItemEM.java45
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/blocks/turretheads/TurretHeadItemRenderEM.java40
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/blocks/turretheads/TurretHeadRenderEM.java8
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/entity/projectiles/projectileEM.java159
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/entity/projectiles/projectileRenderEM.java73
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/tileentity/turret/TileTurretHeadEM.java74
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/tileentity/turretbase/TileTurretBaseEM.java68
-rw-r--r--src/main/java/com/github/technus/tectech/loader/entity/EntityLoader.java2
-rw-r--r--src/main/java/com/github/technus/tectech/loader/thing/ThingsLoader.java4
-rw-r--r--src/main/java/com/github/technus/tectech/proxy/ClientProxy.java2
14 files changed, 643 insertions, 4 deletions
diff --git a/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/TT_turret_loader.java b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/TT_turret_loader.java
new file mode 100644
index 0000000000..2ab7a37ecd
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/TT_turret_loader.java
@@ -0,0 +1,23 @@
+package com.github.technus.tectech.compatibility.openmodularturrets;
+
+import com.github.technus.tectech.compatibility.openmodularturrets.blocks.turretheads.TurretHeadEM;
+import com.github.technus.tectech.compatibility.openmodularturrets.blocks.turretheads.TurretHeadItemRenderEM;
+import com.github.technus.tectech.compatibility.openmodularturrets.blocks.turretheads.TurretHeadRenderEM;
+import com.github.technus.tectech.compatibility.openmodularturrets.entity.projectiles.projectileEM;
+import com.github.technus.tectech.compatibility.openmodularturrets.entity.projectiles.projectileRenderEM;
+import cpw.mods.fml.client.registry.ClientRegistry;
+import cpw.mods.fml.client.registry.RenderingRegistry;
+import net.minecraft.item.Item;
+import net.minecraftforge.client.MinecraftForgeClient;
+import com.github.technus.tectech.compatibility.openmodularturrets.tileentity.turret.TileTurretHeadEM;
+
+public class TT_turret_loader implements Runnable {
+ @Override
+ public void run() {
+ TurretHeadRenderEM turretHeadRenderEM=new TurretHeadRenderEM();
+ ClientRegistry.bindTileEntitySpecialRenderer(TileTurretHeadEM.class, turretHeadRenderEM);
+ MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(TurretHeadEM.INSTANCE), new TurretHeadItemRenderEM(turretHeadRenderEM, new TileTurretHeadEM()));
+
+ RenderingRegistry.registerEntityRenderingHandler(projectileEM.class, new projectileRenderEM());
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/blocks/turretbases/TurretBaseEM.java b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/blocks/turretbases/TurretBaseEM.java
new file mode 100644
index 0000000000..10a5aba625
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/blocks/turretbases/TurretBaseEM.java
@@ -0,0 +1,47 @@
+package com.github.technus.tectech.compatibility.openmodularturrets.blocks.turretbases;
+
+import com.github.technus.tectech.Reference;
+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.handler.ConfigHandler;
+import com.github.technus.tectech.compatibility.openmodularturrets.tileentity.turretbase.TileTurretBaseEM;
+
+import static com.github.technus.tectech.loader.gui.CreativeTabTecTech.creativeTabTecTech;
+
+/**
+ * Created by Tec 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(){
+ setCreativeTab(creativeTabTecTech);
+ setResistance(16);
+ setBlockName("turretBaseEM");
+ setStepSound(Block.soundTypeMetal);
+ setBlockTextureName(Reference.MODID+":turretBaseEM");
+ }
+
+ @Override
+ public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
+ return new TileTurretBaseEM(MaxCharge,MaxIO);
+ }
+
+ @Override
+ public void registerBlockIcons(IIconRegister p_149651_1_) {
+ super.registerBlockIcons(p_149651_1_);
+ 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/compatibility/openmodularturrets/blocks/turretbases/TurretBaseItemEM.java b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/blocks/turretbases/TurretBaseItemEM.java
new file mode 100644
index 0000000000..af0be0e1f5
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/blocks/turretbases/TurretBaseItemEM.java
@@ -0,0 +1,34 @@
+package com.github.technus.tectech.compatibility.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 Tec on 28/07/2017.
+ */
+public class TurretBaseItemEM extends ItemBlock {
+ public TurretBaseItemEM(Block block) {
+ super(block);
+ }
+
+ @Override
+ public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List list, boolean p_77624_4_) {
+ list.add(CommonValues.TEC_MARK_EM);
+ 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/compatibility/openmodularturrets/blocks/turretheads/TurretHeadEM.java b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/blocks/turretheads/TurretHeadEM.java
new file mode 100644
index 0000000000..1e34af422e
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/blocks/turretheads/TurretHeadEM.java
@@ -0,0 +1,68 @@
+package com.github.technus.tectech.compatibility.openmodularturrets.blocks.turretheads;
+
+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 com.github.technus.tectech.compatibility.openmodularturrets.tileentity.turret.TileTurretHeadEM;
+import openmodularturrets.tileentity.turretbase.TurretBase;
+
+import static com.github.technus.tectech.loader.gui.CreativeTabTecTech.creativeTabTecTech;
+
+/**
+ * Created by Tec on 27/07/2017.
+ */
+public class TurretHeadEM extends Block implements ITileEntityProvider {
+ public static TurretHeadEM INSTANCE;
+
+ public TurretHeadEM(){
+ super(Material.glass);
+ setCreativeTab(creativeTabTecTech);
+ setBlockUnbreakable();
+ setResistance(6000000.0F);
+ setStepSound(Block.soundTypeMetal);
+ setBlockBounds(0.2F, 0.0F, 0.2F, 0.8F, 1F, 0.8F);
+ 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/com/github/technus/tectech/compatibility/openmodularturrets/blocks/turretheads/TurretHeadItemEM.java b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/blocks/turretheads/TurretHeadItemEM.java
new file mode 100644
index 0000000000..8aa598c440
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/blocks/turretheads/TurretHeadItemEM.java
@@ -0,0 +1,45 @@
+package com.github.technus.tectech.compatibility.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.TEC_MARK_EM;
+
+/**
+ * Created by Tec on 28/07/2017.
+ */
+public class TurretHeadItemEM extends ItemBlock {
+ private static final DecimalFormat df = new DecimalFormat("0.0");
+
+ public TurretHeadItemEM(Block block) {
+ super(block);
+ }
+
+ @Override
+ public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List list, boolean p_77624_4_) {
+ list.add(TEC_MARK_EM);
+ 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/compatibility/openmodularturrets/blocks/turretheads/TurretHeadItemRenderEM.java b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/blocks/turretheads/TurretHeadItemRenderEM.java
new file mode 100644
index 0000000000..ceca057900
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/blocks/turretheads/TurretHeadItemRenderEM.java
@@ -0,0 +1,40 @@
+package com.github.technus.tectech.compatibility.openmodularturrets.blocks.turretheads;
+
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.client.IItemRenderer;
+import openmodularturrets.client.render.models.ModelLaserTurret;
+import com.github.technus.tectech.compatibility.openmodularturrets.tileentity.turret.TileTurretHeadEM;
+import org.lwjgl.opengl.GL11;
+
+/**
+ * Created by Tec on 30.07.2017.
+ */
+public class TurretHeadItemRenderEM implements IItemRenderer {
+ private final TurretHeadRenderEM turretRenderer;
+ private final TileTurretHeadEM turretTileEntity;
+ private final ModelLaserTurret model;
+
+ public TurretHeadItemRenderEM(TurretHeadRenderEM turretRenderer, TileTurretHeadEM turretTileEntity) {
+ this.turretRenderer = turretRenderer;
+ this.turretTileEntity = turretTileEntity;
+ model = new ModelLaserTurret();
+ }
+
+ @Override
+ public boolean handleRenderType(ItemStack item, ItemRenderType type) {
+ return true;
+ }
+
+ @Override
+ public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
+ return true;
+ }
+
+ @Override
+ public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
+ GL11.glPushMatrix();
+ GL11.glTranslated(-0.5D, -0.5D, -0.5D);
+ turretRenderer.renderTileEntityAt(turretTileEntity, 0.0D, 0.0D, 0.0D, 0.0F);
+ GL11.glPopMatrix();
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/blocks/turretheads/TurretHeadRenderEM.java b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/blocks/turretheads/TurretHeadRenderEM.java
new file mode 100644
index 0000000000..f407257eab
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/blocks/turretheads/TurretHeadRenderEM.java
@@ -0,0 +1,8 @@
+package com.github.technus.tectech.compatibility.openmodularturrets.blocks.turretheads;
+
+import openmodularturrets.client.render.renderers.blockitem.LaserTurretRenderer;
+
+/**
+ * Created by Tec on 28/07/2017.
+ */
+public class TurretHeadRenderEM extends LaserTurretRenderer {}
diff --git a/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/entity/projectiles/projectileEM.java b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/entity/projectiles/projectileEM.java
new file mode 100644
index 0000000000..c22c6c4b95
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/entity/projectiles/projectileEM.java
@@ -0,0 +1,159 @@
+package com.github.technus.tectech.compatibility.openmodularturrets.entity.projectiles;
+
+import com.github.technus.tectech.TecTech;
+import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
+import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalInstanceStack;
+import com.github.technus.tectech.mechanics.elementalMatter.definitions.complex.hadron.dHadronDefinition;
+import com.github.technus.tectech.mechanics.elementalMatter.definitions.primitive.eQuarkDefinition;
+import gregtech.api.GregTech_API;
+import gregtech.api.util.GT_Utility;
+import net.minecraft.block.Block;
+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.damagesources.NormalDamageSource;
+import openmodularturrets.handler.ConfigHandler;
+import openmodularturrets.tileentity.turretbase.TurretBase;
+import openmodularturrets.util.PlayerUtil;
+import openmodularturrets.util.TurretHeadUtil;
+
+
+/**
+ * Created by Bass on 27/07/2017.
+ */
+public class projectileEM extends LaserProjectile {
+ public float gravity=0;
+ private TurretBase turretBase;
+
+ private boolean exotic, antiMatter,isAmped;
+
+ private int ampLevel;
+
+ private float massFactor;
+
+ public projectileEM(World par1World) {
+ super(par1World);
+ }
+
+ public projectileEM(World par1World, TurretBase turretBase) {
+ super(par1World, turretBase);
+ int amp=TurretHeadUtil.getAmpLevel(turretBase);
+ if (amp > 0) {
+ this.isAmped = true;
+ this.ampLevel = amp;
+ }
+ }
+
+ public projectileEM(World par1World, TurretBase turretBase, cElementalInstanceStackMap avalableEM) {
+ super(par1World, turretBase);
+ this.turretBase = turretBase;
+ boolean onlyQuarks=true;
+ if(avalableEM!=null && avalableEM.hasStacks()) {
+ for (cElementalInstanceStack stack : avalableEM.values()) {
+ if (!(stack.definition instanceof eQuarkDefinition)) {
+ onlyQuarks = false;
+ }
+ }
+ if (onlyQuarks) {
+ avalableEM.clear();
+ } else {
+ cElementalInstanceStack consumeFromThis=avalableEM.get(TecTech.RANDOM.nextInt(avalableEM.size()));
+ massFactor =consumeFromThis.definition.getMass()/ dHadronDefinition.hadron_n_.getMass();
+
+ if(consumeFromThis.definition.getType()>1 || consumeFromThis.definition.getType()<-1) {
+ exotic = true;
+ }
+ if(consumeFromThis.definition.getType()<0) {
+ antiMatter = true;
+ }
+
+ if (consumeFromThis.definition.getCharge() == 0) {
+ gravity = massFactor / 100f;
+ } else {
+ gravity = Math.min(0.0025F / Math.abs(consumeFromThis.definition.getCharge()), massFactor / 100f);
+ }
+
+ avalableEM.removeAmount(false,consumeFromThis.definition.getStackForm(1));
+ }
+ }
+ //todo make the recipe require some overflow hatches
+
+ //todo add more subspace pollution
+ }
+
+ @Override
+ protected void onImpact(MovingObjectPosition movingobjectposition) {
+ if(ticksExisted > 1) {
+ if(movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) {
+ Block hitBlock = worldObj.getBlock(movingobjectposition.blockX, movingobjectposition.blockY, movingobjectposition.blockZ);
+ if(hitBlock != null){
+ if (hitBlock.getMaterial().isSolid() && TecTech.configTecTech.ENABLE_TURRET_EXPLOSIONS && antiMatter) {
+ worldObj.playSoundEffect(posX, posY, posZ, "openmodularturrets:laserHit", ConfigHandler.getTurretSoundVolume(), TecTech.RANDOM.nextFloat() + 0.5F);
+ GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(209), 1.0F, -1.0F,
+ movingobjectposition.blockX,
+ movingobjectposition.blockY,
+ movingobjectposition.blockZ);
+ worldObj.createExplosion(null,
+ movingobjectposition.blockX + 0.5D,
+ movingobjectposition.blockY + 0.5D,
+ movingobjectposition.blockZ + 0.5D, (exotic?10:1) * TecTech.configTecTech.TURRET_EXPLOSION_FACTOR * massFactor * (isAmped? ampLevel*.1f +1:1) * (ticksExisted/250f), true);
+ } else {
+ return;
+ }
+ }
+ }
+
+ if(movingobjectposition.entityHit != null && !worldObj.isRemote) {
+ worldObj.playSoundEffect(posX, posY, posZ, "openmodularturrets:laserHit", ConfigHandler.getTurretSoundVolume(), TecTech.RANDOM.nextFloat() + 0.5F);
+ if(movingobjectposition.entityHit != null && !worldObj.isRemote) {
+ float damage = (exotic?10:1) * TecTech.configTecTech.TURRET_DAMAGE_FACTOR * massFactor * (isAmped? ampLevel*.1f +1:1);
+
+ if(movingobjectposition.entityHit instanceof EntityPlayer) {
+ if(canDamagePlayer((EntityPlayer)movingobjectposition.entityHit)) {
+ movingobjectposition.entityHit.setFire((exotic?10:1)*2);
+ movingobjectposition.entityHit.attackEntityFrom(new NormalDamageSource("laser"), damage);
+ if(antiMatter) {
+ movingobjectposition.entityHit.hurtResistantTime = 0;
+ }
+ }
+ } else {
+ movingobjectposition.entityHit.setFire((exotic?10:1)*2);
+ movingobjectposition.entityHit.attackEntityFrom(new NormalDamageSource("laser"), damage);
+ if(antiMatter) {
+ movingobjectposition.entityHit.hurtResistantTime = 0;
+ }
+ }
+
+ if (TecTech.configTecTech.ENABLE_TURRET_EXPLOSIONS && antiMatter) {
+ GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(209), 1.0F, -1.0F,
+ (int)movingobjectposition.entityHit.posX,
+ (int)movingobjectposition.entityHit.posY,
+ (int)movingobjectposition.entityHit.posZ);
+ worldObj.createExplosion(null,
+ movingobjectposition.entityHit.posX,
+ movingobjectposition.entityHit.posY,
+ movingobjectposition.entityHit.posZ, (exotic?10:1) * TecTech.configTecTech.TURRET_EXPLOSION_FACTOR * massFactor * (isAmped? ampLevel*.1f +1:1) * (ticksExisted/250f), true);
+ }
+ }
+ }
+ setDead();
+ }
+ }
+
+ public boolean canDamagePlayer(EntityPlayer entityPlayer) {
+ return ConfigHandler.turretDamageTrustedPlayers || this.turretBase.getTrustedPlayer(entityPlayer.getUniqueID()) == null && !PlayerUtil.getPlayerUIDUnstable(this.turretBase.getOwner()).equals(entityPlayer.getUniqueID());
+ }
+
+ @Override
+ public void onEntityUpdate() {
+ if(ticksExisted >= 75) {
+ setDead();
+ }
+ }
+
+ @Override
+ protected float getGravityVelocity() {
+ return gravity;
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/entity/projectiles/projectileRenderEM.java b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/entity/projectiles/projectileRenderEM.java
new file mode 100644
index 0000000000..812a752562
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/entity/projectiles/projectileRenderEM.java
@@ -0,0 +1,73 @@
+package com.github.technus.tectech.compatibility.openmodularturrets.entity.projectiles;
+
+import com.github.technus.tectech.Reference;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import net.minecraft.client.renderer.OpenGlHelper;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.client.renderer.entity.Render;
+import net.minecraft.entity.Entity;
+import net.minecraft.util.MathHelper;
+import net.minecraft.util.ResourceLocation;
+import org.lwjgl.opengl.GL11;
+
+/**
+ * Created by Tec on 29.07.2017.
+ */
+@SideOnly(Side.CLIENT)
+public class projectileRenderEM extends Render {
+ private static final ResourceLocation textures = new ResourceLocation(Reference.MODID + ":textures/entity/projectileEM.png");
+
+ private void render(projectileEM entity, double par2, double par4, double par6, float par9) {
+ bindEntityTexture(entity);
+ GL11.glPushMatrix();
+ GL11.glTranslatef((float)par2, (float)par4 + 0.3F, (float)par6);
+ GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * par9 - 90.0F, 0.0F, 1.0F, 0.0F);
+ GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * par9, 0.0F, 0.0F, 1.0F);
+ Tessellator var18 = Tessellator.instance;
+ byte b0 = 0;
+ float f2 = 0.0F;
+ float f3 = 0.5F;
+ float f4 = (float)(b0 * 10) / 32.0F;
+ float f5 = (float)(5 + b0 * 10) / 32.0F;
+ float f10 = 0.05625F;
+ GL11.glEnable('\u803a');
+ float f11 = - par9;
+ if(f11 > 0.0F) {
+ float f = -MathHelper.sin(f11 * 3.0F) * f11;
+ GL11.glRotatef(f, 0.0F, 0.0F, 1.0F);
+ }
+
+ GL11.glDisable(2896);
+ OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240.0F, 240.0F);
+ GL11.glRotatef(45.0F, 1.0F, 0.0F, 0.0F);
+ GL11.glScalef(f10, f10, f10);
+ GL11.glTranslatef(0.0F, 0.0F, 0.0F);
+ GL11.glNormal3f(f10, 0.0F, 0.0F);
+
+ for(int var19 = 0; var19 < 4; ++var19) {
+ GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
+ GL11.glNormal3f(0.0F, 0.0F, f10);
+ var18.startDrawingQuads();
+ var18.addVertexWithUV(-16.0D, -2.0D, 0.0D, (double)f2, (double)f4);
+ var18.addVertexWithUV(16.0D, -2.0D, 0.0D, (double)f3, (double)f4);
+ var18.addVertexWithUV(16.0D, 2.0D, 0.0D, (double)f3, (double)f5);
+ var18.addVertexWithUV(-16.0D, 2.0D, 0.0D, (double)f2, (double)f5);
+ var18.draw();
+ }
+
+ GL11.glEnable(2896);
+ GL11.glDisable('\u803a');
+ GL11.glPopMatrix();
+ }
+
+ @Override
+ protected ResourceLocation getEntityTexture(Entity par1Entity) {
+ return textures;
+ }
+
+ @Override
+ public void doRender(Entity par1Entity, double par2, double par4, double par6, float par8, float par9) {
+ render((projectileEM)par1Entity, par2, par4, par6, par9);
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/tileentity/turret/TileTurretHeadEM.java b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/tileentity/turret/TileTurretHeadEM.java
new file mode 100644
index 0000000000..2de6b39c4c
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/tileentity/turret/TileTurretHeadEM.java
@@ -0,0 +1,74 @@
+package com.github.technus.tectech.compatibility.openmodularturrets.tileentity.turret;
+
+import com.github.technus.tectech.compatibility.openmodularturrets.entity.projectiles.projectileEM;
+import com.github.technus.tectech.compatibility.openmodularturrets.tileentity.turretbase.TileTurretBaseEM;
+import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
+import com.github.technus.tectech.thing.item.DebugElementalInstanceContainer_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.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;
+
+ @Override
+ public int getTurretRange() {
+ return ConfigHandler.getLaserTurretSettings().getRange()<<1;
+ }
+
+ @Override
+ public int getTurretPowerUsage() {
+ return ConfigHandler.getLaserTurretSettings().getPowerUsage()<<4;
+ }
+
+ @Override
+ public int getTurretFireRate() {
+ return (int)Math.ceil(ConfigHandler.getLaserTurretSettings().getFireRate()/2f);
+ }
+
+ @Override
+ 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();
+ }
+
+ @Override
+ public boolean requiresAmmo() {
+ return hatchContentPointer == null || !hatchContentPointer.hasStacks();
+ }
+
+ @Override
+ public boolean requiresSpecificAmmo() {
+ return true;//to enable failure in shooting when there is no EM to use
+ }
+
+ @Override
+ public Item getAmmo() {
+ return DebugElementalInstanceContainer_EM.INSTANCE;//Placeholder item that cannot be achieved, yet still usable for debug
+ }
+
+ @Override
+ public final TurretProjectile createProjectile(World world, Entity target, ItemStack ammo) {
+ return new projectileEM(world, TurretHeadUtil.getTurretBase(worldObj, xCoord, yCoord, zCoord), hatchContentPointer);
+ }
+
+ @Override
+ public String getLaunchSoundEffect() {
+ return "laser";
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/tileentity/turretbase/TileTurretBaseEM.java b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/tileentity/turretbase/TileTurretBaseEM.java
new file mode 100644
index 0000000000..a31ba4ef2c
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/compatibility/openmodularturrets/tileentity/turretbase/TileTurretBaseEM.java
@@ -0,0 +1,68 @@
+package com.github.technus.tectech.compatibility.openmodularturrets.tileentity.turretbase;
+
+import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInstanceStackMap;
+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 {
+ public TileTurretBaseEM(int MaxEnergyStorage, int MaxIO) {
+ super(MaxEnergyStorage, MaxIO);
+ }
+
+ @Override
+ @Optional.Method(
+ modid = "OpenComputers"
+ )
+ public String getComponentName() {
+ return "turretBaseEM";
+ }
+
+ public final cElementalInstanceStackMap getContainerHandler() {
+ World worldIn = getWorldObj();
+ TileEntity te;
+ if ((te = worldIn.getTileEntity(xCoord + 1, yCoord, zCoord)) instanceof IGregTechTileEntity &&
+ ((IGregTechTileEntity) te).getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_InputElemental) {
+ return getFromHatch((GT_MetaTileEntity_Hatch_InputElemental) ((IGregTechTileEntity) te).getMetaTileEntity());
+ }
+
+ if ((te = worldIn.getTileEntity(xCoord - 1, yCoord, zCoord)) instanceof IGregTechTileEntity &&
+ ((IGregTechTileEntity) te).getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_InputElemental) {
+ return getFromHatch((GT_MetaTileEntity_Hatch_InputElemental) ((IGregTechTileEntity) te).getMetaTileEntity());
+ }
+
+ if ((te = worldIn.getTileEntity(xCoord, yCoord + 1, zCoord)) instanceof IGregTechTileEntity &&
+ ((IGregTechTileEntity) te).getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_InputElemental) {
+ return getFromHatch((GT_MetaTileEntity_Hatch_InputElemental) ((IGregTechTileEntity) te).getMetaTileEntity());
+ }
+
+ if ((te = worldIn.getTileEntity(xCoord, yCoord - 1, zCoord)) instanceof IGregTechTileEntity &&
+ ((IGregTechTileEntity) te).getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_InputElemental) {
+ return getFromHatch((GT_MetaTileEntity_Hatch_InputElemental) ((IGregTechTileEntity) te).getMetaTileEntity());
+ }
+
+ if ((te = worldIn.getTileEntity(xCoord, yCoord, zCoord + 1)) instanceof IGregTechTileEntity &&
+ ((IGregTechTileEntity) te).getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_InputElemental) {
+ return getFromHatch((GT_MetaTileEntity_Hatch_InputElemental) ((IGregTechTileEntity) te).getMetaTileEntity());
+ }
+
+ if ((te = worldIn.getTileEntity(xCoord, yCoord, zCoord - 1)) instanceof IGregTechTileEntity &&
+ ((IGregTechTileEntity) te).getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_InputElemental) {
+ return getFromHatch((GT_MetaTileEntity_Hatch_InputElemental) ((IGregTechTileEntity) te).getMetaTileEntity());
+ }
+
+ return null;
+ }
+
+ private cElementalInstanceStackMap getFromHatch(GT_MetaTileEntity_Hatch_InputElemental hatch) {
+ hatch.updateTexture((byte) 8,(byte) 4);
+ return hatch.getContainerHandler();
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/loader/entity/EntityLoader.java b/src/main/java/com/github/technus/tectech/loader/entity/EntityLoader.java
index d2d6332ef3..db352adce3 100644
--- a/src/main/java/com/github/technus/tectech/loader/entity/EntityLoader.java
+++ b/src/main/java/com/github/technus/tectech/loader/entity/EntityLoader.java
@@ -3,7 +3,7 @@ package com.github.technus.tectech.loader.entity;
import com.github.technus.tectech.TecTech;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.registry.EntityRegistry;
-import openmodularturrets.entity.projectiles.projectileEM;
+import com.github.technus.tectech.compatibility.openmodularturrets.entity.projectiles.projectileEM;
/**
* Created by Tec on 30.07.2017.
diff --git a/src/main/java/com/github/technus/tectech/loader/thing/ThingsLoader.java b/src/main/java/com/github/technus/tectech/loader/thing/ThingsLoader.java
index c5406a2206..6293d70ae1 100644
--- a/src/main/java/com/github/technus/tectech/loader/thing/ThingsLoader.java
+++ b/src/main/java/com/github/technus/tectech/loader/thing/ThingsLoader.java
@@ -13,8 +13,8 @@ import com.github.technus.tectech.thing.item.*;
import cpw.mods.fml.common.Loader;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
-import openmodularturrets.blocks.turretbases.TurretBaseEM;
-import openmodularturrets.blocks.turretheads.TurretHeadEM;
+import com.github.technus.tectech.compatibility.openmodularturrets.blocks.turretbases.TurretBaseEM;
+import com.github.technus.tectech.compatibility.openmodularturrets.blocks.turretheads.TurretHeadEM;
import static com.github.technus.tectech.TecTech.tectechTexturePage1;
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 1eea24edae..b936de00fc 100644
--- a/src/main/java/com/github/technus/tectech/proxy/ClientProxy.java
+++ b/src/main/java/com/github/technus/tectech/proxy/ClientProxy.java
@@ -22,7 +22,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.ChatComponentText;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
-import openmodularturrets.TT_turret_loader;
+import com.github.technus.tectech.compatibility.openmodularturrets.TT_turret_loader;
import org.lwjgl.opengl.GL11;
public class ClientProxy extends CommonProxy {