diff --git a/src/main/java/assets/hbm/textures/items/nuclear_waste_long.png b/src/main/java/assets/hbm/textures/items/nuclear_waste_long.png new file mode 100644 index 000000000..8a32cc656 Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/nuclear_waste_long.png differ diff --git a/src/main/java/assets/hbm/textures/items/nuclear_waste_long_base.png b/src/main/java/assets/hbm/textures/items/nuclear_waste_long_base.png new file mode 100644 index 000000000..2499eeff2 Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/nuclear_waste_long_base.png differ diff --git a/src/main/java/assets/hbm/textures/items/nuclear_waste_long_depleted.png b/src/main/java/assets/hbm/textures/items/nuclear_waste_long_depleted.png new file mode 100644 index 000000000..da54deab2 Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/nuclear_waste_long_depleted.png differ diff --git a/src/main/java/assets/hbm/textures/items/nuclear_waste_long_depleted_tiny.png b/src/main/java/assets/hbm/textures/items/nuclear_waste_long_depleted_tiny.png new file mode 100644 index 000000000..c0e8b210d Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/nuclear_waste_long_depleted_tiny.png differ diff --git a/src/main/java/assets/hbm/textures/items/nuclear_waste_long_tiny.png b/src/main/java/assets/hbm/textures/items/nuclear_waste_long_tiny.png new file mode 100644 index 000000000..b75b0416f Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/nuclear_waste_long_tiny.png differ diff --git a/src/main/java/assets/hbm/textures/items/nuclear_waste_short.png b/src/main/java/assets/hbm/textures/items/nuclear_waste_short.png new file mode 100644 index 000000000..57c3c54c1 Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/nuclear_waste_short.png differ diff --git a/src/main/java/assets/hbm/textures/items/nuclear_waste_short_base.png b/src/main/java/assets/hbm/textures/items/nuclear_waste_short_base.png new file mode 100644 index 000000000..4b8dd87a8 Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/nuclear_waste_short_base.png differ diff --git a/src/main/java/assets/hbm/textures/items/nuclear_waste_short_depleted.png b/src/main/java/assets/hbm/textures/items/nuclear_waste_short_depleted.png new file mode 100644 index 000000000..a36f14a6b Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/nuclear_waste_short_depleted.png differ diff --git a/src/main/java/assets/hbm/textures/items/nuclear_waste_short_depleted_tiny.png b/src/main/java/assets/hbm/textures/items/nuclear_waste_short_depleted_tiny.png new file mode 100644 index 000000000..43131318c Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/nuclear_waste_short_depleted_tiny.png differ diff --git a/src/main/java/assets/hbm/textures/items/nuclear_waste_short_tiny.png b/src/main/java/assets/hbm/textures/items/nuclear_waste_short_tiny.png new file mode 100644 index 000000000..a6184fe56 Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/nuclear_waste_short_tiny.png differ diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 9a9c308e3..7928453a2 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -28,6 +28,15 @@ public class MineralRecipes { RecipesCommon.add9To1(ModItems.ingot_dineutronium, ModBlocks.block_dineutronium); RecipesCommon.add1To9(ModBlocks.block_dineutronium, ModItems.ingot_dineutronium); + + RecipesCommon.add9To1(ModItems.nuclear_waste_long_tiny, ModItems.nuclear_waste_long); + RecipesCommon.add1To9(ModItems.nuclear_waste_long, ModItems.nuclear_waste_long_tiny); + RecipesCommon.add9To1(ModItems.nuclear_waste_long_depleted_tiny, ModItems.nuclear_waste_long_depleted); + RecipesCommon.add1To9(ModItems.nuclear_waste_long_depleted, ModItems.nuclear_waste_long_depleted_tiny); + RecipesCommon.add9To1(ModItems.nuclear_waste_short_tiny, ModItems.nuclear_waste_short); + RecipesCommon.add1To9(ModItems.nuclear_waste_short, ModItems.nuclear_waste_short_tiny); + RecipesCommon.add9To1(ModItems.nuclear_waste_short_depleted_tiny, ModItems.nuclear_waste_short_depleted); + RecipesCommon.add1To9(ModItems.nuclear_waste_short_depleted, ModItems.nuclear_waste_short_depleted_tiny); RecipesCommon.add9To1(ModItems.fallout, ModBlocks.block_fallout); RecipesCommon.add1To9(ModBlocks.block_fallout, ModItems.fallout); diff --git a/src/main/java/com/hbm/inventory/gui/GUITurretChekhov.java b/src/main/java/com/hbm/inventory/gui/GUITurretChekhov.java index a4071d70d..11f02ab21 100644 --- a/src/main/java/com/hbm/inventory/gui/GUITurretChekhov.java +++ b/src/main/java/com/hbm/inventory/gui/GUITurretChekhov.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.List; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerTurretChekhov; @@ -12,12 +14,14 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; public class GUITurretChekhov extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/gui_turret_base.png"); private TileEntityTurretChekhov turret; + int index; public GUITurretChekhov(InventoryPlayer invPlayer, TileEntityTurretChekhov tedf) { super(new ContainerTurretChekhov(invPlayer, tedf)); @@ -41,30 +45,57 @@ public class GUITurretChekhov extends GuiInfoContainer { mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(turret.xCoord, turret.yCoord, turret.zCoord, 0, 0)); + return; } if(guiLeft + 8 <= x && guiLeft + 8 + 10 > x && guiTop + 30 < y && guiTop + 30 + 10 >= y) { mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(turret.xCoord, turret.yCoord, turret.zCoord, 0, 1)); + return; } if(guiLeft + 22 <= x && guiLeft + 22 + 10 > x && guiTop + 30 < y && guiTop + 30 + 10 >= y) { mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(turret.xCoord, turret.yCoord, turret.zCoord, 0, 2)); + return; } if(guiLeft + 36 <= x && guiLeft + 36 + 10 > x && guiTop + 30 < y && guiTop + 30 + 10 >= y) { mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(turret.xCoord, turret.yCoord, turret.zCoord, 0, 3)); + return; } if(guiLeft + 50 <= x && guiLeft + 50 + 10 > x && guiTop + 30 < y && guiTop + 30 + 10 >= y) { mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(turret.xCoord, turret.yCoord, turret.zCoord, 0, 4)); + return; + } + + int count = getCount(); + + if(count > 0) { + + if(guiLeft + 7 <= x && guiLeft + 7 + 18 > x && guiTop + 80 < y && guiTop + 80 + 18 >= y) { + + index--; + if(index < 0) + index = count - 1; + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + return; + } + + if(guiLeft + 43 <= x && guiLeft + 43 + 18 > x && guiTop + 80 < y && guiTop + 80 + 18 >= y) { + + index++; + index %= count; + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + return; + } } } @@ -74,13 +105,40 @@ public class GUITurretChekhov extends GuiInfoContainer { this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + + List names = turret.getWhitelist(); + + String n = EnumChatFormatting.ITALIC + "None"; + + if(names != null) { + n = names.get(index); + } + + double scale = 2; + + GL11.glScaled(1D / scale, 1D / scale, 1); + this.fontRendererObj.drawString(n, (int)(12 * scale), (int)(51 * scale), 0x00ff00); + GL11.glScaled(scale, scale, 1); } @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int mX, int mY) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(guiLeft + 7 <= mX && guiLeft + 7 + 18 > mX && guiTop + 80 < mY && guiTop + 80 + 18 >=mY) { + drawTexturedModalRect(guiLeft + 7, guiTop + 80, 176, 58, 18, 18); + } + if(guiLeft + 43 <= mX && guiLeft + 43 + 18 > mX && guiTop + 80 < mY && guiTop + 80 + 18 >=mY) { + drawTexturedModalRect(guiLeft + 43, guiTop + 80, 194, 58, 18, 18); + } + if(guiLeft + 7 <= mX && guiLeft + 7 + 18 > mX && guiTop + 98 < mY && guiTop + 98 + 18 >=mY) { + drawTexturedModalRect(guiLeft + 7, guiTop + 98, 176, 76, 18, 18); + } + if(guiLeft + 43 <= mX && guiLeft + 43 + 18 > mX && guiTop + 98 < mY && guiTop + 98 + 18 >=mY) { + drawTexturedModalRect(guiLeft + 43, guiTop + 98, 194, 76, 18, 18); + } int i = turret.getPowerScaled(53); drawTexturedModalRect(guiLeft + 152, guiTop + 97 - i, 194, 52 - i, 16, i); @@ -99,5 +157,38 @@ public class GUITurretChekhov extends GuiInfoContainer { if(turret.targetMachines) drawTexturedModalRect(guiLeft + 50, guiTop + 30, 176, 30, 10, 10); + + int tallies = turret.stattrak; + + if(tallies >= 36) { + + drawTexturedModalRect(guiLeft + 77, guiTop + 50, 176, 120, 63, 6); + + } else { + + int steps = (int)Math.ceil(tallies / 5D); + + for(int s = 0; s < steps; s++) { + + int m = tallies % 5; + + if(s < steps - 1 || m == 0) { + drawTexturedModalRect(guiLeft + 77 + 9 * s, guiTop + 50, 194, 94, 9, 6); + } else { + + drawTexturedModalRect(guiLeft + 77 + 9 * s, guiTop + 50, 176, 94, m * 2, 6); + } + } + } + } + + private int getCount() { + + List names = turret.getWhitelist(); + + if(names == null) + return 0; + + return names.size(); } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 6063cd678..acd2cdef2 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -871,6 +871,14 @@ public class ModItems { public static Item scrap; public static Item trinitite; + public static Item nuclear_waste_long; + public static Item nuclear_waste_long_tiny; + public static Item nuclear_waste_short; + public static Item nuclear_waste_short_tiny; + public static Item nuclear_waste_long_depleted; + public static Item nuclear_waste_long_depleted_tiny; + public static Item nuclear_waste_short_depleted; + public static Item nuclear_waste_short_depleted_tiny; public static Item nuclear_waste; public static Item nuclear_waste_tiny; public static Item rod_uranium_fuel_depleted; @@ -3005,6 +3013,14 @@ public class ModItems { rod_quad_tritium = new ItemRadioactive(2F).setUnlocalizedName("rod_quad_tritium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_tritium"); trinitite = new ItemRadioactive(5F).setUnlocalizedName("trinitite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":trinitite_new"); + nuclear_waste_long = new ItemRadioactive(5F).setUnlocalizedName("nuclear_waste_long").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long"); + nuclear_waste_long_tiny = new ItemRadioactive(0.5F).setUnlocalizedName("nuclear_waste_long_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long_tiny"); + nuclear_waste_short = new ItemRadioactive(30F, true).setUnlocalizedName("nuclear_waste_short").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_short"); + nuclear_waste_short_tiny = new ItemRadioactive(3F, true).setUnlocalizedName("nuclear_waste_short_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_short_tiny"); + nuclear_waste_long_depleted = new ItemRadioactive(0.5F).setUnlocalizedName("nuclear_waste_long_depleted").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long_depleted"); + nuclear_waste_long_depleted_tiny = new ItemRadioactive(0.05F).setUnlocalizedName("nuclear_waste_long_depleted_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long_depleted_tiny"); + nuclear_waste_short_depleted = new ItemRadioactive(3F).setUnlocalizedName("nuclear_waste_short_depleted").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_short_depleted"); + nuclear_waste_short_depleted_tiny = new ItemRadioactive(0.3F).setUnlocalizedName("nuclear_waste_short_depleted_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_short_depleted_tiny"); nuclear_waste = new ItemRadioactive(15F).setUnlocalizedName("nuclear_waste").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste"); nuclear_waste_tiny = new ItemRadioactive(2F).setUnlocalizedName("nuclear_waste_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_tiny"); waste_uranium = new ItemRadioactive(15F).setUnlocalizedName("waste_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_uranium"); @@ -5519,6 +5535,14 @@ public class ModItems { GameRegistry.registerItem(waste_mox, waste_mox.getUnlocalizedName()); GameRegistry.registerItem(waste_schrabidium, waste_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(trinitite, trinitite.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste_long, nuclear_waste_long.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste_long_tiny, nuclear_waste_long_tiny.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste_short, nuclear_waste_short.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste_short_tiny, nuclear_waste_short_tiny.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste_long_depleted, nuclear_waste_long_depleted.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste_long_depleted_tiny, nuclear_waste_long_depleted_tiny.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste_short_depleted, nuclear_waste_short_depleted.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste_short_depleted_tiny, nuclear_waste_short_depleted_tiny.getUnlocalizedName()); GameRegistry.registerItem(nuclear_waste, nuclear_waste.getUnlocalizedName()); GameRegistry.registerItem(nuclear_waste_tiny, nuclear_waste_tiny.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemTurretBiometry.java b/src/main/java/com/hbm/items/machine/ItemTurretBiometry.java index eb3f91dd0..7506f6ce0 100644 --- a/src/main/java/com/hbm/items/machine/ItemTurretBiometry.java +++ b/src/main/java/com/hbm/items/machine/ItemTurretBiometry.java @@ -11,10 +11,9 @@ import net.minecraft.util.ChatComponentText; import net.minecraft.world.World; public class ItemTurretBiometry extends Item { - + @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { String[] names = getNames(itemstack); if(names != null) for(int i = 0; i < names.length; i++) @@ -24,60 +23,60 @@ public class ItemTurretBiometry extends Item { @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - addName(stack, player.getUniqueID().toString()); + addName(stack, player.getDisplayName()); - if(world.isRemote) - player.addChatMessage(new ChatComponentText("Added player data!")); + if(world.isRemote) + player.addChatMessage(new ChatComponentText("Added player data!")); + + world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); - world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); - player.swingItem(); - + return stack; } - + public static String[] getNames(ItemStack stack) { if(stack.stackTagCompound == null) { stack.stackTagCompound = new NBTTagCompound(); return null; } - - String[] names = new String [stack.stackTagCompound.getInteger("playercount")]; - + + String[] names = new String[stack.stackTagCompound.getInteger("playercount")]; + for(int i = 0; i < names.length; i++) { names[i] = stack.stackTagCompound.getString("player_" + i); } - + if(names.length == 0) return null; - + return names; } - + public static void addName(ItemStack stack, String s) { if(stack.stackTagCompound == null) { stack.stackTagCompound = new NBTTagCompound(); } - + String[] names = getNames(stack); int count = 0; - + if(names != null && Arrays.asList(names).contains(s)) return; - + if(names != null) count = names.length; - + stack.stackTagCompound.setInteger("playercount", count + 1); - + stack.stackTagCompound.setString("player_" + count, s); } - + public static void clearNames(ItemStack stack) { if(stack.stackTagCompound == null) { stack.stackTagCompound = new NBTTagCompound(); } - + stack.stackTagCompound.setInteger("playercount", 0); } } diff --git a/src/main/java/com/hbm/items/machine/ItemTurretChip.java b/src/main/java/com/hbm/items/machine/ItemTurretChip.java index a978b1bd6..943a8308b 100644 --- a/src/main/java/com/hbm/items/machine/ItemTurretChip.java +++ b/src/main/java/com/hbm/items/machine/ItemTurretChip.java @@ -12,30 +12,28 @@ import net.minecraft.util.ChatComponentText; import net.minecraft.world.World; public class ItemTurretChip extends ItemTurretBiometry { - + @Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) - { - if((world.getBlock(x, y, z) instanceof TurretBase)) - { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) { + if((world.getBlock(x, y, z) instanceof TurretBase)) { + if(getNames(stack) == null) return false; - + TileEntity te = world.getTileEntity(x, y, z); if(te instanceof TileEntityTurretBase) { - ((TileEntityTurretBase)te).isAI = true; - ((TileEntityTurretBase)te).players = Arrays.asList(getNames(stack)); + ((TileEntityTurretBase) te).isAI = true; + ((TileEntityTurretBase) te).players = Arrays.asList(getNames(stack)); } - if(world.isRemote) - { - player.addChatMessage(new ChatComponentText("Transferred turret ownership!")); + if(world.isRemote) { + player.addChatMessage(new ChatComponentText("Transferred turret ownership!")); } world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); - - return true; + + return true; } - - return false; - } + + return false; + } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBase.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBase.java index 81a536bd8..0212f7ea7 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBase.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBase.java @@ -106,7 +106,7 @@ public abstract class TileEntityTurretBase extends TileEntity { if(this instanceof TileEntityTurretCIWS && !(e instanceof EntityMissileBaseAdvanced) && !(e instanceof EntityBomber) && !(e instanceof EntityMissileCustom)) return false; - if(e instanceof EntityPlayer && players.contains((((EntityPlayer)e).getUniqueID().toString()))) + if(e instanceof EntityPlayer && players.contains((((EntityPlayer)e).getDisplayName()))) return false; Vec3 turret; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java index 10bd13b99..cfcf5b9b5 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java @@ -1,5 +1,6 @@ package com.hbm.tileentity.turret; +import java.util.Arrays; import java.util.List; import com.hbm.blocks.BlockDummyable; @@ -9,6 +10,8 @@ import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.interfaces.IConsumer; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemTurretBiometry; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; @@ -111,6 +114,14 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple this.aligned = false; + if(!worldObj.isRemote) { + + if(this.target != null && !target.isEntityAlive()) { + this.target = null; + this.stattrak++; + } + } + if(target != null) { if(!this.entityInLOS(this.target)) { this.target = null; @@ -269,9 +280,54 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple * @return null if there is either no chip to be found or if the name list is empty, otherwise it just reads the strings from the chip's NBT */ public List getWhitelist() { + + if(slots[0] != null && slots[0].getItem() == ModItems.turret_chip) { + + String[] array = ItemTurretBiometry.getNames(slots[0]); + + if(array == null) + return null; + + return Arrays.asList(ItemTurretBiometry.getNames(slots[0])); + } + return null; } + /** + * Appends a new name to the chip + * @param name + */ + public void addName(String name) { + + if(slots[0] != null && slots[0].getItem() == ModItems.turret_chip) { + ItemTurretBiometry.addName(slots[0], name); + } + } + + /** + * Removes the chip's entry at a given + * @param index + */ + public void removeName(String index) { + + if(slots[0] != null && slots[0].getItem() == ModItems.turret_chip) { + + String[] array = ItemTurretBiometry.getNames(slots[0]); + + if(array == null) + return; + + List names = Arrays.asList(array); + ItemTurretBiometry.clearNames(slots[0]); + + names.remove(index); + + for(String name : names) + ItemTurretBiometry.addName(slots[0], name); + } + } + /** * Finds the nearest acceptable target within range and in line of sight */ @@ -400,6 +456,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple if(pitchDeg < -this.getTurretDepression() || pitchDeg > this.getTurretElevation()) return false; + //TODO: figure out why this shit apparently doesn't work return !Library.isObstructed(worldObj, pos.xCoord, pos.yCoord, pos.zCoord, ent.xCoord, ent.yCoord, ent.zCoord); } @@ -489,7 +546,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple * @return */ public int getDecetorInterval() { - return 20; + return 10; } /** diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretChekhov.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretChekhov.java index 108065f82..9bf911235 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretChekhov.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretChekhov.java @@ -95,7 +95,7 @@ public class TileEntityTurretChekhov extends TileEntityTurretBaseNT { if(worldObj.isRemote) { - if(this.aligned) { + if(this.target != null) { this.accel = Math.min(45F, this.accel += 2); } else { this.accel = Math.max(0F, this.accel -= 2); @@ -110,8 +110,16 @@ public class TileEntityTurretChekhov extends TileEntityTurretBaseNT { } } else { - if(!this.aligned) - this.timer = 0; + if(this.target == null) { + + this.timer--; + + if(timer > 20) + timer = 20; + + if(timer < 0) + timer = 0; + } } } }