diff --git a/changelog b/changelog index 0e5beef67..b57ae1165 100644 --- a/changelog +++ b/changelog @@ -7,6 +7,7 @@ * All non black powder shotgun shells now have some amount of damage threshold negation in order to not immediately become useless when used against early power armor * Obviously shot will always fare worse against higher tier armor, in those cases either use flechettes, slugs, any of the high tier rounds or a different caliber entirely * Bombers and cargo planes now use interpolation, making their movement smoother and fixing potential desyncs due to TPS +* Trenchmaster armor no longer displays benefits that no longer exist ## Fixed * Fixed 9mm soft points being called ".9mm" @@ -24,4 +25,5 @@ * Fixed JHP's negative armor piercing value not being counted right, breaking the "armor is worth more" system * Fixed the second UZI dealing more damage than it should * Potentially fixed an issue where artillery rockets would sometimes get stuck mid-air -* Fixed the artillery rocket turret's grace range not being 250 as advertised \ No newline at end of file +* Fixed the artillery rocket turret's grace range not being 250 as advertised +* Fixed black powder shotshells using smokeless powder instead of smokeful powder \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/generic/BlockPedestal.java b/src/main/java/com/hbm/blocks/generic/BlockPedestal.java index 9f4ace30b..6ca0a2586 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockPedestal.java +++ b/src/main/java/com/hbm/blocks/generic/BlockPedestal.java @@ -1,6 +1,10 @@ package com.hbm.blocks.generic; +import com.hbm.inventory.recipes.PedestalRecipes; +import com.hbm.inventory.recipes.PedestalRecipes.PedestalRecipe; import com.hbm.lib.RefStrings; +import com.hbm.particle.helper.ExplosionSmallCreator; +import com.hbm.util.Compat; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; @@ -20,6 +24,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class BlockPedestal extends BlockContainer { @@ -108,6 +113,73 @@ public class BlockPedestal extends BlockContainer { super.breakBlock(world, x, y, z, block, meta); } + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block b) { + if(!world.isRemote) { + if(world.isBlockIndirectlyGettingPowered(x, y, z)) { + + TileEntityPedestal nw = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.NORTH.offsetX * 2 + ForgeDirection.WEST.offsetX * 2, y, z + ForgeDirection.NORTH.offsetZ * 2 + ForgeDirection.WEST.offsetZ * 2)); + TileEntityPedestal n = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.NORTH.offsetX * 3, y, z + ForgeDirection.NORTH.offsetZ * 3)); + TileEntityPedestal ne = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.NORTH.offsetX * 2 + ForgeDirection.EAST.offsetX * 2, y, z + ForgeDirection.NORTH.offsetZ * 2 + ForgeDirection.EAST.offsetZ * 2)); + TileEntityPedestal w = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.WEST.offsetX * 3, y, z + ForgeDirection.WEST.offsetZ * 3)); + TileEntityPedestal center = (TileEntityPedestal) world.getTileEntity(x, y, z); + TileEntityPedestal e = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.EAST.offsetX * 3, y, z + ForgeDirection.EAST.offsetZ * 3)); + TileEntityPedestal sw = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.SOUTH.offsetX * 2 + ForgeDirection.WEST.offsetX * 2, y, z + ForgeDirection.SOUTH.offsetZ * 2 + ForgeDirection.WEST.offsetZ * 2)); + TileEntityPedestal s = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.SOUTH.offsetX * 3, y, z + ForgeDirection.SOUTH.offsetZ * 3)); + TileEntityPedestal se = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.SOUTH.offsetX * 2 + ForgeDirection.EAST.offsetX * 2, y, z + ForgeDirection.SOUTH.offsetZ * 2 + ForgeDirection.EAST.offsetZ * 2)); + + TileEntityPedestal[] tileArray = new TileEntityPedestal[] {nw, n, ne, w, center, e, sw, s, se}; + + outer: for(PedestalRecipe recipe : PedestalRecipes.recipes) { + + if(recipe.extra == recipe.extra.FULL_MOON) { + if(world.getCelestialAngle(0) < 0.35 || world.getCelestialAngle(0) > 0.65) continue; + if(world.getMoonPhase() != 0) continue; + } + + if(recipe.extra == recipe.extra.NEW_MOON) { + if(world.getCelestialAngle(0) < 0.35 || world.getCelestialAngle(0) > 0.65) continue; + if(world.getMoonPhase() != 4) continue; + } + + if(recipe.extra == recipe.extra.SUN) { + if(world.getCelestialAngle(0) > 0.15 || world.getCelestialAngle(0) < 0.85) continue; + } + + for(int i = 0; i < 9; i++) { + ItemStack pedestal = tileArray[i] != null ? tileArray[i].item : null; + if(pedestal == null && recipe.input[i] != null) continue outer; + if(pedestal != null && recipe.input[i] == null) continue outer; + if(pedestal == null && recipe.input[i] == null) continue; + + if(!recipe.input[i].matchesRecipe(pedestal, true) || recipe.input[i].stacksize != pedestal.stackSize) continue outer; + } + + for(int i = 0; i < 9; i++) { + if(i == 4) continue; + ItemStack pedestal = tileArray[i] != null ? tileArray[i].item : null; + if(pedestal == null && recipe.input[i] == null) continue; + tileArray[i].item = null; + tileArray[i].markDirty(); + world.markBlockForUpdate(tileArray[i].xCoord, tileArray[i].yCoord, tileArray[i].zCoord); + } + + center.item = recipe.output.copy(); + center.markDirty(); + world.markBlockForUpdate(x, y, z); + ExplosionSmallCreator.composeEffect(world, x + 0.5, y + 1.5, z + 0.5, 10, 2.5F, 1F); + + return; + } + } + } + } + + public static TileEntityPedestal castOrNull(TileEntity tile) { + if(tile instanceof TileEntityPedestal) return (TileEntityPedestal) tile; + return null; + } + public static class TileEntityPedestal extends TileEntity { public ItemStack item; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenClayTablet.java b/src/main/java/com/hbm/inventory/gui/GUIScreenClayTablet.java new file mode 100644 index 000000000..0038befa3 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenClayTablet.java @@ -0,0 +1,141 @@ +package com.hbm.inventory.gui; + +import java.util.List; +import java.util.Random; + +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.recipes.PedestalRecipes; +import com.hbm.inventory.recipes.PedestalRecipes.PedestalRecipe; +import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class GUIScreenClayTablet extends GuiScreen { + + protected int xSize = 142; + protected int ySize = 84; + protected int guiLeft; + protected int guiTop; + + protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/guide_pedestal.png"); + + public GUIScreenClayTablet() { } + + public void initGui() { + super.initGui(); + this.guiLeft = (this.width - this.xSize) / 2; + this.guiTop = (this.height - this.ySize) / 2; + } + + public void drawScreen(int mouseX, int mouseY, float f) { + this.drawDefaultBackground(); + this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY); + GL11.glDisable(GL11.GL_LIGHTING); + this.drawGuiContainerForegroundLayer(mouseX, mouseY); + GL11.glEnable(GL11.GL_LIGHTING); + } + + protected void drawGuiContainerForegroundLayer(int i, int j) { } + + protected void drawGuiContainerBackgroundLayer(float f, int i, int j) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + + if(player.getHeldItem() != null && player.getHeldItem().hasTagCompound() && player.getHeldItem().stackTagCompound.hasKey("tabletSeed") && !PedestalRecipes.recipes.isEmpty()) { + Random rand = new Random(player.getHeldItem().stackTagCompound.getLong("tabletSeed")); + PedestalRecipe recipe = PedestalRecipes.recipes.get(rand.nextInt(PedestalRecipes.recipes.size())); + + if(recipe.extra == recipe.extra.FULL_MOON) drawTexturedModalRect(guiLeft + 120, guiTop + 62, 142, 32, 16, 16); + if(recipe.extra == recipe.extra.NEW_MOON) drawTexturedModalRect(guiLeft + 120, guiTop + 62, 142, 48, 16, 16); + if(recipe.extra == recipe.extra.SUN) drawTexturedModalRect(guiLeft + 120, guiTop + 62, 142, 64, 16, 16); + + for(int l = 0; l < 3; l++) { + for(int r = 0; r < 3; r++) { + if(rand.nextBoolean()) { + drawTexturedModalRect(guiLeft + 7 + r * 27, guiTop + 7 + l * 27, 142, 16, 16, 16); + } else { + + AStack ingredient = recipe.input[r + l * 3]; + + if(ingredient == null) { + drawTexturedModalRect(guiLeft + 7 + r * 27, guiTop + 7 + l * 27, 142, 0, 16, 16); + continue; + } + + List inputs = ingredient.extractForNEI(); + ItemStack input = inputs.size() <= 0 ? new ItemStack(ModItems.nothing) : inputs.get((int) (Math.abs(System.currentTimeMillis() / 1000) % inputs.size())); + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + RenderHelper.enableGUIStandardItemLighting(); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + + FontRenderer font = null; + if(input != null) font = input.getItem().getFontRenderer(recipe.output); + if(font == null) font = fontRendererObj; + + itemRender.zLevel = 300.0F; + itemRender.renderItemAndEffectIntoGUI(font, this.mc.getTextureManager(), input, guiLeft + 7 + r * 27, guiTop + 7 + l * 27); + itemRender.renderItemOverlayIntoGUI(font, this.mc.getTextureManager(), input, guiLeft + 7 + r * 27, guiTop + 7 + l * 27, input.stackSize > 1 ? (input.stackSize + "") : null); + itemRender.zLevel = 0.0F; + + GL11.glDisable(GL11.GL_LIGHTING); + this.mc.getTextureManager().bindTexture(texture); + this.zLevel = 300.0F; + } + } + } + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + RenderHelper.enableGUIStandardItemLighting(); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + + FontRenderer font = null; + if(recipe.output != null) font = recipe.output.getItem().getFontRenderer(recipe.output); + if(font == null) font = fontRendererObj; + + itemRender.zLevel = 300.0F; + itemRender.renderItemAndEffectIntoGUI(font, this.mc.getTextureManager(), recipe.output, guiLeft + xSize / 2 - 8, guiTop - 20); + itemRender.renderItemOverlayIntoGUI(font, this.mc.getTextureManager(), recipe.output, guiLeft + xSize / 2 - 8, guiTop - 20, recipe.output.stackSize > 1 ? (recipe.output.stackSize + "") : null); + itemRender.zLevel = 0.0F; + + GL11.glDisable(GL11.GL_LIGHTING); + + this.mc.getTextureManager().bindTexture(texture); + this.zLevel = 300.0F; + + GL11.glDisable(GL11.GL_DEPTH_TEST); + String label = recipe.output.getDisplayName(); + font.drawString(label, guiLeft + (xSize - font.getStringWidth(label)) / 2, guiTop - 30, 0xffffff); + + } else { + + for(int l = 0; l < 3; l++) { + for(int r = 0; r < 3; r++) { + drawTexturedModalRect(guiLeft + 7 + r * 27, guiTop + 7 + l * 27, 142, 16, 16, 16); + } + } + } + } + + @Override + protected void keyTyped(char c, int key) { + if(key == 1 || key == this.mc.gameSettings.keyBindInventory.getKeyCode()) { + this.mc.thePlayer.closeScreen(); + } + } + + @Override public boolean doesGuiPauseGame() { return false; } +} diff --git a/src/main/java/com/hbm/inventory/recipes/AmmoPressRecipes.java b/src/main/java/com/hbm/inventory/recipes/AmmoPressRecipes.java index eca9aac34..28d02f393 100644 --- a/src/main/java/com/hbm/inventory/recipes/AmmoPressRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AmmoPressRecipes.java @@ -197,15 +197,15 @@ public class AmmoPressRecipes extends SerializableRecipe { recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G12_BP, 6), null, nugget.copy(6), null, - null, smokeless, null, + null, smokeful, null, null, bpShell, null)); recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G12_BP_MAGNUM, 6), null, nugget.copy(8), null, - null, smokeless, null, + null, smokeful, null, null, bpShell, null)); recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G12_BP_SLUG, 6), null, lead, null, - null, smokeless, null, + null, smokeful, null, null, bpShell, null)); recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G12, 6), diff --git a/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java b/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java index b91856a80..fcbfb1934 100644 --- a/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java @@ -4,15 +4,22 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import static com.hbm.inventory.OreDictManager.*; + import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ItemEnums.EnumSecretType; +import com.hbm.items.food.ItemConserve.EnumFoodType; import com.hbm.items.ModItems; +import net.minecraft.init.Items; import net.minecraft.item.ItemStack; public class PedestalRecipes extends SerializableRecipe { @@ -23,9 +30,47 @@ public class PedestalRecipes extends SerializableRecipe { public void registerDefaults() { recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_light_revolver_dani), - null, null, null, - null, new ComparableStack(ModItems.gun_light_revolver), null, - null, null, null)); + null, new OreDictStack(PB.plate()), null, + new OreDictStack(GOLD.plate()), new ComparableStack(ModItems.gun_light_revolver), new OreDictStack(GOLD.plate()), + null, new OreDictStack(PB.plate()), null)); + + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_maresleg_broken), + new ComparableStack(ModBlocks.barbed_wire), new OreDictStack(WEAPONSTEEL.plate()), new ComparableStack(ModBlocks.barbed_wire), + new OreDictStack(WEAPONSTEEL.plate()), new ComparableStack(ModItems.gun_maresleg), new OreDictStack(WEAPONSTEEL.plate()), + new ComparableStack(ModBlocks.barbed_wire), new OreDictStack(WEAPONSTEEL.plate()), new ComparableStack(ModBlocks.barbed_wire))); + + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_heavy_revolver_lilmac), + new OreDictStack(WEAPONSTEEL.plate()), new OreDictStack(DIAMOND.gem()), new OreDictStack(WEAPONSTEEL.plate()), + new ComparableStack(ModItems.powder_magic), new ComparableStack(ModItems.gun_heavy_revolver), null, + null, new OreDictStack(BONE.grip()), new ComparableStack(Items.apple, 3))); + + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_heavy_revolver_protege), + new ComparableStack(ModBlocks.chain, 16), new OreDictStack(CINNABAR.gem()), new ComparableStack(ModBlocks.chain, 16), + new ComparableStack(ModItems.scrap_nuclear), new ComparableStack(ModItems.gun_heavy_revolver), new ComparableStack(ModItems.scrap_nuclear), + new ComparableStack(ModBlocks.chain, 16), new OreDictStack(CINNABAR.gem()), new ComparableStack(ModBlocks.chain, 16))); + + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_flamer_daybreaker), + new OreDictStack(GOLD.plateCast()), new ComparableStack(ModItems.canned_conserve, 1, EnumFoodType.JIZZ), new OreDictStack(GOLD.plateCast()), + new OreDictStack(P_WHITE.ingot()), new ComparableStack(ModItems.gun_flamer), new OreDictStack(P_WHITE.ingot()), + new OreDictStack(GOLD.plateCast()), new ComparableStack(ModItems.stick_dynamite), new OreDictStack(GOLD.plateCast())) + .extra(PedestalExtraCondition.SUN)); + + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_autoshotgun_sexy), + new ComparableStack(ModItems.bolt_spike, 16), new OreDictStack(STAR.ingot(), 4), new ComparableStack(ModItems.bolt_spike, 16), + new ComparableStack(ModItems.card_qos), new ComparableStack(ModItems.gun_autoshotgun), new ComparableStack(ModItems.card_aos), + new ComparableStack(ModItems.bolt_spike, 16), new OreDictStack(STAR.ingot(), 4), new ComparableStack(ModItems.bolt_spike, 16))); + + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_minigun_lacunae), + null, new ComparableStack(ModItems.powder_magic, 4), null, + new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL), new ComparableStack(ModItems.gun_minigun), new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL), + null, new ComparableStack(ModItems.powder_magic, 4), null) + .extra(PedestalExtraCondition.FULL_MOON)); + + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_folly), + new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL), new ComparableStack(ModItems.item_secret, 2, EnumSecretType.CONTROLLER), new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL), + new OreDictStack(BSCCO.ingot(), 16), new OreDictStack(STAR.block(), 64), new OreDictStack(BSCCO.ingot(), 16), + new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL), new ComparableStack(ModItems.item_secret, 2, EnumSecretType.CONTROLLER), new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL)) + .extra(PedestalExtraCondition.FULL_MOON)); } @Override @@ -60,7 +105,12 @@ public class PedestalRecipes extends SerializableRecipe { } } - this.recipes.add(new PedestalRecipe(output, input)); + PedestalRecipe rec = new PedestalRecipe(output, input); + if(obj.has("extra")) { + rec.extra = PedestalExtraCondition.valueOf(obj.get("extra").getAsString()); + } + + this.recipes.add(rec); } @Override @@ -79,15 +129,27 @@ public class PedestalRecipes extends SerializableRecipe { } } writer.endArray(); + + writer.name("extra").value(rec.extra.name()); + } + + public static enum PedestalExtraCondition { + NONE, FULL_MOON, NEW_MOON, SUN } public static class PedestalRecipe { public ItemStack output; public AStack[] input; + public PedestalExtraCondition extra = PedestalExtraCondition.NONE; public PedestalRecipe(ItemStack output, AStack... input) { this.output = output; this.input = input; } + + public PedestalRecipe extra(PedestalExtraCondition extra) { + this.extra = extra; + return this; + } } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index dc05a705e..122914125 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -5219,7 +5219,7 @@ public class ModItems { book_lore = new ItemBookLore().setUnlocalizedName("book_lore").setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_pages"); holotape_image = new ItemHolotapeImage().setUnlocalizedName("holotape_image").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape"); holotape_damaged = new Item().setUnlocalizedName("holotape_damaged").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape_damaged"); - clay_tablet = new Item().setUnlocalizedName("clay_tablet").setCreativeTab(null).setTextureName(RefStrings.MODID + ":clay_tablet"); + clay_tablet = new ItemClayTablet().setUnlocalizedName("clay_tablet").setCreativeTab(null).setTextureName(RefStrings.MODID + ":clay_tablet"); polaroid = new ItemPolaroid().setUnlocalizedName("polaroid").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":polaroid_" + MainRegistry.polaroidID); glitch = new ItemGlitch().setUnlocalizedName("glitch").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glitch_" + MainRegistry.polaroidID); diff --git a/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java index 4967059fc..415da3813 100644 --- a/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java +++ b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.extprop.HbmPlayerProps; import com.hbm.render.model.ModelArmorTrenchmaster; -import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -12,7 +11,6 @@ import net.minecraft.client.model.ModelBiped; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.event.entity.living.LivingAttackEvent; import net.minecraftforge.event.entity.living.LivingHurtEvent; @@ -44,8 +42,8 @@ public class ArmorTrenchmaster extends ArmorFSB { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { super.addInformation(stack, player, list, ext); - list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.fasterReload")); - list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.moreAmmo")); + //list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.fasterReload")); + //list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.moreAmmo")); } @Override diff --git a/src/main/java/com/hbm/items/special/ItemClayTablet.java b/src/main/java/com/hbm/items/special/ItemClayTablet.java new file mode 100644 index 000000000..c41a8a1d9 --- /dev/null +++ b/src/main/java/com/hbm/items/special/ItemClayTablet.java @@ -0,0 +1,39 @@ +package com.hbm.items.special; + +import com.hbm.inventory.gui.GUIScreenClayTablet; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.IGUIProvider; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class ItemClayTablet extends Item implements IGUIProvider { + + public ItemClayTablet() { + this.setMaxDamage(0); + this.setMaxStackSize(1); + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + if(!world.isRemote && !stack.hasTagCompound()) { + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setLong("tabletSeed", player.getRNG().nextLong()); + } + if(world.isRemote) player.openGui(MainRegistry.instance, 0, world, 0, 0, 0); + return stack; + } + + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } + + @Override @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIScreenClayTablet(); + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java index 5ad1fbd0d..b1aa0cf24 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java @@ -102,7 +102,7 @@ public class XFactory12ga { .anim(LAMBDA_MARESLEG_SHORT_ANIMS).orchestra(Orchestras.ORCHESTRA_MARESLEG_AKIMBO), new GunConfig().dura(600).draw(5).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) - .dmg(12F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.shotgun", 1.0F, 1.0F) + .dmg(16F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.shotgun", 1.0F, 1.0F) .mag(new MagazineSingleReload(1, 6).addConfigs(all)) .offset(0.75, -0.0625, -0.1875) .setupStandardFire().recoil(LAMBDA_RECOIL_MARESLEG)) diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index e69a50c59..699707de6 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -852,7 +852,8 @@ public class ModEventHandler { if(servo != null && servo.getItem() == ModItems.ballistic_gauntlet) { - BulletConfiguration firedConfig = null; + //TODO: fix this shit + /*BulletConfig firedConfig = null; for(Integer config : HbmCollection.g12) { BulletConfiguration cfg = BulletConfigSyncingUtil.pullConfig(config); @@ -876,7 +877,7 @@ public class ModEventHandler { } player.worldObj.playSoundAtEntity(player, "hbm:weapon.shotgunShoot", 1.0F, 1.0F); - } + }*/ } } } diff --git a/src/main/java/com/hbm/render/util/RenderInfoSystem.java b/src/main/java/com/hbm/render/util/RenderInfoSystem.java index 28a775097..773c5e618 100644 --- a/src/main/java/com/hbm/render/util/RenderInfoSystem.java +++ b/src/main/java/com/hbm/render/util/RenderInfoSystem.java @@ -51,7 +51,7 @@ public class RenderInfoSystem { return; //this.messages.put(-666, new InfoEntry(Minecraft.getMinecraft().theWorld.getCelestialAngle(0) + "", 666_666)); - //this.messages.put(-665, new InfoEntry(Minecraft.getMinecraft().theWorld.getCurrentMoonPhaseFactor() + "", 666_666)); + //this.messages.put(-665, new InfoEntry(Minecraft.getMinecraft().theWorld.getMoonPhase() + "", 666_666)); if(this.messages.isEmpty()) return; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 08c9f7719..57070d426 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1782,6 +1782,7 @@ item.cladding_lead.name=Bleibeschläge item.cladding_obsidian.name=Obsidianhaut item.cladding_paint.name=Bleifarbe item.cladding_rubber.name=Gummibeschlag +item.clay_tablet.name=Tontafel item.clip_bf.name=BF-Geschosse im Doppelpack item.clip_bolt_action.name=12x74 Brenneke-Patronenbox item.clip_cryolator.name=Großer Kryogentank diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index c74efefc5..0acb14598 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2555,6 +2555,7 @@ item.cladding_lead.name=Lead Cladding item.cladding_obsidian.name=Obsidian Skin item.cladding_paint.name=Lead Paint item.cladding_rubber.name=Rubber Cladding +item.clay_tablet.name=Clay Tablet item.clip_bf.name=BF-Shell Double Pack item.clip_bolt_action.name=Box of 12x74 Slugs item.clip_cryolator.name=Tank of Cryolator Fuel diff --git a/src/main/resources/assets/hbm/textures/gui/guide_pedestal.png b/src/main/resources/assets/hbm/textures/gui/guide_pedestal.png index 57c5c39bc..1e939e6c6 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/guide_pedestal.png and b/src/main/resources/assets/hbm/textures/gui/guide_pedestal.png differ