From cef5fbecf2f2d601c70f3f223d18416999814671 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 6 Aug 2020 15:45:26 +0200 Subject: [PATCH] Updated radar with better base class, implemented IRadarDetectable --- .../java/api/hbm/energy/IRadarDetectable.java | 3 +- .../missile/EntityMissileAntiBallistic.java | 8 +- .../entity/missile/EntityMissileBHole.java | 4 +- .../missile/EntityMissileBaseAdvanced.java | 5 +- .../missile/EntityMissileBunkerBuster.java | 4 +- .../entity/missile/EntityMissileBurst.java | 5 +- .../missile/EntityMissileBusterStrong.java | 5 +- .../entity/missile/EntityMissileCluster.java | 5 +- .../missile/EntityMissileClusterStrong.java | 5 +- .../entity/missile/EntityMissileDoomsday.java | 7 +- .../entity/missile/EntityMissileDrill.java | 5 +- .../hbm/entity/missile/EntityMissileEMP.java | 6 +- .../missile/EntityMissileEMPStrong.java | 5 +- .../hbm/entity/missile/EntityMissileEndo.java | 5 +- .../hbm/entity/missile/EntityMissileExo.java | 5 +- .../entity/missile/EntityMissileGeneric.java | 5 +- .../missile/EntityMissileIncendiary.java | 6 +- .../EntityMissileIncendiaryStrong.java | 5 +- .../entity/missile/EntityMissileInferno.java | 5 +- .../entity/missile/EntityMissileMicro.java | 6 +- .../hbm/entity/missile/EntityMissileMirv.java | 5 +- .../entity/missile/EntityMissileNuclear.java | 6 +- .../hbm/entity/missile/EntityMissileRain.java | 5 +- .../missile/EntityMissileSchrabidium.java | 6 +- .../entity/missile/EntityMissileStrong.java | 6 +- .../entity/missile/EntityMissileTaint.java | 5 +- .../java/com/hbm/interfaces/Untested.java | 3 + .../inventory/gui/GUIScreenSatInterface.java | 5 +- .../machine/TileEntityMachineRadar.java | 120 ++++++++++-------- 29 files changed, 150 insertions(+), 115 deletions(-) create mode 100644 src/main/java/com/hbm/interfaces/Untested.java diff --git a/src/main/java/api/hbm/energy/IRadarDetectable.java b/src/main/java/api/hbm/energy/IRadarDetectable.java index e0449d664..18d6cda22 100644 --- a/src/main/java/api/hbm/energy/IRadarDetectable.java +++ b/src/main/java/api/hbm/energy/IRadarDetectable.java @@ -13,8 +13,9 @@ public interface IRadarDetectable { MISSILE_15, //size 15 custom missiles MISSILE_15_20, //size 15/20 custom missiles MISSILE_20, //size 20 custom missiles + MISSILE_AB, //anti ballistic missile PLAYER, //airborne players } - //TODO: rewrite the crappy radaar TE code and implement the API + public RadarTargetType getTargetType(); } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java index e5b1f04c4..8896b2972 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.entity.particle.EntitySmokeFX; import com.hbm.explosion.ExplosionLarge; +import api.hbm.energy.IRadarDetectable; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; @@ -15,7 +16,7 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class EntityMissileAntiBallistic extends Entity { +public class EntityMissileAntiBallistic extends Entity implements IRadarDetectable { int activationTimer; @@ -157,4 +158,9 @@ public class EntityMissileAntiBallistic extends Entity { return distance < 500000; } + @Override + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_AB; + } + } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBHole.java b/src/main/java/com/hbm/entity/missile/EntityMissileBHole.java index 8641d9fc6..dcc595d05 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBHole.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBHole.java @@ -52,8 +52,8 @@ public class EntityMissileBHole extends EntityMissileBaseAdvanced { } @Override - public int getMissileType() { - return 0; + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER0; } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java index b42d21165..199f68891 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java @@ -10,6 +10,7 @@ import com.hbm.packet.AuxParticlePacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.TileEntityMachineRadar; +import api.hbm.energy.IRadarDetectable; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -26,7 +27,7 @@ import net.minecraftforge.common.ForgeChunkManager; import net.minecraftforge.common.ForgeChunkManager.Ticket; import net.minecraftforge.common.ForgeChunkManager.Type; -public abstract class EntityMissileBaseAdvanced extends Entity implements IChunkLoader { +public abstract class EntityMissileBaseAdvanced extends Entity implements IChunkLoader, IRadarDetectable { int startX; int startZ; @@ -261,8 +262,6 @@ public abstract class EntityMissileBaseAdvanced extends Entity implements IChunk public abstract void onImpact(); - public abstract int getMissileType(); - public abstract List getDebris(); public abstract ItemStack getDebrisRareDrop(); diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBunkerBuster.java b/src/main/java/com/hbm/entity/missile/EntityMissileBunkerBuster.java index c635945a1..b23a22063 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBunkerBuster.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBunkerBuster.java @@ -48,8 +48,8 @@ public class EntityMissileBunkerBuster extends EntityMissileBaseAdvanced { } @Override - public int getMissileType() { - return 0; + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER1; } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBurst.java b/src/main/java/com/hbm/entity/missile/EntityMissileBurst.java index 6de31361f..332d1d1c4 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBurst.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBurst.java @@ -6,6 +6,7 @@ import java.util.List; import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; +import api.hbm.energy.IRadarDetectable.RadarTargetType; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -44,7 +45,7 @@ public class EntityMissileBurst extends EntityMissileBaseAdvanced { } @Override - public int getMissileType() { - return 2; + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER3; } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBusterStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileBusterStrong.java index cb92736e6..b8c45e154 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBusterStrong.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBusterStrong.java @@ -6,6 +6,7 @@ import java.util.List; import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; +import api.hbm.energy.IRadarDetectable.RadarTargetType; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -48,7 +49,7 @@ public class EntityMissileBusterStrong extends EntityMissileBaseAdvanced { } @Override - public int getMissileType() { - return 1; + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER2; } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileCluster.java b/src/main/java/com/hbm/entity/missile/EntityMissileCluster.java index 88b9e9e0a..dd6813dc8 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileCluster.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileCluster.java @@ -6,6 +6,7 @@ import java.util.List; import com.hbm.explosion.ExplosionChaos; import com.hbm.items.ModItems; +import api.hbm.energy.IRadarDetectable.RadarTargetType; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -48,7 +49,7 @@ public class EntityMissileCluster extends EntityMissileBaseAdvanced { } @Override - public int getMissileType() { - return 0; + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER1; } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileClusterStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileClusterStrong.java index 21243f9b8..fc7db53f2 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileClusterStrong.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileClusterStrong.java @@ -6,6 +6,7 @@ import java.util.List; import com.hbm.explosion.ExplosionChaos; import com.hbm.items.ModItems; +import api.hbm.energy.IRadarDetectable.RadarTargetType; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -49,7 +50,7 @@ public class EntityMissileClusterStrong extends EntityMissileBaseAdvanced { } @Override - public int getMissileType() { - return 1; + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER2; } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java b/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java index fece03e6d..26a26fc00 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java @@ -3,6 +3,8 @@ package com.hbm.entity.missile; import java.util.List; import com.hbm.explosion.ExplosionLarge; + +import api.hbm.energy.IRadarDetectable.RadarTargetType; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -104,8 +106,7 @@ public class EntityMissileDoomsday extends EntityMissileBaseAdvanced { } @Override - public int getMissileType() { - return 3; + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER4; } - } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileDrill.java b/src/main/java/com/hbm/entity/missile/EntityMissileDrill.java index b75e75a43..70204e9b4 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileDrill.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileDrill.java @@ -6,6 +6,7 @@ import java.util.List; import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; +import api.hbm.energy.IRadarDetectable.RadarTargetType; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -48,7 +49,7 @@ public class EntityMissileDrill extends EntityMissileBaseAdvanced { } @Override - public int getMissileType() { - return 2; + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER3; } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileEMP.java b/src/main/java/com/hbm/entity/missile/EntityMissileEMP.java index df893bd7a..d3a0da460 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileEMP.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileEMP.java @@ -8,6 +8,7 @@ import com.hbm.entity.effect.EntityEMPBlast; import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.items.ModItems; +import api.hbm.energy.IRadarDetectable.RadarTargetType; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -53,8 +54,7 @@ public class EntityMissileEMP extends EntityMissileBaseAdvanced { } @Override - public int getMissileType() { - return 0; + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER0; } - } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileEMPStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileEMPStrong.java index 413d5710f..11961763d 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileEMPStrong.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileEMPStrong.java @@ -6,6 +6,7 @@ import java.util.List; import com.hbm.entity.logic.EntityEMP; import com.hbm.items.ModItems; +import api.hbm.energy.IRadarDetectable.RadarTargetType; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -48,7 +49,7 @@ public class EntityMissileEMPStrong extends EntityMissileBaseAdvanced { } @Override - public int getMissileType() { - return 1; + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER2; } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileEndo.java b/src/main/java/com/hbm/entity/missile/EntityMissileEndo.java index 2f0f01bcd..c898017b7 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileEndo.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileEndo.java @@ -6,6 +6,7 @@ import java.util.List; import com.hbm.explosion.ExplosionThermo; import com.hbm.items.ModItems; +import api.hbm.energy.IRadarDetectable.RadarTargetType; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -45,7 +46,7 @@ public class EntityMissileEndo extends EntityMissileBaseAdvanced { } @Override - public int getMissileType() { - return 3; + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER3; } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileExo.java b/src/main/java/com/hbm/entity/missile/EntityMissileExo.java index 244dd06d6..701f33d81 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileExo.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileExo.java @@ -6,6 +6,7 @@ import java.util.List; import com.hbm.explosion.ExplosionThermo; import com.hbm.items.ModItems; +import api.hbm.energy.IRadarDetectable.RadarTargetType; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -45,7 +46,7 @@ public class EntityMissileExo extends EntityMissileBaseAdvanced { } @Override - public int getMissileType() { - return 3; + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER3; } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileGeneric.java b/src/main/java/com/hbm/entity/missile/EntityMissileGeneric.java index fc5168d00..55fef40fb 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileGeneric.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileGeneric.java @@ -6,6 +6,7 @@ import java.util.List; import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; +import api.hbm.energy.IRadarDetectable.RadarTargetType; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -41,8 +42,8 @@ public class EntityMissileGeneric extends EntityMissileBaseAdvanced { } @Override - public int getMissileType() { - return 0; + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER1; } /*public EntityMissileGeneric(World p_i1582_1_) { diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileIncendiary.java b/src/main/java/com/hbm/entity/missile/EntityMissileIncendiary.java index 3bf9f3bb6..b8df6830e 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileIncendiary.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileIncendiary.java @@ -6,6 +6,7 @@ import java.util.List; import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; +import api.hbm.energy.IRadarDetectable.RadarTargetType; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -41,8 +42,7 @@ public class EntityMissileIncendiary extends EntityMissileBaseAdvanced { } @Override - public int getMissileType() { - return 0; + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER1; } - } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileIncendiaryStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileIncendiaryStrong.java index 28d4a5193..843e9abdc 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileIncendiaryStrong.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileIncendiaryStrong.java @@ -7,6 +7,7 @@ import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; +import api.hbm.energy.IRadarDetectable.RadarTargetType; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -44,7 +45,7 @@ public class EntityMissileIncendiaryStrong extends EntityMissileBaseAdvanced { } @Override - public int getMissileType() { - return 1; + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER2; } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileInferno.java b/src/main/java/com/hbm/entity/missile/EntityMissileInferno.java index 2dbca1e8a..af3b354a0 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileInferno.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileInferno.java @@ -7,6 +7,7 @@ import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; +import api.hbm.energy.IRadarDetectable.RadarTargetType; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -45,7 +46,7 @@ public class EntityMissileInferno extends EntityMissileBaseAdvanced { } @Override - public int getMissileType() { - return 2; + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER3; } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileMicro.java b/src/main/java/com/hbm/entity/missile/EntityMissileMicro.java index 1e9c1e71c..69d1c9e6b 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileMicro.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileMicro.java @@ -9,6 +9,7 @@ import com.hbm.explosion.ExplosionParticleB; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; +import api.hbm.energy.IRadarDetectable.RadarTargetType; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -72,8 +73,7 @@ public class EntityMissileMicro extends EntityMissileBaseAdvanced { } @Override - public int getMissileType() { - return 0; + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER0; } - } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java b/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java index 089b2391d..e38c52416 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java @@ -8,6 +8,7 @@ import com.hbm.entity.logic.EntityNukeExplosionMK4; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; +import api.hbm.energy.IRadarDetectable.RadarTargetType; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -52,7 +53,7 @@ public class EntityMissileMirv extends EntityMissileBaseAdvanced { } @Override - public int getMissileType() { - return 3; + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER4; } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java b/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java index 88711ccc6..c41da84b0 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java @@ -8,6 +8,7 @@ import com.hbm.entity.logic.EntityNukeExplosionMK4; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; +import api.hbm.energy.IRadarDetectable.RadarTargetType; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -59,8 +60,7 @@ public class EntityMissileNuclear extends EntityMissileBaseAdvanced { } @Override - public int getMissileType() { - return 3; + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER4; } - } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileRain.java b/src/main/java/com/hbm/entity/missile/EntityMissileRain.java index 15c5ea87a..313ba1669 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileRain.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileRain.java @@ -6,6 +6,7 @@ import java.util.List; import com.hbm.explosion.ExplosionChaos; import com.hbm.items.ModItems; +import api.hbm.energy.IRadarDetectable.RadarTargetType; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -49,7 +50,7 @@ public class EntityMissileRain extends EntityMissileBaseAdvanced { } @Override - public int getMissileType() { - return 2; + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER3; } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileSchrabidium.java b/src/main/java/com/hbm/entity/missile/EntityMissileSchrabidium.java index 94a2fa383..0cd842e5d 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileSchrabidium.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileSchrabidium.java @@ -8,6 +8,7 @@ import com.hbm.entity.logic.EntityNukeExplosionMK3; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; +import api.hbm.energy.IRadarDetectable.RadarTargetType; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -63,8 +64,7 @@ public class EntityMissileSchrabidium extends EntityMissileBaseAdvanced { } @Override - public int getMissileType() { - return 0; + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER0; } - } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileStrong.java index 0231b31b0..0729f7478 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileStrong.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileStrong.java @@ -6,6 +6,7 @@ import java.util.List; import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; +import api.hbm.energy.IRadarDetectable.RadarTargetType; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -42,8 +43,7 @@ public class EntityMissileStrong extends EntityMissileBaseAdvanced { } @Override - public int getMissileType() { - return 1; + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER2; } - } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTaint.java b/src/main/java/com/hbm/entity/missile/EntityMissileTaint.java index 9525ed749..61b0e69ad 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTaint.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTaint.java @@ -7,6 +7,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.bomb.BlockTaint; import com.hbm.items.ModItems; +import api.hbm.energy.IRadarDetectable.RadarTargetType; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -52,7 +53,7 @@ public class EntityMissileTaint extends EntityMissileBaseAdvanced { } @Override - public int getMissileType() { - return 0; + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER0; } } diff --git a/src/main/java/com/hbm/interfaces/Untested.java b/src/main/java/com/hbm/interfaces/Untested.java new file mode 100644 index 000000000..86bbb96a1 --- /dev/null +++ b/src/main/java/com/hbm/interfaces/Untested.java @@ -0,0 +1,3 @@ +package com.hbm.interfaces; + +public @interface Untested { } diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenSatInterface.java b/src/main/java/com/hbm/inventory/gui/GUIScreenSatInterface.java index f2f8435ed..cca0bb664 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenSatInterface.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenSatInterface.java @@ -253,9 +253,10 @@ public class GUIScreenSatInterface extends GuiScreen { int t = 5; - if(e instanceof EntityMissileBaseAdvanced) { + //TODO: fix radar screen implementation + /*if(e instanceof EntityMissileBaseAdvanced) { t = ((EntityMissileBaseAdvanced)e).getMissileType(); - } + }*/ if(e instanceof EntityMob) { t = 6; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java index 38ba387b6..fdd6d18a5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java @@ -6,12 +6,16 @@ import java.util.List; import com.hbm.entity.missile.EntityMissileAntiBallistic; import com.hbm.entity.missile.EntityMissileBaseAdvanced; import com.hbm.interfaces.IConsumer; +import com.hbm.interfaces.Untested; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TERadarDestructorPacket; import com.hbm.packet.TERadarPacket; +import com.hbm.tileentity.TileEntityTickingBase; +import api.hbm.energy.IRadarDetectable; +import api.hbm.energy.IRadarDetectable.RadarTargetType; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -21,16 +25,22 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -public class TileEntityMachineRadar extends TileEntity implements IConsumer { +@Untested +public class TileEntityMachineRadar extends TileEntityTickingBase implements IConsumer { - public static List allMissiles = new ArrayList(); public List nearbyMissiles = new ArrayList(); int pingTimer = 0; + int lastPower; final static int maxTimer = 40; public long power = 0; public static final int maxPower = 100000; + @Override + public String getInventoryName() { + return ""; + } + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -51,31 +61,32 @@ public class TileEntityMachineRadar extends TileEntity implements IConsumer { if(this.yCoord < MainRegistry.radarAltitude) return; - if(!worldObj.isRemote) - nearbyMissiles.clear(); + int lastPower = getRedPower(); - if(power > 0) { - - if(!worldObj.isRemote) { + if(!worldObj.isRemote) { + nearbyMissiles.clear(); + + if(power > 0) { + allocateMissiles(); - sendMissileData(); + + power -= 500; + + if(power < 0) + power = 0; } - power -= 500; - if(power < 0) - power = 0; - } - - worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockType()); - - if(!worldObj.isRemote) - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - - pingTimer++; - - if(power > 0 && pingTimer >= maxTimer) { - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.sonarPing", 5.0F, 1.0F); - pingTimer = 0; + if(lastPower != getRedPower()) + worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockType()); + + sendMissileData(); + + pingTimer++; + + if(power > 0 && pingTimer >= maxTimer) { + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.sonarPing", 5.0F, 1.0F); + pingTimer = 0; + } } } @@ -86,41 +97,15 @@ public class TileEntityMachineRadar extends TileEntity implements IConsumer { List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord + 0.5 - MainRegistry.radarRange, 0, zCoord + 0.5 - MainRegistry.radarRange, xCoord + 0.5 + MainRegistry.radarRange, 5000, zCoord + 0.5 + MainRegistry.radarRange)); for(Entity e : list) { - /*if(e instanceof EntityMissileBaseAdvanced) { - EntityMissileBaseAdvanced mis = (EntityMissileBaseAdvanced)e; - nearbyMissiles.add(new int[] { (int)mis.posX, (int)mis.posZ, mis.getMissileType() }); - }*/ - - /*if(e instanceof EntityRocketHoming && e.posY >= yCoord + MainRegistry.radarBuffer) { - EntityRocketHoming rocket = (EntityRocketHoming)e; - - if(rocket.getIsCritical()) - nearbyMissiles.add(new int[] { (int)e.posX, (int)e.posZ, 7, (int)e.posY }); - else - nearbyMissiles.add(new int[] { (int)e.posX, (int)e.posZ, 6, (int)e.posY }); - - continue; - }*/ if(e instanceof EntityPlayer && e.posY >= yCoord + MainRegistry.radarBuffer) { - nearbyMissiles.add(new int[] { (int)e.posX, (int)e.posZ, 5, (int)e.posY }); + nearbyMissiles.add(new int[] { (int)e.posX, (int)e.posZ, RadarTargetType.PLAYER.ordinal(), (int)e.posY }); } - if(e instanceof EntityMissileAntiBallistic && e.posY >= yCoord + MainRegistry.radarBuffer) { - nearbyMissiles.add(new int[] { (int)e.posX, (int)e.posZ, 4, (int)e.posY }); + if(e instanceof IRadarDetectable && e.posY >= yCoord + MainRegistry.radarBuffer) { + nearbyMissiles.add(new int[] { (int)e.posX, (int)e.posZ, ((IRadarDetectable)e).getTargetType().ordinal(), (int)e.posY }); } } - - for(Entity e : allMissiles) { - if(e != null && !e.isDead && e.posY >= yCoord + MainRegistry.radarBuffer) - if(e instanceof EntityMissileBaseAdvanced) { - if(e.posX < xCoord + MainRegistry.radarRange && e.posX > xCoord - MainRegistry.radarRange && - e.posZ < zCoord + MainRegistry.radarRange && e.posZ > zCoord - MainRegistry.radarRange) { - EntityMissileBaseAdvanced mis = (EntityMissileBaseAdvanced)e; - nearbyMissiles.add(new int[] { (int)mis.posX, (int)mis.posZ, mis.getMissileType(), (int)mis.posY }); - } - } - } } public int getRedPower() { @@ -149,10 +134,35 @@ public class TileEntityMachineRadar extends TileEntity implements IConsumer { private void sendMissileData() { - PacketDispatcher.wrapper.sendToAllAround(new TERadarDestructorPacket(xCoord, yCoord, zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + data.setInteger("count", this.nearbyMissiles.size()); - for(int[] e : this.nearbyMissiles) { - PacketDispatcher.wrapper.sendToAllAround(new TERadarPacket(xCoord, yCoord, zCoord, e[0], e[1], e[2], e[3]), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + for(int i = 0; i < this.nearbyMissiles.size(); i++) { + data.setInteger("x" + i, this.nearbyMissiles.get(i)[0]); + data.setInteger("z" + i, this.nearbyMissiles.get(i)[1]); + data.setInteger("type" + i, this.nearbyMissiles.get(i)[2]); + data.setInteger("y" + i, this.nearbyMissiles.get(i)[3]); + } + + this.networkPack(data, 15); + } + + public void networkUnpack(NBTTagCompound data) { + + this.nearbyMissiles.clear(); + this.power = data.getLong("power"); + + int count = data.getInteger("count"); + + for(int i = 0; i < count; i++) { + + int x = data.getInteger("x" + i); + int z = data.getInteger("z" + i); + int type = data.getInteger("type" + i); + int y = data.getInteger("y" + i); + + this.nearbyMissiles.add(new int[] {x, z, type, y}); } }