Skip to content

Commit

Permalink
improve targeting by reworking onImpact for projectiles (#8)
Browse files Browse the repository at this point in the history
  • Loading branch information
Keridos authored Jan 4, 2025
1 parent 5081639 commit a8f1200
Show file tree
Hide file tree
Showing 6 changed files with 21 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import openmodularturrets.ModularTurrets;
import openmodularturrets.tileentity.turretbase.TurretBase;

abstract class BlockAbstractTurretHead extends Block implements ITileEntityProvider {
public abstract class BlockAbstractTurretHead extends Block implements ITileEntityProvider {

private static final AxisAlignedBB boundingBox = AxisAlignedBB.getBoundingBox(0.2F, 0.2F, 0.2F, 0.8F, 0.8F, 0.8F);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;

import openmodularturrets.blocks.turretheads.BlockAbstractTurretHead;
import openmodularturrets.entity.projectiles.damagesources.NormalDamageSource;
import openmodularturrets.handler.ConfigHandler;
import openmodularturrets.tileentity.turretbase.TurretBase;
Expand All @@ -36,14 +37,12 @@ public void onEntityUpdate() {

@Override
protected void onImpact(MovingObjectPosition movingobjectposition) {
if (this.ticksExisted <= 1) {
return;
}
if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) {
Block hitBlock = worldObj
.getBlock(movingobjectposition.blockX, movingobjectposition.blockY, movingobjectposition.blockZ);
if (hitBlock != null && !hitBlock.getMaterial().isSolid()) {
// Go through non solid block
if (hitBlock != null
&& (!hitBlock.getMaterial().isSolid() || hitBlock instanceof BlockAbstractTurretHead)) {
// Go through non-solid block or turrets
return;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;

import openmodularturrets.blocks.turretheads.BlockAbstractTurretHead;
import openmodularturrets.entity.projectiles.damagesources.NormalDamageSource;
import openmodularturrets.handler.ConfigHandler;
import openmodularturrets.tileentity.turretbase.TurretBase;
Expand All @@ -34,14 +35,12 @@ public void onEntityUpdate() {

@Override
protected void onImpact(MovingObjectPosition movingobjectposition) {
if (this.ticksExisted <= 1) {
return;
}
if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) {
Block hitBlock = worldObj
.getBlock(movingobjectposition.blockX, movingobjectposition.blockY, movingobjectposition.blockZ);
if (hitBlock != null && !hitBlock.getMaterial().isSolid()) {
// Go through non solid block
if (hitBlock != null
&& (!hitBlock.getMaterial().isSolid() || hitBlock instanceof BlockAbstractTurretHead)) {
// Go through non-solid block or turrets
return;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;

import openmodularturrets.blocks.turretheads.BlockAbstractTurretHead;
import openmodularturrets.entity.projectiles.damagesources.NormalDamageSource;
import openmodularturrets.handler.ConfigHandler;
import openmodularturrets.tileentity.turretbase.TurretBase;
Expand Down Expand Up @@ -46,14 +47,12 @@ public void onEntityUpdate() {

@Override
protected void onImpact(MovingObjectPosition movingobjectposition) {
if (this.ticksExisted <= 2) {
return;
}
if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) {
Block hitBlock = worldObj
.getBlock(movingobjectposition.blockX, movingobjectposition.blockY, movingobjectposition.blockZ);
if (hitBlock != null && !hitBlock.getMaterial().isSolid()) {
// Go through non solid block
if (hitBlock != null
&& (!hitBlock.getMaterial().isSolid() || hitBlock instanceof BlockAbstractTurretHead)) {
// Go through non-solid block or turrets
return;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;

import openmodularturrets.blocks.turretheads.BlockAbstractTurretHead;
import openmodularturrets.entity.projectiles.damagesources.ArmorBypassDamageSource;
import openmodularturrets.handler.ConfigHandler;
import openmodularturrets.tileentity.turretbase.TurretBase;
Expand All @@ -34,14 +35,12 @@ public void onEntityUpdate() {

@Override
protected void onImpact(MovingObjectPosition movingobjectposition) {
if (this.ticksExisted <= 1) {
return;
}
if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) {
Block hitBlock = worldObj
.getBlock(movingobjectposition.blockX, movingobjectposition.blockY, movingobjectposition.blockZ);
if (hitBlock != null && !hitBlock.getMaterial().isSolid()) {
// Go through non solid block
if (hitBlock != null
&& (!hitBlock.getMaterial().isSolid() || hitBlock instanceof BlockAbstractTurretHead)) {
// Go through non-solid block or turrets
return;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;

import openmodularturrets.blocks.turretheads.BlockAbstractTurretHead;
import openmodularturrets.entity.projectiles.damagesources.NormalDamageSource;
import openmodularturrets.handler.ConfigHandler;
import openmodularturrets.tileentity.turretbase.TurretBase;
Expand Down Expand Up @@ -41,14 +42,12 @@ public void onEntityUpdate() {

@Override
protected void onImpact(MovingObjectPosition movingobjectposition) {
if (this.ticksExisted <= 1) {
return;
}
if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) {
Block hitBlock = worldObj
.getBlock(movingobjectposition.blockX, movingobjectposition.blockY, movingobjectposition.blockZ);
if (hitBlock != null && !hitBlock.getMaterial().isSolid()) {
// Go through non solid block
if (hitBlock != null
&& (!hitBlock.getMaterial().isSolid() || hitBlock instanceof BlockAbstractTurretHead)) {
// Go through non-solid block or turrets
return;
}
}
Expand Down

0 comments on commit a8f1200

Please sign in to comment.