diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 00ebc6cc9..bb9c059d0 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2982,12 +2982,12 @@ public class ModBlocks { GameRegistry.registerBlock(door_bunker, door_bunker.getUnlocalizedName()); //Crates - GameRegistry.registerBlock(crate_iron, crate_iron.getUnlocalizedName()); - GameRegistry.registerBlock(crate_steel, crate_steel.getUnlocalizedName()); - GameRegistry.registerBlock(crate_desh, crate_desh.getUnlocalizedName()); - GameRegistry.registerBlock(crate_tungsten, crate_tungsten.getUnlocalizedName()); - GameRegistry.registerBlock(safe, safe.getUnlocalizedName()); - GameRegistry.registerBlock(mass_storage, ItemBlockBase.class, mass_storage.getUnlocalizedName()); + register(crate_iron); + register(crate_steel); + register(crate_desh); + register(crate_tungsten); + register(safe); + register(mass_storage); //Junk GameRegistry.registerBlock(boxcar, boxcar.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java index 5dddb69ed..8844789ea 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java @@ -3,6 +3,7 @@ package com.hbm.blocks.generic; import java.io.IOException; import java.util.Random; +import com.hbm.blocks.IBlockMulti; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; import com.hbm.items.tool.ItemLock; @@ -38,7 +39,7 @@ import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class BlockStorageCrate extends BlockContainer { +public class BlockStorageCrate extends BlockContainer implements IBlockMulti { @SideOnly(Side.CLIENT) private IIcon iconTop; @@ -264,4 +265,9 @@ public class BlockStorageCrate extends BlockContainer { public Item getItemDropped(int i, Random rand, int j) { return null; } + + @Override + public int getSubCount() { + return 0; + } } diff --git a/src/main/java/com/hbm/blocks/machine/DummyBlockAssembler.java b/src/main/java/com/hbm/blocks/machine/DummyBlockAssembler.java index 18719d914..9eacde4da 100644 --- a/src/main/java/com/hbm/blocks/machine/DummyBlockAssembler.java +++ b/src/main/java/com/hbm/blocks/machine/DummyBlockAssembler.java @@ -1,9 +1,6 @@ package com.hbm.blocks.machine; -import java.util.Random; - import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IDummy; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityDummy; import com.hbm.tileentity.machine.TileEntityMachineAssembler; @@ -11,8 +8,6 @@ import com.hbm.tileentity.machine.TileEntityMachineAssembler; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; diff --git a/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java b/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java index c4d6bdc67..4264b777d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java +++ b/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java @@ -6,9 +6,11 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.IBlockMulti; import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.trait.FT_Heatable; import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType; +import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityHeatBoiler; @@ -29,7 +31,7 @@ import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; -public class MachineHeatBoiler extends BlockDummyable implements ILookOverlay, IBlockMulti { +public class MachineHeatBoiler extends BlockDummyable implements ILookOverlay, ITooltipProvider, IBlockMulti { public MachineHeatBoiler() { super(Material.iron); @@ -112,9 +114,12 @@ public class MachineHeatBoiler extends BlockDummyable implements ILookOverlay, I int[] pos = this.findCore(world, x, y, z); if(pos != null) { - TileEntityHeatBoiler stirling = (TileEntityHeatBoiler)world.getTileEntity(pos[0], pos[1], pos[2]); - if(stirling.hasExploded) { - dmg = 1; + TileEntityHeatBoiler boiler = (TileEntityHeatBoiler)world.getTileEntity(pos[0], pos[1], pos[2]); + if(boiler.hasExploded) { + //dmg = 1; + ret.add(new ItemStack(ModItems.ingot_steel, 4)); + ret.add(new ItemStack(ModItems.plate_copper, 8)); + return ret; } } @@ -180,4 +185,9 @@ public class MachineHeatBoiler extends BlockDummyable implements ILookOverlay, I public int getSubCount() { return 0; } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 2ca3c5638..d5e80cfa2 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -282,6 +282,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 3), new Object[] { " P ", "NSN", " P ", 'P', PU239.nugget(), 'N', OreDictManager.getReflector(), 'S', new ItemStack(ModItems.ammo_arty, 1, 0) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 6), new Object[] { "DSD", "SCS", "DSD", 'D', OreDictManager.getReflector(), 'S', new ItemStack(ModItems.ammo_arty, 1, 3), 'C', ModBlocks.det_cord }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_arty, 1, 4), new Object[] { new ItemStack(ModItems.ammo_arty, 1, 2), ModItems.boy_bullet, ModItems.boy_target, ModItems.boy_shielding, ModItems.circuit_red_copper, ModItems.ducttape }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 8), new Object[] { " I ", " S ", "CCC", 'C', ModItems.cordite, 'I', ModItems.sphere_steel, 'S', ModItems.hull_small_steel }); //DGK Belts CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_dgk, 1), new Object[] { "LLL", "GGG", "CCC", 'L', PB.plate(), 'G', ModItems.ballistite, 'C', CU.ingot() }); diff --git a/src/main/java/com/hbm/crafting/handlers/CargoShellCraftingHandler.java b/src/main/java/com/hbm/crafting/handlers/CargoShellCraftingHandler.java new file mode 100644 index 000000000..0dc724a49 --- /dev/null +++ b/src/main/java/com/hbm/crafting/handlers/CargoShellCraftingHandler.java @@ -0,0 +1,81 @@ +package com.hbm.crafting.handlers; + +import com.hbm.items.ModItems; + +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.IRecipe; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class CargoShellCraftingHandler implements IRecipe { + + @Override + public boolean matches(InventoryCrafting inventory, World world) { + + int itemCount = 0; + int shellCount = 0; + + for(int i = 0; i < 9; i++) { + ItemStack stack = inventory.getStackInRowAndColumn(i % 3, i / 3); + + if(stack != null) { + + if(stack.getItem().hasContainerItem(stack) || !stack.getItem().doesContainerItemLeaveCraftingGrid(stack)) + return false; + + itemCount++; + + if(stack.getItem() == ModItems.ammo_arty && stack.getItemDamage() == 8 && !stack.hasTagCompound()) { + shellCount++; + } + } + } + + return itemCount == 2 && shellCount == 1; + } + + @Override + public ItemStack getCraftingResult(InventoryCrafting inventory) { + + ItemStack shell = null; + ItemStack cargo = null; + + for(int i = 0; i < 9; i++) { + ItemStack stack = inventory.getStackInRowAndColumn(i % 3, i / 3); + + if(stack == null) + continue; + + if(stack.getItem() == ModItems.ammo_arty && stack.getItemDamage() == 8 && !stack.hasTagCompound()) { + ItemStack copy = stack.copy(); + copy.stackSize = 1; + shell = copy; + } else { + ItemStack copy = stack.copy(); + copy.stackSize = 1; + cargo = copy; + } + } + + if(shell == null || cargo == null) + return null; + + if(!shell.hasTagCompound()) + shell.stackTagCompound = new NBTTagCompound(); + + shell.stackTagCompound.setTag("cargo", cargo.writeToNBT(new NBTTagCompound())); + + return shell; + } + + @Override + public int getRecipeSize() { + return 9; + } + + @Override + public ItemStack getRecipeOutput() { + return new ItemStack(ModItems.ammo_shell, 1, 8); + } +} diff --git a/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java b/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java index 41f75310e..5f906b878 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java +++ b/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java @@ -86,6 +86,13 @@ public class EntityArtilleryRocket extends EntityThrowableInterp implements IChu @Override public void onUpdate() { + + if(worldObj.isRemote) { + this.lastTickPosX = this.posX; + this.lastTickPosY = this.posY; + this.lastTickPosZ = this.posZ; + } + super.onUpdate(); if(!worldObj.isRemote) { @@ -103,6 +110,14 @@ public class EntityArtilleryRocket extends EntityThrowableInterp implements IChu loadNeighboringChunks((int)Math.floor(posX / 16D), (int)Math.floor(posZ / 16D)); this.getType().onUpdate(this); + } else { + + Vec3 v = Vec3.createVectorHelper(lastTickPosX - posX, lastTickPosY - posY, lastTickPosZ - posZ); + double velocity = v.lengthVector(); + v = v.normalize(); + + int offset = 6; + if(velocity > 1) for(int i = offset; i < velocity + offset; i++) MainRegistry.proxy.spawnParticle(posX + v.xCoord * i, posY + v.yCoord * i, posZ + v.zCoord * i, "exKerosene", null); } } @@ -195,4 +210,9 @@ public class EntityArtilleryRocket extends EntityThrowableInterp implements IChu public RadarTargetType getTargetType() { return RadarTargetType.ARTILLERY; } + + @Override + public int approachNum() { + return 0; // + } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java index 8e66e0b47..b7a4c3e80 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java +++ b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java @@ -11,9 +11,12 @@ import com.hbm.main.MainRegistry; import api.hbm.entity.IRadarDetectable; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; import net.minecraftforge.common.ForgeChunkManager; @@ -43,9 +46,12 @@ public class EntityArtilleryShell extends EntityThrowableNT implements IChunkLoa private boolean shouldWhistle = false; private boolean didWhistle = false; + private ItemStack cargo = null; + public EntityArtilleryShell(World world) { super(world); this.ignoreFrustumCheck = true; + this.setSize(0.5F, 0.5F); } @Override @@ -133,6 +139,10 @@ public class EntityArtilleryShell extends EntityThrowableNT implements IChunkLoa } else { this.setPosition(this.posX, this.posY, this.posZ); } + + if(Vec3.createVectorHelper(this.syncPosX - this.posX, this.syncPosY - this.posY, this.syncPosZ - this.posZ).lengthVector() < 0.2) { + worldObj.spawnParticle("smoke", posX, posY + 0.5, posZ, 0.0, 0.1, 0.0); + } } } @@ -210,22 +220,30 @@ public class EntityArtilleryShell extends EntityThrowableNT implements IChunkLoa public void writeEntityToNBT(NBTTagCompound nbt) { super.writeEntityToNBT(nbt); + nbt.setInteger("type", this.dataWatcher.getWatchableObjectInt(10)); nbt.setBoolean("shouldWhistle", this.shouldWhistle); nbt.setBoolean("didWhistle", this.didWhistle); nbt.setDouble("targetX", this.targetX); nbt.setDouble("targetY", this.targetY); nbt.setDouble("targetZ", this.targetZ); + + if(this.cargo != null) + nbt.setTag("cargo", this.cargo.writeToNBT(new NBTTagCompound())); } @Override public void readEntityFromNBT(NBTTagCompound nbt) { super.readEntityFromNBT(nbt); + this.dataWatcher.updateObject(10, nbt.getInteger("type")); this.shouldWhistle = nbt.getBoolean("shouldWhistle"); this.didWhistle = nbt.getBoolean("didWhistle"); this.targetX = nbt.getDouble("targetX"); this.targetY = nbt.getDouble("targetY"); this.targetZ = nbt.getDouble("targetZ"); + + NBTTagCompound compound = nbt.getCompoundTag("cargo"); + this.setCargo(ItemStack.loadItemStackFromNBT(compound)); } @Override @@ -238,6 +256,39 @@ public class EntityArtilleryShell extends EntityThrowableNT implements IChunkLoa return 9.81 * 0.05; } + @Override + protected int groundDespawn() { + return cargo != null ? 0 : 1200; + } + + @Override + public boolean canBeCollidedWith() { + return true; + } + + @Override + public boolean canAttackWithItem() { + return true; + } + + public void setCargo(ItemStack stack) { + this.cargo = stack; + } + + @Override + public boolean interactFirst(EntityPlayer player) { + + if(!worldObj.isRemote) { + if(this.cargo != null) { + player.inventory.addItemStackToInventory(this.cargo.copy()); + player.inventoryContainer.detectAndSendChanges(); + } + this.setDead(); + } + + return false; + } + @Override public RadarTargetType getTargetType() { return RadarTargetType.ARTILLERY; diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableInterp.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableInterp.java index d211ce964..08c860a57 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityThrowableInterp.java +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableInterp.java @@ -32,10 +32,6 @@ public abstract class EntityThrowableInterp extends EntityThrowableNT { public void onUpdate() { if(!worldObj.isRemote) { - int orientation = this.dataWatcher.getWatchableObjectInt(10); - if(orientation >= 6 && !this.inGround) { - this.dataWatcher.updateObject(10, orientation - 6); - } super.onUpdate(); } else { if(this.turnProgress > 0) { diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java index 86e57240b..608f999d5 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java @@ -226,8 +226,8 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { this.prevRotationYaw += 360.0F; } - //this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F; - //this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; + this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F; + this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; float drag = this.getAirDrag(); double gravity = this.getGravityVelocity(); diff --git a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java index bc473af93..46836a484 100644 --- a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java +++ b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java @@ -150,8 +150,8 @@ public abstract class GuiInfoContainer extends GuiContainer { minY = this.height - height - 6; } - this.zLevel = 300.0F; - itemRender.zLevel = 300.0F; + this.zLevel = 400.0F; + itemRender.zLevel = 400.0F; //int j1 = -267386864; int colorBg = 0xF0100010; this.drawGradientRect(minX - 3, minY - 4, minX + longestline + 3, minY - 3, colorBg, colorBg); @@ -193,6 +193,7 @@ public abstract class GuiInfoContainer extends GuiContainer { this.drawGradientRect(minX + indent - 1, minY - 1, minX + indent + 17, minY + 17, 0xffff0000, 0xffff0000); this.drawGradientRect(minX + indent, minY, minX + indent + 16, minY + 16, 0xffb0b0b0, 0xffb0b0b0); } + GL11.glEnable(GL11.GL_DEPTH_TEST); itemRender.renderItemAndEffectIntoGUI(this.fontRendererObj, this.mc.getTextureManager(), stack, minX + indent, minY); itemRender.renderItemOverlayIntoGUI(this.fontRendererObj, this.mc.getTextureManager(), stack, minX + indent, minY, null); RenderHelper.disableStandardItemLighting(); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 078efd54c..32e0180c0 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -284,7 +284,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModBlocks.steel_beam, 8), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 3), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.wire_red_copper, 6), },250); makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.block(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.ingot(), 24), new OreDictStack(STEEL.plate(), 16), new OreDictStack(AL.plate(), 6), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.wire_red_copper, 8), },400); makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 8), new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(ModItems.thermo_element, 3), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 16), new OreDictStack(STEEL.plate(), 20), new OreDictStack(CU.plate(), 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.coil_tungsten, 8), new ComparableStack(ModItems.wire_red_copper, 8), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },350); + makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {new OreDictStack(STEEL.plate(), 16), new OreDictStack(CU.plate(), 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit_red_copper, 1) },350); makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.bolt_tungsten, 4), new ComparableStack(ModItems.coil_copper, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.canister_full, 1, Fluids.LUBRICANT.getID()), },160); makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.plate(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },200); makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(TI.plate(), 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit_gold, 1), },400); @@ -395,7 +395,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.ams_limiter, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 6), new OreDictStack(STEEL.plate(), 24), new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModItems.crystal_diamond, 1)}, 600); makeRecipe(new ComparableStack(ModBlocks.ams_emitter, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 24), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModBlocks.steel_scaffold, 40), new ComparableStack(ModItems.crystal_redstone, 5), new ComparableStack(ModBlocks.machine_lithium_battery)}, 600); makeRecipe(new ComparableStack(ModBlocks.ams_base, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 12), new OreDictStack(STEEL.plate(), 28), new ComparableStack(ModBlocks.steel_scaffold, 30), new ComparableStack(ModBlocks.steel_grate, 8), new ComparableStack(ModBlocks.barrel_steel, 2)}, 600); - makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.plate_polymer, 24), new ComparableStack(ModItems.magnetron, 10), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300); + makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.plate(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.plate_polymer, 24), new ComparableStack(ModItems.magnetron, 10), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300); makeRecipe(new ComparableStack(ModBlocks.machine_forcefield, 1), new AStack[] {new OreDictStack(ALLOY.plate(), 8), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.coil_gold_torus, 6), new ComparableStack(ModItems.coil_magnetized_tungsten, 12), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.upgrade_radius, 1), new ComparableStack(ModItems.upgrade_health, 1), new ComparableStack(ModItems.circuit_targeting_tier5, 1), new ComparableStack(ModBlocks.machine_transformer, 1), },1000); makeRecipe(new ComparableStack(ModItems.mp_thruster_10_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); makeRecipe(new ComparableStack(ModItems.mp_thruster_10_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.coil_tungsten, 1), new OreDictStack(DURA.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); @@ -750,6 +750,35 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModItems.crt_display, 1) }, 200); + makeRecipe(new ComparableStack(ModBlocks.turret_himars, 1), new AStack[] { + new ComparableStack(ModBlocks.machine_battery, 1), + new OreDictStack(STEEL.ingot(), 128), + new OreDictStack(DURA.ingot(), 64), + new OreDictStack(ANY_PLASTIC.ingot(), 64), + new ComparableStack(ModItems.motor_desh, 5), + new ComparableStack(ModItems.circuit_targeting_tier4, 3), + new ComparableStack(ModItems.mechanism_launcher_2, 5), + new ComparableStack(ModBlocks.machine_radar, 1), + new ComparableStack(ModItems.crt_display, 1) + }, 300); + + makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, 0), new AStack[] { + new OreDictStack(STEEL.plate(), 24), + new OreDictStack(ANY_PLASTIC.ingot(), 12), + new OreDictStack(ANY_SMOKELESS.dust(), 48), + new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 6), + new ComparableStack(ModItems.circuit_copper, 6), + new ComparableStack(ModItems.wire_gold, 12) + }, 100); + + makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, 1), new AStack[] { + new OreDictStack(STEEL.plate(), 24), + new OreDictStack(ANY_PLASTIC.ingot(), 6), + new OreDictStack(ANY_SMOKELESS.dust(), 36), + new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), + new ComparableStack(ModItems.circuit_red_copper, 2), + new ComparableStack(ModItems.wire_gold, 8) + }, 100); makeRecipe(new ComparableStack(ModBlocks.machine_silex, 1), new AStack[] { new ComparableStack(Blocks.glass, 12), diff --git a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java index e770043aa..4152a9c40 100644 --- a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java @@ -28,9 +28,6 @@ public class MachineRecipes { //return: FluidType, amount produced, amount required, heat required (°C * 100) public static Object[] getBoilerOutput(FluidType type) { - if(type == Fluids.WATER) return new Object[] { Fluids.STEAM, 500, 5, 10000 }; - if(type == Fluids.STEAM) return new Object[] { Fluids.HOTSTEAM, 5, 50, 30000 }; - if(type == Fluids.HOTSTEAM) return new Object[] { Fluids.SUPERHOTSTEAM, 5, 50, 45000 }; if(type == Fluids.OIL) return new Object[] { Fluids.HOTOIL, 5, 5, 35000 }; if(type == Fluids.CRACKOIL) return new Object[] { Fluids.HOTCRACKOIL, 5, 5, 35000 }; diff --git a/src/main/java/com/hbm/items/tool/ItemOilDetector.java b/src/main/java/com/hbm/items/tool/ItemOilDetector.java index ce1c5fa0c..45d41af10 100644 --- a/src/main/java/com/hbm/items/tool/ItemOilDetector.java +++ b/src/main/java/com/hbm/items/tool/ItemOilDetector.java @@ -3,13 +3,16 @@ package com.hbm.items.tool; import java.util.List; import com.hbm.blocks.ModBlocks; +import com.hbm.main.MainRegistry; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.PlayerInformPacket; +import com.hbm.util.ChatBuilder; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentTranslation; -import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; @@ -77,17 +80,17 @@ public class ItemOilDetector extends Item { oil = true; if(!world.isRemote) { - + if(direct) { - player.addChatMessage(new ChatComponentTranslation(this.getUnlocalizedName() + ".bullseye").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.DARK_GREEN))); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("").nextTranslation(this.getUnlocalizedName() + ".bullseye").color(EnumChatFormatting.DARK_GREEN).flush(), MainRegistry.proxy.ID_DETONATOR), (EntityPlayerMP) player); } else if(oil) { - player.addChatMessage(new ChatComponentTranslation(this.getUnlocalizedName() + ".detected").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GOLD))); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("").nextTranslation(this.getUnlocalizedName() + ".detected").color(EnumChatFormatting.GOLD).flush(), MainRegistry.proxy.ID_DETONATOR), (EntityPlayerMP) player); } else { - player.addChatMessage(new ChatComponentTranslation(this.getUnlocalizedName() + ".noOil").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("").nextTranslation(this.getUnlocalizedName() + ".noOil").color(EnumChatFormatting.RED).flush(), MainRegistry.proxy.ID_DETONATOR), (EntityPlayerMP) player); } } - world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); player.swingItem(); diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java index 24aefdb0e..29ef557c4 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java @@ -121,10 +121,20 @@ public class ItemAmmoArty extends Item { list.add(r + "(that is the best skull and crossbones"); list.add(r + "minecraft's unicode has to offer)"); break; + case CARGO: + + if(stack.hasTagCompound() && stack.stackTagCompound.getCompoundTag("cargo") != null) { + ItemStack cargo = ItemStack.loadItemStackFromNBT(stack.stackTagCompound.getCompoundTag("cargo")); + list.add(y + cargo.getDisplayName()); + } else { + list.add(r + "Empty"); + } + break; } } - + private IIcon[] icons = new IIcon[itemTypes.length]; + private IIcon iconCargo; @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister reg) { @@ -134,6 +144,18 @@ public class ItemAmmoArty extends Item { for(int i = 0; i < icons.length; i++) { this.icons[i] = reg.registerIcon(RefStrings.MODID + ":" + itemTypes[i].name); } + + this.iconCargo = reg.registerIcon(RefStrings.MODID + ":ammo_arty_cargo_full"); + } + + @SideOnly(Side.CLIENT) + public IIcon getIconIndex(ItemStack stack) { + + if(stack.getItemDamage() == CARGO && stack.hasTagCompound() && stack.stackTagCompound.getCompoundTag("cargo") != null) { + return this.iconCargo; + } + + return this.getIconFromDamage(stack.getItemDamage()); } @Override diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java index 4809a7c80..0a76f7cd9 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java @@ -32,6 +32,7 @@ public class ItemAmmoHIMARS extends Item { this.setHasSubtypes(true); this.setCreativeTab(MainRegistry.weaponTab); this.setTextureName(RefStrings.MODID + ":ammo_rocket"); + this.setMaxStackSize(1); init(); } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 7039d641b..4b6627a13 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4375)"; + public static final String VERSION = "1.0.27 BETA (4389)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 3bd5870e2..dedc6be3e 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -384,6 +384,7 @@ public class ClientProxy extends ServerProxy { //templates MinecraftForgeClient.registerItemRenderer(ModItems.assembly_template, new ItemRenderTemplate()); MinecraftForgeClient.registerItemRenderer(ModItems.chemistry_template, new ItemRenderTemplate()); + MinecraftForgeClient.registerItemRenderer(ModItems.crucible_template, new ItemRenderTemplate()); //hot stuff MinecraftForgeClient.registerItemRenderer(ModItems.ingot_steel_dusted, new ItemRendererHot()); MinecraftForgeClient.registerItemRenderer(ModItems.ingot_chainsteel, new ItemRendererHot()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 98a15001b..6b1bbd525 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -2,7 +2,6 @@ package com.hbm.main; import java.util.ArrayList; import java.util.List; -import java.util.Map.Entry; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockGenericStairs; @@ -59,10 +58,12 @@ public class CraftingManager { GameRegistry.addRecipe(new RBMKFuelCraftingHandler()); GameRegistry.addRecipe(new MKUCraftingHandler()); GameRegistry.addRecipe(new ToolboxCraftingHandler()); + GameRegistry.addRecipe(new CargoShellCraftingHandler()); //TODO: find out what this actually did RecipeSorter.register("hbm:rbmk", RBMKFuelCraftingHandler.class, RecipeSorter.Category.SHAPELESS, "after:minecraft:shapeless"); RecipeSorter.register("hbm:toolbox", ToolboxCraftingHandler.class, RecipeSorter.Category.SHAPELESS, "after:minecraft:shapeless"); + RecipeSorter.register("hbm:cargo", CargoShellCraftingHandler.class, RecipeSorter.Category.SHAPELESS, "after:minecraft:shapeless"); RecipeSorter.register("hbm:mku", MKUCraftingHandler.class, RecipeSorter.Category.SHAPED, "after:minecraft:shaped before:minecraft:shapeless"); } diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index 56032d009..717ec9cd5 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -1360,8 +1360,9 @@ public class ItemRenderLibrary { renderers.put(ModItems.ammo_himars, new ItemRenderBase( ) { public void renderInventory() { - GL11.glTranslated(0, -2.5, 0); - GL11.glScaled(4, 4, 4); + GL11.glTranslated(0, -2, 0); + double scale = 2.75D; + GL11.glScaled(scale, scale, scale); GL11.glRotated(System.currentTimeMillis() % 3600 / 10D, 0, 1, 0); } public void renderCommonWithStack(ItemStack item) { @@ -1370,7 +1371,20 @@ public class ItemRenderLibrary { GL11.glRotated(90, 1, 0, 0); HIMARSRocket type = ItemAmmoHIMARS.itemTypes[item.getItemDamage()]; GL11.glShadeModel(GL11.GL_SMOOTH); - bindTexture(type.texture); ResourceManager.turret_himars.renderPart(type.modelType == 0 ? "RocketStandard" : "RocketSingle"); + bindTexture(type.texture); + if(type.modelType == 0) { + GL11.glTranslated(0.75, 0, 0); + ResourceManager.turret_himars.renderPart("RocketStandard"); + GL11.glTranslated(-1.5, 0, 0); + GL11.glTranslated(0, -3.375D, 0); + ResourceManager.turret_himars.renderPart("TubeStandard"); + } else { + GL11.glTranslated(0.75, 0, 0); + ResourceManager.turret_himars.renderPart("RocketSingle"); + GL11.glTranslated(-1.5, 0, 0); + GL11.glTranslated(0, -3.375D, 0); + ResourceManager.turret_himars.renderPart("TubeSingle"); + } GL11.glShadeModel(GL11.GL_FLAT); }}); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java index 2f6a15989..91a84d522 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java @@ -266,7 +266,7 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro CrucibleRecipe recipe = getLoadedRecipe(); for(MaterialStack material : materials) { - boolean mainStack = recipe != null && getQuantaFromType(recipe.input, material.material) > 0; + boolean mainStack = recipe != null && (getQuantaFromType(recipe.input, material.material) > 0 || getQuantaFromType(recipe.output, material.material) > 0); if(mainStack) { this.addToStack(this.recipeStack, material); @@ -359,6 +359,7 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro //this allows pouring the ouput material back into the crucible if(recipe != null && getQuantaFromType(recipe.output, mat.material) > 0) { recipeAmount += mat.amount; + matchesRecipe = true; continue; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java index dacc1993f..40e65db2a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java @@ -63,7 +63,6 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid if(this.tanks[1].getFill() > 0) { this.sendFluid(); - fillFluidInit(tanks[1].getTankType()); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index 4cccb4016..aae146248 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -272,7 +272,7 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser slots[1].stackSize--; - if(slots[1].stackSize <=0) + if(slots[1].stackSize <= 0) slots[1] = null; this.markDirty(); @@ -286,7 +286,16 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser @Override public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return new int[] { 2, 4 }; + return new int[] { 1, 2, 4 }; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + + if(i == 1 && BreederRecipes.getOutput(itemStack) != null) + return true; + + return false; } private void produceByproduct() { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index ed3c69a31..3f17d439b 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -173,6 +173,8 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM if(rod.getStackInSlot(0) != null && rod.getStackInSlot(0).getItem() instanceof ItemRBMKRod) { rod.receiveFlux(stream, flux); return 0; + } else { + return flux; } } @@ -190,7 +192,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return 0; } - //set neutrons to slow + //multiply neutron count with rod setting if(te instanceof TileEntityRBMKControl) { TileEntityRBMKControl control = (TileEntityRBMKControl)te; @@ -227,7 +229,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM int hits = 0; for(int h = 0; h <= limit; h++) { - if(!worldObj.getBlock(x, y, z).isOpaqueCube()) + if(!worldObj.getBlock(x, y + h, z).isOpaqueCube()) hits++; } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java b/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java index 4308103a6..0949504e7 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java @@ -30,7 +30,7 @@ public class TileEntityConverterRfHe extends TileEntityLoadedBase implements IEn } private long subBuffer; - private boolean recursionBrake = false;; + private boolean recursionBrake = false; @Untested @Override diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java index cfc551c83..4ad7a19ee 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java @@ -160,17 +160,17 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen return mode == MODE_CANNON ? 20D : 50D; } - public int getShellLoaded() { + public ItemStack getShellLoaded() { for(int i = 1; i < 10; i++) { if(slots[i] != null) { if(slots[i].getItem() == ModItems.ammo_arty) { - return slots[i].getItemDamage(); + return slots[i]; } } } - return -1; + return null; } public void conusmeAmmo(Item ammo) { @@ -185,7 +185,7 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen this.markDirty(); } - public void spawnShell(int type) { + public void spawnShell(ItemStack type) { Vec3 pos = this.getTurretPos(); Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); @@ -196,7 +196,15 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen proj.setPositionAndRotation(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord, 0.0F, 0.0F); proj.setThrowableHeading(vec.xCoord, vec.yCoord, vec.zCoord, (float) getV0(), 0.0F); proj.setTarget((int) tPos.xCoord, (int) tPos.yCoord, (int) tPos.zCoord); - proj.setType(type); + proj.setType(type.getItemDamage()); + + if(type.getItemDamage() == 8 && type.hasTagCompound()) { + NBTTagCompound cargo = type.stackTagCompound.getCompoundTag("cargo"); + + if(cargo != null) { + proj.setCargo(ItemStack.loadItemStackFromNBT(cargo)); + } + } if(this.mode != this.MODE_CANNON) proj.setWhistle(true); @@ -353,9 +361,9 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen if(timer % delay == 0) { - int conf = this.getShellLoaded(); + ItemStack conf = this.getShellLoaded(); - if(conf != -1) { + if(conf != null) { this.spawnShell(conf); this.conusmeAmmo(ModItems.ammo_arty); this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.jeremy_fire", 25.0F, 1.0F); diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java index 58c0afe31..6e57f56b5 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java @@ -68,17 +68,17 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem @Override public double getBarrelLength() { - return 3D; + return 0.5D; } @Override public double getAcceptableInaccuracy() { - return 0; + return 5D; //they're guided missiles so who gives a shit } @Override public double getHeightOffset() { - return 3D; + return 5D; } @Override @@ -303,7 +303,7 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem if(this.hasAmmo() && this.tPos != null) { this.spawnShell(this.typeLoaded); this.ammo--; - this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.jeremy_fire", 25.0F, 1.0F); + this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:weapon.rocketFlame", 25.0F, 1.0F); } if(this.mode == this.MODE_MANUAL && !this.targetQueue.isEmpty()) { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 6ff8568b3..5f43b32ef 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -10,7 +10,7 @@ achievement.bossMeltdown.desc=Mehr schlecht als recht, aber was will man machen. achievement.bossMeltdown=3,6 Röntgen achievement.bossWorm.desc=Der Fabstaff. Mein Arsch. Jetzt fang an zu rechnen. achievement.bossWorm=Disassembling Balls-O-Tron -achievement.bossUFO.desc=Yo, what do we have here? A huge spacecraft pulling up to the bloockship? +achievement.bossUFO.desc=Yo, what do we have here? A huge spacecraft pulling up to the blockship? achievement.bossUFO=Ayy Lmao achievement.c20_5.desc=??? achievement.c20_5=Kapitel [ZWANZIG KOMMA FÜNF] @@ -76,8 +76,8 @@ achievement.space.desc=Scheitere in jeder möglichen Weise und verschwende 90 Mi achievement.space=Die finale Grenz-ach vergiss es achievement.tasteofblood.desc=ist nicht Teil des Testprotokolls. achievement.tasteofblood=Der Geschmack von Blut -achievement.witchtaunter.desc=Diese komischen Kraturen können dir garnichts! -achievement.witchtaunter=Hexen verstpotten +achievement.witchtaunter.desc=Diese komischen Kreaturen können dir garnichts! +achievement.witchtaunter=Hexen verspotten armor.blastProtection=Explosionsmodifikator: %s armor.cap=Schadensobergrenze: %s @@ -385,6 +385,7 @@ container.turretArty=Greg container.turretChekhov=Tschechows Gewehr container.turretFriendly=Mister Friendly container.turretFritz=Fritz +container.turretHIMARS=Henry container.turretHoward=Howard container.turretJeremy=Jeremy container.turretMaxwell=Maxwell @@ -752,6 +753,7 @@ item.ammo_9mm_chlorophyte.name=9mm Patrone (Grünalgen) item.ammo_9mm_du.name=9mm Patrone (DU) item.ammo_9mm_rocket.name=9mm Rakete item.ammo_arty.name=16" Artilleriegranate +item.ammo_arty_cargo.name=16" Artilleriegranate (Expresslieferung) item.ammo_arty_classic.name=16" Artilleriegranate (Das Factorio-Spezial) item.ammo_arty_he.name=16" Artilleriegranate (HE) item.ammo_arty_mini_nuke.name=16" Mikroatomgranate @@ -787,6 +789,8 @@ item.ammo_grenade_phosphorus.name=40mm Granate (WP) item.ammo_grenade_sleek.name=40mm Granate (IF-F&E) item.ammo_grenade_toxic.name=40mm Granate (Chemisch) item.ammo_grenade_tracer.name=40mm Übungsgranate +item.ammo_himars_standard.name=M28 gelenkte Artillerierakete +item.ammo_himars_single.name=M39A1 gelenkte Artillerierakete item.ammo_mirv.name=Mini-MIRV item.ammo_mirv_high.name=Mini-MIRV (Stark) item.ammo_mirv_low.name=Mini-MIRV (Schwach) @@ -3175,18 +3179,26 @@ tile.bomber.name=Abgestürtzer Bomber tile.book_guide.name=Hbm's Nuclear Tech Mod Handbuch [LEGACY] tile.boxcar.name=Güterwagon tile.brick_asbestos.name=Asbestziegel +tile.brick_asbestos_stairs.name=Asbestziegeltreppe tile.brick_compound.name=Verstärkter Verbund +tile.brick_compound_stairs.name=Verbundtreppe tile.brick_concrete.name=Betonziegel +tile.brick_concrete_stairs.name=Concrete Brick Stairs tile.brick_concrete_broken.name=Gebrochene Betonziegel +tile.brick_concrete_broken_stairs.name=Gebrochene Betonziegeltreppe tile.brick_concrete_cracked.name=Rissige Betonziegel +tile.brick_concrete_cracked_stairs.name=Rissige Betonziegeltreppe tile.brick_concrete_marked.name=Beschriebene Betonziegel tile.brick_concrete_mossy.name=Bemooste Betonziegel -tile.brick_ducrete.name=Ducrete-Ziegel +tile.brick_concrete_mossy.name=Bemooste Betonziegeltreppe +tile.brick_ducrete.name=Ducreteziegel +tile.brick_ducrete_stairs.name=Ducreteziegeltreppe tile.brick_dungeon.name=Berzelianitziegel tile.brick_dungeon_circle.name=Berzelianitkreis tile.brick_dungeon_flat.name=Berzelianitblock tile.brick_dungeon_tile.name=Berzelianitfliese tile.brick_fire.name=Schamottsteinziegel +tile.brick_fire_stairs.name=Schamottsteintreppe tile.brick_jungle.name=Enargitziegel tile.brick_jungle_circle.name=Mechanistenzirkel tile.brick_jungle_cracked.name=Rissige Enargitziegel @@ -3197,7 +3209,16 @@ tile.brick_jungle_mystic.name=Arkane Enargitziegel tile.brick_jungle_ooze.name=Radioaktive Enargitziegel tile.brick_jungle_trap.name=Enargit-Falle tile.brick_light.name=Helle Ziegel +tile.brick_light_stairs.name=Helle Ziegeltreppe tile.brick_obsidian.name=Obsidianziegel +tile.brick_obsidian_stairs.name=Obsidianziegeltreppe +tile.brick_slab.brick_asbestos.name=Asbestziegelstufe +tile.brick_slab.brick_compound.name=Verbundstufe +tile.brick_slab.brick_fire.name=Schamottsteinstufe +tile.brick_slab.brick_light.name=Helle Ziegelstufe +tile.brick_slab.brick_obsidian.name=Obsidianziegelstufe +tile.brick_slab.reinforced_brick.name=Verstärkte Steinstufe +tile.brick_slab.reinforced_stone.name=Verdichtete Steinstufe tile.broadcaster_pc.name=Korrupter Sender tile.burning_earth.name=Brennendes Gras tile.c4.name=C4 @@ -3224,6 +3245,12 @@ tile.cmb_brick_reinforced.name=Verstärkte CMB-Ziegel tile.compact_launcher.name=Kompakt-Startrampe tile.concrete.name=Betonfliese tile.concrete_asbestos.name=Asbestbeton +tile.concrete_asbestos_stairs.name=Asbestbetontreppe +tile.concrete_brick_slab.brick_concrete.name=Betonziegelstufe +tile.concrete_brick_slab.brick_concrete_broken.name=Rissige Betonziegelstufe +tile.concrete_brick_slab.brick_concrete_cracked.name=Gebrochene Betonziegelstufe +tile.concrete_brick_slab.brick_concrete_mossy.name=Bemooste Betonziegelstufe +tile.concrete_brick_slab.brick_ducrete.name=Ducreteziegelstufe tile.concrete_colored.black.name=Schwarzer Beton tile.concrete_colored.blue.name=Blauer Beton tile.concrete_colored.brown.name=Brauner Beton @@ -3241,7 +3268,14 @@ tile.concrete_colored.silver.name=Hellgrauer Beton tile.concrete_colored.white.name=Weißer Beton tile.concrete_colored.yellow.name=Gelber Beton tile.concrete_pillar.name=Stahlbetonsäule +tile.concrete_slab.concrete.name=Betonfliesenstufe +tile.concrete_slab.concrete_asbestos.name=Asbestbetonstufe +tile.concrete_slab.concrete_smooth.name=Betonstufe +tile.concrete_slab.ducrete.name=Ducretefliesenstufe +tile.concrete_slab.ducrete_smooth.name=Ducretestufe tile.concrete_smooth.name=Beton +tile.concrete_stairs.name=Betonfliesentreppe +tile.concrete_smooth_stairs.name=Betontreppe tile.concrete_super.name=Super Beton tile.concrete_super_broken.name=Schimmliger Schutt tile.conveyor.name=Förderband @@ -3324,8 +3358,10 @@ tile.dfc_stabilizer.name=DFC-Stabilisator tile.dirt_dead.name=Tote Erde tile.dirt_oily.name=Ölige Erde tile.drill_pipe.name=Bohrgestänge -tile.ducrete.name=Ducrete-Fliese +tile.ducrete.name=Ducretefliese +tile.ducrete_stairs.name=Ducretefliesentreppe tile.ducrete_smooth.name=Ducrete +tile.ducrete_smooth_stairs.name=Ducretetreppe tile.dummy_block.name=Dummyblock tile.dummy_port.name=Dummyblock (Stromanschluss) tile.dungeon_chain.name=Metallkette @@ -3469,6 +3505,7 @@ tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energiespeicherblock tile.machine_battery_potato.name=Kartoffelbatterieblock tile.machine_boiler.name=Boiler +tile.machine_boiler.desc=Großer Boiler zum Verdampfen von Wasser oder$Erhitzen von Öl. Benötigt externe Hitzequelle.$Wärmestransferrate: ΔT*0.01 TU/t tile.machine_boiler_electric_off.name=Elektrischer Boiler tile.machine_boiler_electric_on.name=Elektrischer Boiler tile.machine_boiler_off.name=Dampfkessel @@ -3743,6 +3780,7 @@ tile.red_pylon.name=Strommasten tile.red_pylon_large.name=Hochspannungsmasten tile.red_wire_coated.name=Geschirmtes rotes Kupferkabel tile.reinforced_brick.name=Verstärkter Stein +tile.reinforced_brick_stairs.name=Verstärkte Steintreppe tile.reinforced_ducrete.name=Verstärkter Ducrete tile.reinforced_glass.name=Verstärktes Glas tile.reinforced_lamp_off.name=Verstärkte Lampe @@ -3750,6 +3788,7 @@ tile.reinforced_lamp_on.name=Verstärkte Lampe tile.reinforced_light.name=Verstärkter Glowstone tile.reinforced_sand.name=Verstärkter Sandstein tile.reinforced_stone.name=Verdichteter Stein +tile.reinforced_stone_stairs.name=Verdichtete Steintreppe tile.rejuvinator.name=Regenerationsmaschine tile.residue.name=Wolkenrückstände tile.safe.name=Panzerschrank @@ -3835,6 +3874,7 @@ tile.turret_cwis.name=Phalanx Mk-15 CIWS tile.turret_flamer.name=Flammenwerfergeschütz tile.turret_friendly.name=Gatlingeschütz "Mister Friendly" tile.turret_fritz.name=Schwered Flammenwerfergeschütz "Fritz" +tile.turret_himars.name=Raketenartilleriegeschütz "Henry" tile.turret_heavy.name=Schweres MG-Geschütz tile.turret_howard.name=Goalkeeper-Zwilling CIWS "Howard" tile.turret_howard_damaged.name=Goalkeeper-Zwilling CIWS "turret_howard_damaged" diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index e7dee54f0..94bca60ad 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -576,6 +576,7 @@ container.turretArty=Greg container.turretChekhov=Chekhov's Gun container.turretFriendly=Mister Friendly container.turretFritz=Fritz +container.turretHIMARS=Henry container.turretHoward=Howard container.turretJeremy=Jeremy container.turretMaxwell=Maxwell @@ -980,6 +981,7 @@ item.ammo_9mm_chlorophyte.name=9mm Round (Chlorophyte) item.ammo_9mm_du.name=9mm Round (DU) item.ammo_9mm_rocket.name=9mm Rocket item.ammo_arty.name=16" Artillery Shell +item.ammo_arty_cargo.name=16" Express Delivery Artillery Shell item.ammo_arty_classic.name=16" Artillery Shell (The Factorio Special) item.ammo_arty_he.name=16" High Explosive Artillery Shell item.ammo_arty_mini_nuke.name=16" Micro Nuclear Artillery Shell @@ -1015,6 +1017,8 @@ item.ammo_grenade_phosphorus.name=40mm Grenade (WP) item.ammo_grenade_sleek.name=40mm Grenade (IF-R&D) item.ammo_grenade_toxic.name=40mm Grenade (Chemical) item.ammo_grenade_tracer.name=40mm Training Grenade +item.ammo_himars_standard.name=M28 Guided Artillery Rocket Pod +item.ammo_himars_single.name=M39A1 Guided Artillery Rocket Pod item.ammo_mirv.name=Mini MIRV item.ammo_mirv_high.name=Mini MIRV (High Yield) item.ammo_mirv_low.name=Mini MIRV (Low Yield) @@ -3612,18 +3616,26 @@ tile.bomber.name=Crashed Bomber tile.book_guide.name=Hbm's Nuclear Tech Mod Manual [LEGACY] tile.boxcar.name=Boxcar tile.brick_asbestos.name=Asbestos Bricks +tile.brick_asbestos_stairs.name=Asbestos Brick Stairs tile.brick_compound.name=Compound Mesh +tile.brick_compound_stairs.name=Compound Mesh Stairs tile.brick_concrete.name=Concrete Bricks +tile.brick_concrete_stairs.name=Concrete Brick Stairs tile.brick_concrete_broken.name=Broken Concrete Bricks +tile.brick_concrete_broken_stairs.name=Broken Concrete Brick Stairs tile.brick_concrete_cracked.name=Cracked Concrete Bricks +tile.brick_concrete_cracked_stairs.name=Cracked Concrete Brick Stairs tile.brick_concrete_marked.name=Marked Concrete Bricks tile.brick_concrete_mossy.name=Mossy Concrete Bricks +tile.brick_concrete_mossy_stairs.name=Mossy Concrete Brick Stairs tile.brick_ducrete.name=Ducrete Bricks +tile.brick_ducrete_stairs.name=Ducrete Brick Stairs tile.brick_dungeon.name=Berzelianite Bricks tile.brick_dungeon_circle.name=Berzelianite Cirlce tile.brick_dungeon_flat.name=Berzelianite Block tile.brick_dungeon_tile.name=Berzelianite Tile tile.brick_fire.name=Firebricks +tile.brick_fire_stairs.name=Firebrick Stairs tile.brick_jungle.name=Enargite Bricks tile.brick_jungle_circle.name=Mechanist's Circle tile.brick_jungle_cracked.name=Cracked Enargite Bricks @@ -3634,7 +3646,16 @@ tile.brick_jungle_mystic.name=Arcane Enargite Bricks tile.brick_jungle_ooze.name=Radioactive Enargite Bricks tile.brick_jungle_trap.name=Trapped Enargite Bricks tile.brick_light.name=Light Bricks +tile.brick_light_stairs.name=Light Bricks Stairs tile.brick_obsidian.name=Obsidian Bricks +tile.brick_obsidian_stairs.name=Obsidian Brick Stairs +tile.brick_slab.brick_asbestos.name=Asbestos Brick Slab +tile.brick_slab.brick_compound.name=Compound Mesh Slab +tile.brick_slab.brick_fire.name=Firebrick Slab +tile.brick_slab.brick_light.name=Light Brick Slab +tile.brick_slab.brick_obsidian.name=Obsidian Brick Slab +tile.brick_slab.reinforced_brick.name=Reinforced Stone Slab +tile.brick_slab.reinforced_stone.name=Dense Stone Slab tile.broadcaster_pc.name=Corrupted Broadcaster tile.burning_earth.name=Burning Grass tile.c4.name=C-4 @@ -3661,6 +3682,12 @@ tile.cmb_brick_reinforced.name=Reinforced CMB Bricks tile.compact_launcher.name=Compact Launch Pad tile.concrete.name=Concrete Tile tile.concrete_asbestos.name=Asbestos Concrete +tile.concrete_asbestos_stairs.name=Asbestos Concrete Stairs +tile.concrete_brick_slab.brick_concrete.name=Concrete Brick Slab +tile.concrete_brick_slab.brick_concrete_broken.name=Broken Concrete Brick Slab +tile.concrete_brick_slab.brick_concrete_cracked.name=Cracked Concrete Brick Slab +tile.concrete_brick_slab.brick_concrete_mossy.name=Mossy Concrete Brick Slab +tile.concrete_brick_slab.brick_ducrete.name=Ducrete Brick Slab tile.concrete_colored.black.name=Black Concrete tile.concrete_colored.blue.name=Blue Concrete tile.concrete_colored.brown.name=Brown Concrete @@ -3678,7 +3705,14 @@ tile.concrete_colored.silver.name=Light Gray Concrete tile.concrete_colored.white.name=White Concrete tile.concrete_colored.yellow.name=Yellow Concrete tile.concrete_pillar.name=Rebar Reinforced Concrete Pillar -tile.concrete_smooth.name=Concrete +tile.concrete_slab.concrete.name=Concrete Tile Slab +tile.concrete_slab.concrete_asbestos.name=Asbestos Concrete Slab +tile.concrete_slab.concrete_smooth.name=Concrete Slab +tile.concrete_slab.ducrete.name=Ducrete Tile Slab +tile.concrete_slab.ducrete_smooth.name=Ducrete Slab +tile.concrete_smooth.name=Concrete Stairs +tile.concrete_smooth_stairs.name=Concrete +tile.concrete_stairs.name=Concrete Tile Stairs tile.concrete_super.name=Über Concrete tile.concrete_super_broken.name=Moldy Debris tile.conveyor.name=Conveyor Belt @@ -3763,7 +3797,9 @@ tile.dirt_dead.name=Dead Dirt tile.dirt_oily.name=Oily Dirt tile.drill_pipe.name=Drill Pipe tile.ducrete.name=Ducrete Tile +tile.ducrete_stairs.name=Ducrete Tile Stairs tile.ducrete_smooth.name=Ducrete +tile.ducrete_smooth_stairs.name=Ducrete Stairs tile.dummy_block.name=Dummy Block tile.dummy_port.name=Dummy Block (Electricity Port) tile.dungeon_chain.name=Metal Chain @@ -3907,6 +3943,7 @@ tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energy Storage Block tile.machine_battery_potato.name=Potato Battery Block tile.machine_boiler.name=Boiler +tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t tile.machine_boiler_electric_off.name=Electric Boiler tile.machine_boiler_electric_on.name=Electric Boiler tile.machine_boiler_off.name=Boiler @@ -4184,6 +4221,7 @@ tile.red_pylon.name=Electricity Pole tile.red_pylon_large.name=Large Electricity Pylon tile.red_wire_coated.name=Coated Red Copper Cable tile.reinforced_brick.name=Reinforced Stone +tile.reinforced_brick_stairs.name=Reinforced Stone Stairs tile.reinforced_ducrete.name=Reinforced Ducrete tile.reinforced_glass.name=Reinforced Glass tile.reinforced_lamp_off.name=Reinforced Lamp @@ -4191,6 +4229,7 @@ tile.reinforced_lamp_on.name=Reinforced Lamp tile.reinforced_light.name=Reinforced Glowstone tile.reinforced_sand.name=Reinforced Sandstone tile.reinforced_stone.name=Dense Stone +tile.reinforced_stone_stairs.name=Dense Stone Stairs tile.rejuvinator.name=Rejuvination Device tile.residue.name=Cloud Residue tile.safe.name=Safe @@ -4277,6 +4316,7 @@ tile.turret_flamer.name=Flamethrower Turret tile.turret_friendly.name=Chaingun Turret "Mister Friendly" tile.turret_fritz.name=Heavy Flamethrower Turret "Fritz" tile.turret_heavy.name=Heavy Machine Gun Turret +tile.turret_himars.name=Rocket Artillery Turret "Henry" tile.turret_howard.name=Goalkeeper Twin Chaingun CIWS "Howard" tile.turret_howard_damaged.name=Goalkeeper Twin Chaingun CIWS "Methusalem" tile.turret_jeremy.name=Autocannon Turret "Jeremy" diff --git a/src/main/resources/assets/hbm/textures/items/ammo_arty_cargo.png b/src/main/resources/assets/hbm/textures/items/ammo_arty_cargo.png index 471ce714d..1e5b2b287 100644 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_arty_cargo.png and b/src/main/resources/assets/hbm/textures/items/ammo_arty_cargo.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_arty_cargo_full.png b/src/main/resources/assets/hbm/textures/items/ammo_arty_cargo_full.png new file mode 100644 index 000000000..471ce714d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_arty_cargo_full.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_arty_cargo_open.png b/src/main/resources/assets/hbm/textures/items/ammo_arty_cargo_open.png deleted file mode 100644 index 1e5b2b287..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_arty_cargo_open.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turrets/himars.png b/src/main/resources/assets/hbm/textures/models/turrets/himars.png index 5b625e303..20d361c0a 100644 Binary files a/src/main/resources/assets/hbm/textures/models/turrets/himars.png and b/src/main/resources/assets/hbm/textures/models/turrets/himars.png differ diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index d99a28e57..3041f9144 100755 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "hbm", "name": "Hbm's Nuclear Tech", "description": "A mod that adds weapons, nuclear themed stuff and machines", - "version":"1.0.27_X4375", + "version":"1.0.27_X4389", "mcversion": "1.7.10", "url": "", "updateUrl": "",