diff --git a/src/main/java/com/hbm/blocks/generic/BlockCanCrate.java b/src/main/java/com/hbm/blocks/generic/BlockCanCrate.java index dfd145801..f9b27c5a8 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCanCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCanCrate.java @@ -5,12 +5,14 @@ import java.util.List; import java.util.Random; import com.hbm.items.ModItems; +import com.hbm.items.food.ItemConserve.EnumFoodType; import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.util.ChatComponentText; import net.minecraft.world.World; @@ -47,38 +49,34 @@ public class BlockCanCrate extends Block { return true; } - + + public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { + ArrayList ret = new ArrayList(); + + int count = quantityDropped(metadata, fortune, world.rand); + for(int i = 0; i < count; i++) { + Item item = getItemDropped(metadata, world.rand, fortune); + if(item != null) + ret.add(new ItemStack(item, 1, damageDropped(metadata, world.rand, item))); + } + + return ret; + } + + //pain + public int damageDropped(int meta, Random rand, Item item) { + if(item != ModItems.canned_conserve) + return damageDropped(meta); + else + return Math.abs(rand.nextInt() % EnumFoodType.values().length); + } + @Override public Item getItemDropped(int i, Random rand, int j) { List items = new ArrayList(); - items.add(ModItems.canned_beef); - items.add(ModItems.canned_tuna); - items.add(ModItems.canned_mystery); - items.add(ModItems.canned_pashtet); - items.add(ModItems.canned_cheese); - items.add(ModItems.canned_jizz); - items.add(ModItems.canned_milk); - items.add(ModItems.canned_ass); - items.add(ModItems.canned_pizza); - items.add(ModItems.canned_tomato); - items.add(ModItems.canned_tube); - items.add(ModItems.canned_asbestos); - items.add(ModItems.canned_bhole); - items.add(ModItems.canned_hotdogs); - items.add(ModItems.canned_leftovers); - items.add(ModItems.canned_yogurt); - items.add(ModItems.canned_stew); - items.add(ModItems.canned_chinese); - items.add(ModItems.canned_oil); - items.add(ModItems.canned_fist); - items.add(ModItems.canned_spam); - items.add(ModItems.canned_fried); - items.add(ModItems.canned_napalm); - items.add(ModItems.canned_diesel); - items.add(ModItems.canned_kerosene); - items.add(ModItems.canned_recursion); - items.add(ModItems.canned_bark); + for(int a = 0; a < EnumFoodType.values().length; a++) + items.add(ModItems.canned_conserve); items.add(ModItems.can_smart); items.add(ModItems.can_creature); items.add(ModItems.can_redbomb); diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 9f7d88441..23f081219 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -7,6 +7,7 @@ import com.hbm.inventory.fluid.Fluids; import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ItemAmmoEnums.*; +import com.hbm.items.food.ItemConserve.EnumFoodType; import com.hbm.items.ModItems; import com.hbm.items.weapon.GunB92Cell; import com.hbm.main.CraftingManager; @@ -307,7 +308,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_HIGH), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH), 'C', AL.plate(), 'D', ModBlocks.det_cord, 'S', ModItems.hull_small_steel }); CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_SAFE), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.SAFE), 'C', AL.plate(), 'D', ModBlocks.det_cord, 'S', ModItems.hull_small_steel }); //since the milk part of the recipe isn't really present in the MIRV's effect, it might as well be replaced with something more sensible, i.e. duct tape - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_SPECIAL), new Object[] { "CBC", "MCM", "CBC", 'C', ModItems.canned_jizz, 'B', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.BALEFIRE), 'M', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV) }); + CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_SPECIAL), new Object[] { "CBC", "MCM", "CBC", 'C', ModItems.canned_conserve.stackFromEnum(EnumFoodType.JIZZ), 'B', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.BALEFIRE), 'M', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV) }); //Flamer fuel CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.DIESEL), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'D', Fluids.DIESEL.getDict(1000) }); diff --git a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java index 82190a842..d561434c7 100644 --- a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java +++ b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java @@ -9,6 +9,7 @@ import com.hbm.inventory.gui.GUIScreenBobmazon.Offer; import com.hbm.inventory.gui.GUIScreenBobmazon.Requirement; import com.hbm.items.ItemAmmoEnums.*; import com.hbm.items.ModItems; +import com.hbm.items.food.ItemConserve.EnumFoodType; import com.hbm.items.machine.ItemBattery; import com.hbm.items.special.ItemKitCustom; import com.hbm.items.special.ItemKitNBT; @@ -265,7 +266,7 @@ public class BobmazonOfferFactory { special.add(new Offer(ItemKitNBT.create( new ItemStack(ModItems.rod_of_discord).setStackDisplayName("Cock Joke"), - new ItemStack(ModItems.canned_jizz, 64).setStackDisplayName("Class A Horse Semen"), + ModItems.canned_conserve.stackFromEnum(64, EnumFoodType.JIZZ).setStackDisplayName("Class A Horse Semen"), new ItemStack(ModItems.pipe_lead).setStackDisplayName("Get Nutted, Dumbass"), new ItemStack(ModItems.gem_alexandrite) ).setStackDisplayName("The Nut Bucket"), Requirement.HIDDEN, 64)); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index a6800dfab..9617da267 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -15,6 +15,7 @@ import com.hbm.items.armor.*; import com.hbm.items.armor.IArmorDisableModel.EnumPlayerPart; import com.hbm.items.bomb.*; import com.hbm.items.food.*; +import com.hbm.items.food.ItemConserve.EnumFoodType; import com.hbm.items.machine.*; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; @@ -998,33 +999,34 @@ public class ModItems { public static Item cap_sunset; public static Item cap_star; public static Item ring_pull; - public static Item canned_beef; - public static Item canned_tuna; - public static Item canned_mystery; - public static Item canned_pashtet; - public static Item canned_cheese; - public static Item canned_jizz; - public static Item canned_milk; - public static Item canned_ass; - public static Item canned_pizza; - public static Item canned_tube; - public static Item canned_tomato; - public static Item canned_asbestos; - public static Item canned_bhole; - public static Item canned_hotdogs; - public static Item canned_leftovers; - public static Item canned_yogurt; - public static Item canned_stew; - public static Item canned_chinese; - public static Item canned_oil; - public static Item canned_fist; - public static Item canned_spam; - public static Item canned_fried; - public static Item canned_napalm; - public static Item canned_diesel; - public static Item canned_kerosene; - public static Item canned_recursion; - public static Item canned_bark; + //public static Item canned_beef; + //public static Item canned_tuna; + //public static Item canned_mystery; + //public static Item canned_pashtet; + //public static Item canned_cheese; + //public static Item canned_jizz; + //public static Item canned_milk; + //public static Item canned_ass; + //public static Item canned_pizza; + //public static Item canned_tube; + //public static Item canned_tomato; + //public static Item canned_asbestos; + //public static Item canned_bhole; + //public static Item canned_hotdogs; + //public static Item canned_leftovers; + //public static Item canned_yogurt; + //public static Item canned_stew; + //public static Item canned_chinese; + //public static Item canned_oil; + //public static Item canned_fist; + //public static Item canned_spam; + //public static Item canned_fried; + //public static Item canned_napalm; + //public static Item canned_diesel; + //public static Item canned_kerosene; + //public static Item canned_recursion; + //public static Item canned_bark; + public static ItemEnumMulti canned_conserve; public static Item can_key; public static Item cart; @@ -3623,33 +3625,34 @@ public class ModItems { coffee_radium = new ItemEnergy().setUnlocalizedName("coffee_radium").setTextureName(RefStrings.MODID + ":coffee_radium"); chocolate = new ItemPill(0).setUnlocalizedName("chocolate").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":chocolate"); - canned_beef = new ItemLemon(8, 5, false).setUnlocalizedName("canned_beef").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_beef"); - canned_tuna = new ItemLemon(4, 5, false).setUnlocalizedName("canned_tuna").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_tuna"); - canned_mystery = new ItemLemon(6, 5, false).setUnlocalizedName("canned_mystery").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_mystery"); - canned_pashtet = new ItemLemon(4, 5, false).setUnlocalizedName("canned_pashtet").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_pashtet"); - canned_cheese = new ItemLemon(3, 5, false).setUnlocalizedName("canned_cheese").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_cheese"); - canned_jizz = new ItemLemon(15, 5, false).setUnlocalizedName("canned_jizz").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_jizz"); - canned_milk = new ItemLemon(5, 5, false).setUnlocalizedName("canned_milk").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_milk"); - canned_ass = new ItemLemon(6, 5, false).setUnlocalizedName("canned_ass").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_ass"); - canned_pizza = new ItemLemon(8, 5, false).setUnlocalizedName("canned_pizza").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_pizza"); - canned_tube = new ItemLemon(2, 5, false).setUnlocalizedName("canned_tube").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_tube"); - canned_tomato = new ItemLemon(4, 5, false).setUnlocalizedName("canned_tomato").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_tomato"); - canned_asbestos = new ItemLemon(7, 5, false).setUnlocalizedName("canned_asbestos").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_asbestos"); - canned_bhole = new ItemLemon(10, 5, false).setUnlocalizedName("canned_bhole").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_bhole"); - canned_hotdogs = new ItemLemon(5, 5, false).setUnlocalizedName("canned_hotdogs").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_hotdogs"); - canned_leftovers = new ItemLemon(1, 5, false).setUnlocalizedName("canned_leftovers").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_leftovers"); - canned_yogurt = new ItemLemon(3, 5, false).setUnlocalizedName("canned_yogurt").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_yogurt"); - canned_stew = new ItemLemon(5, 5, false).setUnlocalizedName("canned_stew").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_stew"); - canned_chinese = new ItemLemon(6, 5, false).setUnlocalizedName("canned_chinese").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_chinese"); - canned_oil = new ItemLemon(3, 5, false).setUnlocalizedName("canned_oil").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_oil"); - canned_fist = new ItemLemon(6, 5, false).setUnlocalizedName("canned_fist").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_fist"); - canned_spam = new ItemLemon(8, 5, false).setUnlocalizedName("canned_spam").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_spam"); - canned_fried = new ItemLemon(10, 5, false).setUnlocalizedName("canned_fried").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_fried"); - canned_napalm = new ItemLemon(6, 5, false).setUnlocalizedName("canned_napalm").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_napalm"); - canned_diesel = new ItemLemon(6, 5, false).setUnlocalizedName("canned_diesel").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_diesel"); - canned_kerosene = new ItemLemon(6, 5, false).setUnlocalizedName("canned_kerosene").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_kerosene"); - canned_recursion = new ItemLemon(1, 5, false).setUnlocalizedName("canned_recursion").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_recursion"); - canned_bark = new ItemLemon(2, 5, false).setUnlocalizedName("canned_bark").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_bark"); + //canned_beef = new ItemLemon(8, 5, false).setUnlocalizedName("canned_beef").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_beef"); + //canned_tuna = new ItemLemon(4, 5, false).setUnlocalizedName("canned_tuna").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_tuna"); + //canned_mystery = new ItemLemon(6, 5, false).setUnlocalizedName("canned_mystery").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_mystery"); + //canned_pashtet = new ItemLemon(4, 5, false).setUnlocalizedName("canned_pashtet").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_pashtet"); + //canned_cheese = new ItemLemon(3, 5, false).setUnlocalizedName("canned_cheese").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_cheese"); + //canned_jizz = new ItemLemon(15, 5, false).setUnlocalizedName("canned_jizz").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_jizz"); + //canned_milk = new ItemLemon(5, 5, false).setUnlocalizedName("canned_milk").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_milk"); + //canned_ass = new ItemLemon(6, 5, false).setUnlocalizedName("canned_ass").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_ass"); + //canned_pizza = new ItemLemon(8, 5, false).setUnlocalizedName("canned_pizza").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_pizza"); + //canned_tube = new ItemLemon(2, 5, false).setUnlocalizedName("canned_tube").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_tube"); + //canned_tomato = new ItemLemon(4, 5, false).setUnlocalizedName("canned_tomato").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_tomato"); + //canned_asbestos = new ItemLemon(7, 5, false).setUnlocalizedName("canned_asbestos").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_asbestos"); + //canned_bhole = new ItemLemon(10, 5, false).setUnlocalizedName("canned_bhole").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_bhole"); + //canned_hotdogs = new ItemLemon(5, 5, false).setUnlocalizedName("canned_hotdogs").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_hotdogs"); + //canned_leftovers = new ItemLemon(1, 5, false).setUnlocalizedName("canned_leftovers").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_leftovers"); + //canned_yogurt = new ItemLemon(3, 5, false).setUnlocalizedName("canned_yogurt").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_yogurt"); + //canned_stew = new ItemLemon(5, 5, false).setUnlocalizedName("canned_stew").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_stew"); + //canned_chinese = new ItemLemon(6, 5, false).setUnlocalizedName("canned_chinese").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_chinese"); + //canned_oil = new ItemLemon(3, 5, false).setUnlocalizedName("canned_oil").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_oil"); + //canned_fist = new ItemLemon(6, 5, false).setUnlocalizedName("canned_fist").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_fist"); + //canned_spam = new ItemLemon(8, 5, false).setUnlocalizedName("canned_spam").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_spam"); + //canned_fried = new ItemLemon(10, 5, false).setUnlocalizedName("canned_fried").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_fried"); + //canned_napalm = new ItemLemon(6, 5, false).setUnlocalizedName("canned_napalm").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_napalm"); + //canned_diesel = new ItemLemon(6, 5, false).setUnlocalizedName("canned_diesel").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_diesel"); + //canned_kerosene = new ItemLemon(6, 5, false).setUnlocalizedName("canned_kerosene").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_kerosene"); + //canned_recursion = new ItemLemon(1, 5, false).setUnlocalizedName("canned_recursion").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_recursion"); + //canned_bark = new ItemLemon(2, 5, false).setUnlocalizedName("canned_bark").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_bark"); + canned_conserve = (ItemEnumMulti) new ItemConserve().setUnlocalizedName("canned_conserve").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned"); can_key = new Item().setUnlocalizedName("can_key").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":can_key"); cart = new ItemModMinecart().setUnlocalizedName("cart"); @@ -7898,33 +7901,34 @@ public class ModItems { GameRegistry.registerItem(flask_infusion, flask_infusion.getUnlocalizedName()); //Canned Food - GameRegistry.registerItem(canned_beef, canned_beef.getUnlocalizedName()); - GameRegistry.registerItem(canned_tuna, canned_tuna.getUnlocalizedName()); - GameRegistry.registerItem(canned_mystery, canned_mystery.getUnlocalizedName()); - GameRegistry.registerItem(canned_pashtet, canned_pashtet.getUnlocalizedName()); - GameRegistry.registerItem(canned_cheese, canned_cheese.getUnlocalizedName()); - GameRegistry.registerItem(canned_jizz, canned_jizz.getUnlocalizedName()); - GameRegistry.registerItem(canned_milk, canned_milk.getUnlocalizedName()); - GameRegistry.registerItem(canned_ass, canned_ass.getUnlocalizedName()); - GameRegistry.registerItem(canned_pizza, canned_pizza.getUnlocalizedName()); - GameRegistry.registerItem(canned_tube, canned_tube.getUnlocalizedName()); - GameRegistry.registerItem(canned_tomato, canned_tomato.getUnlocalizedName()); - GameRegistry.registerItem(canned_asbestos, canned_asbestos.getUnlocalizedName()); - GameRegistry.registerItem(canned_bhole, canned_bhole.getUnlocalizedName()); - GameRegistry.registerItem(canned_hotdogs, canned_hotdogs.getUnlocalizedName()); - GameRegistry.registerItem(canned_leftovers, canned_leftovers.getUnlocalizedName()); - GameRegistry.registerItem(canned_yogurt, canned_yogurt.getUnlocalizedName()); - GameRegistry.registerItem(canned_stew, canned_stew.getUnlocalizedName()); - GameRegistry.registerItem(canned_chinese, canned_chinese.getUnlocalizedName()); - GameRegistry.registerItem(canned_oil, canned_oil.getUnlocalizedName()); - GameRegistry.registerItem(canned_fist, canned_fist.getUnlocalizedName()); - GameRegistry.registerItem(canned_spam, canned_spam.getUnlocalizedName()); - GameRegistry.registerItem(canned_fried, canned_fried.getUnlocalizedName()); - GameRegistry.registerItem(canned_napalm, canned_napalm.getUnlocalizedName()); - GameRegistry.registerItem(canned_diesel, canned_diesel.getUnlocalizedName()); - GameRegistry.registerItem(canned_kerosene, canned_kerosene.getUnlocalizedName()); - GameRegistry.registerItem(canned_recursion, canned_recursion.getUnlocalizedName()); - GameRegistry.registerItem(canned_bark, canned_bark.getUnlocalizedName()); + //GameRegistry.registerItem(canned_beef, canned_beef.getUnlocalizedName()); + //GameRegistry.registerItem(canned_tuna, canned_tuna.getUnlocalizedName()); + //GameRegistry.registerItem(canned_mystery, canned_mystery.getUnlocalizedName()); + //GameRegistry.registerItem(canned_pashtet, canned_pashtet.getUnlocalizedName()); + //GameRegistry.registerItem(canned_cheese, canned_cheese.getUnlocalizedName()); + //GameRegistry.registerItem(canned_jizz, canned_jizz.getUnlocalizedName()); + //GameRegistry.registerItem(canned_milk, canned_milk.getUnlocalizedName()); + //GameRegistry.registerItem(canned_ass, canned_ass.getUnlocalizedName()); + //GameRegistry.registerItem(canned_pizza, canned_pizza.getUnlocalizedName()); + //GameRegistry.registerItem(canned_tube, canned_tube.getUnlocalizedName()); + //GameRegistry.registerItem(canned_tomato, canned_tomato.getUnlocalizedName()); + //GameRegistry.registerItem(canned_asbestos, canned_asbestos.getUnlocalizedName()); + //GameRegistry.registerItem(canned_bhole, canned_bhole.getUnlocalizedName()); + //GameRegistry.registerItem(canned_hotdogs, canned_hotdogs.getUnlocalizedName()); + //GameRegistry.registerItem(canned_leftovers, canned_leftovers.getUnlocalizedName()); + //GameRegistry.registerItem(canned_yogurt, canned_yogurt.getUnlocalizedName()); + //GameRegistry.registerItem(canned_stew, canned_stew.getUnlocalizedName()); + //GameRegistry.registerItem(canned_chinese, canned_chinese.getUnlocalizedName()); + //GameRegistry.registerItem(canned_oil, canned_oil.getUnlocalizedName()); + //GameRegistry.registerItem(canned_fist, canned_fist.getUnlocalizedName()); + //GameRegistry.registerItem(canned_spam, canned_spam.getUnlocalizedName()); + //GameRegistry.registerItem(canned_fried, canned_fried.getUnlocalizedName()); + //GameRegistry.registerItem(canned_napalm, canned_napalm.getUnlocalizedName()); + //GameRegistry.registerItem(canned_diesel, canned_diesel.getUnlocalizedName()); + //GameRegistry.registerItem(canned_kerosene, canned_kerosene.getUnlocalizedName()); + //GameRegistry.registerItem(canned_recursion, canned_recursion.getUnlocalizedName()); + //GameRegistry.registerItem(canned_bark, canned_bark.getUnlocalizedName()); + GameRegistry.registerItem(canned_conserve, canned_conserve.getUnlocalizedName()); //Money GameRegistry.registerItem(cap_nuka, cap_nuka.getUnlocalizedName()); @@ -8556,11 +8560,45 @@ public class ModItems { addRemap("ammo_75bolt_incendiary", 5541, ammo_75bolt, Ammo75Bolt.INCENDIARY); addRemap("ammo_rocket_canister", 5563, ammo_rocket, AmmoRocket.CANISTER); addRemap("ammo_rocket_phosphorus", 5558, ammo_rocket, AmmoRocket.PHOSPHORUS); + + //CONSERVE REMAP + addRemap("canned_beef", canned_conserve, EnumFoodType.BEEF); + addRemap("canned_tuna", canned_conserve, EnumFoodType.TUNA); + addRemap("canned_mystery", canned_conserve, EnumFoodType.MYSTERY); + addRemap("canned_pashtet", canned_conserve, EnumFoodType.PASHTET); + addRemap("canned_cheese", canned_conserve, EnumFoodType.CHEESE); + addRemap("canned_jizz", canned_conserve, EnumFoodType.JIZZ); + addRemap("canned_milk", canned_conserve, EnumFoodType.MILK); + addRemap("canned_ass", canned_conserve, EnumFoodType.ASS); + addRemap("canned_pizza", canned_conserve, EnumFoodType.PIZZA); + addRemap("canned_tube", canned_conserve, EnumFoodType.TUBE); + addRemap("canned_tomato", canned_conserve, EnumFoodType.TOMATO); + addRemap("canned_asbestos", canned_conserve, EnumFoodType.ASBESTOS); + addRemap("canned_bhole", canned_conserve, EnumFoodType.BHOLE); + addRemap("canned_hotdogs", canned_conserve, EnumFoodType.HOTDOGS); + addRemap("canned_leftovers", canned_conserve, EnumFoodType.LEFTOVERS); + addRemap("canned_yogurt", canned_conserve, EnumFoodType.YOGURT); + addRemap("canned_stew", canned_conserve, EnumFoodType.STEW); + addRemap("canned_chinese", canned_conserve, EnumFoodType.CHINESE); + addRemap("canned_oil", canned_conserve, EnumFoodType.OIL); + addRemap("canned_fist", canned_conserve, EnumFoodType.FIST); + addRemap("canned_spam", canned_conserve, EnumFoodType.SPAM); + addRemap("canned_fried", canned_conserve, EnumFoodType.FRIED); + addRemap("canned_napalm", canned_conserve, EnumFoodType.NAPALM); + addRemap("canned_diesel", canned_conserve, EnumFoodType.DIESEL); + addRemap("canned_kerosene", canned_conserve, EnumFoodType.KEROSENE); + addRemap("canned_recursion", canned_conserve, EnumFoodType.RECURSION); + addRemap("canned_bark", canned_conserve, EnumFoodType.BARK); + } public static void addRemap(String unloc, int removoingTheseWouldTakeForever, Item item, Enum sub) { addRemap(unloc, item, sub.ordinal()); } + + public static void addRemap(String unloc, Item item, Enum sub) { + addRemap(unloc, item, sub.ordinal()); + } public static void addRemap(String unloc, Item item, int meta) { Item remap = new ItemRemap(item, meta).setUnlocalizedName(unloc).setTextureName(RefStrings.MODID + ":plate_armor_titanium"); diff --git a/src/main/java/com/hbm/items/food/ItemConserve.java b/src/main/java/com/hbm/items/food/ItemConserve.java new file mode 100644 index 000000000..a8a7a5af1 --- /dev/null +++ b/src/main/java/com/hbm/items/food/ItemConserve.java @@ -0,0 +1,143 @@ +package com.hbm.items.food; + +import java.util.List; + +import com.hbm.entity.effect.EntityVortex; +import com.hbm.items.ItemEnumMulti; +import com.hbm.items.ModItems; +import com.hbm.util.EnumUtil; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumAction; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +//tfw no multiple inheritance +public class ItemConserve extends ItemEnumMulti { + + public ItemConserve() { + super(EnumFoodType.class, true, true); + } + + @Override + public ItemStack onEaten(ItemStack stack, World world, EntityPlayer player) { + EnumFoodType num = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); + + stack.stackSize--; + player.getFoodStats().addStats(num.foodLevel, num.saturation); + world.playSoundAtEntity(player, "random.burp", 0.5F, world.rand.nextFloat() * 0.1F + 0.9F); + this.onFoodEaten(stack, world, player); + return stack; + } + + //the fancy enum lambdas and method references and whatever can come later if necessary + protected void onFoodEaten(ItemStack stack, World world, EntityPlayer player) { + player.inventory.addItemStackToInventory(new ItemStack(ModItems.can_key)); + EnumFoodType num = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); + + if(num == EnumFoodType.BHOLE && !world.isRemote) { + EntityVortex vortex = new EntityVortex(world, 0.5F); + vortex.posX = player.posX; + vortex.posY = player.posY; + vortex.posZ = player.posZ; + world.spawnEntityInWorld(vortex); + + } else if(num == EnumFoodType.RECURSION && world.rand.nextInt(10) > 0) { + + player.inventory.addItemStackToInventory(stackFromEnum(EnumFoodType.RECURSION)); + } + } + + @Override + public int getMaxItemUseDuration(ItemStack stack) { + return 32; + } + + @Override + public EnumAction getItemUseAction(ItemStack stack) { + return EnumAction.eat; + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + if(player.canEat(false)) + player.setItemInUse(stack, this.getMaxItemUseDuration(stack)); + + return stack; + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + String unloc = this.getUnlocalizedName(itemstack) + ".desc"; + String loc = I18nUtil.resolveKey(unloc); + + if(!unloc.equals(loc)) { + String[] locs = loc.split("\\$"); + + for(String s : locs) { + list.add(s); + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + Enum[] enums = theEnum.getEnumConstants(); + this.icons = new IIcon[enums.length]; + + for(int i = 0; i < icons.length; i++) { + Enum num = enums[i]; + this.icons[i] = reg.registerIcon(this.getIconString() + "_" + num.name().toLowerCase()); + } + } + + @Override + public String getUnlocalizedName(ItemStack stack) { + Enum num = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); + return "item.canned_" + num.name().toLowerCase(); + } + + public static enum EnumFoodType { + BEEF(8, 5F), + TUNA(4, 5F), + MYSTERY(6, 5F), + PASHTET(4, 5F), + CHEESE(3, 5F), + JIZZ(15, 5F), // :3 + MILK(5, 5F), + ASS(6, 5F), // :3 + PIZZA(8, 5F), + TUBE(2, 5F), + TOMATO(4, 5F), + ASBESTOS(7, 5F), + BHOLE(10, 5F), + HOTDOGS(5, 5F), + LEFTOVERS(1, 5F), + YOGURT(3, 5F), + STEW(5, 5F), + CHINESE(6, 5F), + OIL(3, 5F), + FIST(6, 5F), + SPAM(8, 5F), + FRIED(10, 5F), + NAPALM(6, 5F), + DIESEL(6, 5F), + KEROSENE(6, 4F), + RECURSION(1, 5F), + BARK(2, 5F); + + protected int foodLevel; + protected float saturation; + + private EnumFoodType(int level, float sat) { + this.foodLevel = level; + this.saturation = sat; + } + } +} diff --git a/src/main/java/com/hbm/items/food/ItemLemon.java b/src/main/java/com/hbm/items/food/ItemLemon.java index abfd05a2c..a6833860d 100644 --- a/src/main/java/com/hbm/items/food/ItemLemon.java +++ b/src/main/java/com/hbm/items/food/ItemLemon.java @@ -78,133 +78,7 @@ public class ItemLemon extends ItemFood { if(this == ModItems.twinkie) { list.add("Expired 600 years ago!"); } - - if(this == ModItems.canned_beef) { - list.add("A few centuries ago, a cow died for this."); - } - - if(this == ModItems.canned_tuna) { - list.add("I can't tell if that's actually tuna or dried cement."); - } - - if(this == ModItems.canned_mystery) { - list.add("What's inside? Only one way to find out!"); - } - - if(this == ModItems.canned_pashtet) { - list.add("услуги перевода недоступны!"); - } - - if(this == ModItems.canned_cheese) { - list.add("Is it cheese? Is it rubber cement? Who knows, who cares."); - } - - if(this == ModItems.canned_milk) { - list.add("Milk 2: More solid than ever before!"); - } - - if(this == ModItems.canned_ass) { - list.add("100% quality donkey meat!*"); - } - - if(this == ModItems.canned_pizza) { - list.add("A crime against humanity."); - } - - if(this == ModItems.canned_tube) { - list.add("Tasty mush."); - } - - if(this == ModItems.canned_tomato) { - list.add("Who wants some thick red paste?"); - } - - if(this == ModItems.canned_asbestos) { - list.add("TASTE the asbestosis!"); - } - - if(this == ModItems.canned_bhole) { - list.add("Singularity is yum yum in my tum tum!"); - } - - if(this == ModItems.canned_jizz) { - list.add("Wait wh-"); - } - - if(this == ModItems.canned_hotdogs) { - list.add("Not to be confused with cool cats."); - } - - if(this == ModItems.canned_leftovers) { - list.add("ur 2 slow"); - } - - if(this == ModItems.canned_yogurt) { - list.add("Probably spoiled, but whatever."); - } - - if(this == ModItems.canned_stew) { - list.add("..."); - } - - if(this == ModItems.canned_chinese) { - list.add("In China, Chinese food is just called food."); - } - - if(this == ModItems.canned_oil) { - list.add("It makes motors go, so why not humans?"); - } - - if(this == ModItems.canned_fist) { - list.add("Yowser!"); - } - - if(this == ModItems.canned_spam) { - list.add("The three-and-a-half-minute sketch is set in the fictional Green Midget Cafe in Bromley."); - list.add("An argument develops between the waitress, who recites a menu in which nearly"); - list.add("every dish contains Spam, and Mrs. Bun, who does not like Spam. She asks for a"); - list.add("dish without Spam, much to the amazement of her Spam-loving husband. The waitress"); - list.add("responds to this request with disgust. Mr. Bun offers to take her Spam instead,"); - list.add("and asks for a dish containing a lot of Spam and baked beans. The waitress says"); - list.add("no since they are out of baked beans; when Mr. Bun asks for a substitution of Spam,"); - list.add("the waitress again responds with disgust. At several points, a group of Vikings in"); - list.add("the restaurant interrupts conversation by loudly singing about Spam."); - list.add("The irate waitress orders them to shut up, but they resume singing more loudly."); - list.add("A Hungarian tourist comes to the counter, trying to order by using a wholly"); - list.add("inaccurate Hungarian/English phrasebook (a reference to a previous sketch)."); - list.add("He is rapidly escorted away by a police constable. The sketch abruptly cuts to a"); - list.add("historian in a television studio talking about the origin of the Vikings in the café."); - list.add("As he goes on, he begins to increasingly insert the word \"Spam\" into every"); - list.add("sentence, and the backdrop is raised to reveal the restaurant set behind."); - list.add("The historian joins the Vikings in their song, and Mr. and Mrs. Bun are lifted by"); - list.add("wires out of the scene while the singing continues. In the original televised performance,"); - list.add("the closing credits begin to scroll with the singing still audible in the background."); - } - - if(this == ModItems.canned_fried) { - list.add("Even the can is deep fried!"); - } - - if(this == ModItems.canned_napalm) { - list.add("I love the smell of old memes in the morning!"); - } - - if(this == ModItems.canned_diesel) { - list.add("I'm slowly running out of jokes for these."); - } - - if(this == ModItems.canned_kerosene) { - list.add("Just imagine a witty line here."); - } - - if(this == ModItems.canned_recursion) { - list.add("Canned Recursion"); - } - - if(this == ModItems.canned_bark) { - list.add("Extra cronchy!"); - } - + if(this == ModItems.pudding) { list.add("What if he did?"); list.add("What if he didn't?"); @@ -250,36 +124,6 @@ public class ItemLemon extends ItemFood { player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 60 * 20, 1)); player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 20 * 20, 2)); } - - if(this == ModItems.canned_beef || - this == ModItems.canned_tuna || - this == ModItems.canned_mystery || - this == ModItems.canned_pashtet || - this == ModItems.canned_cheese || - this == ModItems.canned_jizz || - this == ModItems.canned_milk || - this == ModItems.canned_ass || - this == ModItems.canned_pizza || - this == ModItems.canned_tomato || - this == ModItems.canned_asbestos || - this == ModItems.canned_bhole || - this == ModItems.canned_hotdogs || - this == ModItems.canned_yogurt || - this == ModItems.canned_stew || - this == ModItems.canned_chinese || - this == ModItems.canned_oil || - this == ModItems.canned_fist || - this == ModItems.canned_spam || - this == ModItems.canned_fried || - this == ModItems.canned_napalm || - this == ModItems.canned_diesel || - this == ModItems.canned_kerosene || - this == ModItems.canned_recursion || - this == ModItems.canned_bark) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.can_key)); - - if(this == ModItems.canned_recursion && world.rand.nextInt(10) > 0) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.canned_recursion)); } public ItemStack onEaten(ItemStack stack, World worldObj, EntityPlayer player) @@ -289,16 +133,6 @@ public class ItemLemon extends ItemFood { if(this == ModItems.loop_stew) return new ItemStack(Items.bowl); - - - if (this == ModItems.canned_bhole && !worldObj.isRemote) { - EntityVortex vortex = new EntityVortex(worldObj, 0.5F); - vortex.posX = player.posX; - vortex.posY = player.posY; - vortex.posZ = player.posZ; - worldObj.spawnEntityInWorld(vortex); - } - return sta; } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 2c229c133..98e56e33e 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -22,6 +22,7 @@ import com.hbm.items.ItemAmmoEnums.Ammo5mm; import com.hbm.items.ItemEnums.EnumLegendaryType; import com.hbm.items.ItemEnums.EnumPlantType; import com.hbm.items.ItemGenericPart.EnumPartType; +import com.hbm.items.food.ItemConserve.EnumFoodType; import com.hbm.items.machine.ItemBattery; import com.hbm.items.special.ItemCircuitStarComponent.CircuitComponentType; import com.hbm.items.special.ItemHolotapeImage.EnumHoloImage; @@ -895,7 +896,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.machine_condenser), new Object[] { "SIS", "ICI", "SIS", 'S', STEEL.ingot(), 'I', IRON.plate(), 'C', ModItems.board_copper }); - addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.TEST.ordinal()), new Object[] { Items.book, ModItems.canned_jizz }); + addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.TEST.ordinal()), new Object[] { Items.book, ModItems.canned_conserve.stackFromEnum(EnumFoodType.JIZZ) }); addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.RBMK.ordinal()), new Object[] { Items.book, Items.potato }); addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.HADRON.ordinal()), new Object[] { Items.book, ModItems.fuse }); addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.STARTER.ordinal()), new Object[] { Items.book, Items.iron_ingot }); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index e06eeb811..75fddf53b 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -44,6 +44,7 @@ import com.hbm.items.armor.IDamageHandler; import com.hbm.items.armor.ItemArmorMod; import com.hbm.items.armor.ItemModRevive; import com.hbm.items.armor.ItemModShackles; +import com.hbm.items.food.ItemConserve.EnumFoodType; import com.hbm.items.tool.ItemGuideBook.BookType; import com.hbm.items.weapon.ItemGunBase; import com.hbm.lib.Library; @@ -60,6 +61,7 @@ import com.hbm.util.ArmorUtil; import com.hbm.util.ContaminationUtil; import com.hbm.util.EnchantmentUtil; import com.hbm.util.EntityDamageUtil; +import com.hbm.util.EnumUtil; import com.hbm.world.generator.TimedGenerator; import cpw.mods.fml.common.eventhandler.EventPriority; @@ -1096,7 +1098,7 @@ public class ModEventHandler { @SubscribeEvent public void onItemPickup(PlayerEvent.ItemPickupEvent event) { - if(event.pickedUp.getEntityItem().getItem() == ModItems.canned_jizz) + if(event.pickedUp.getEntityItem().getItem() == ModItems.canned_conserve && EnumUtil.grabEnumSafely(EnumFoodType.class, event.pickedUp.getEntityItem().getItemDamage()) == EnumFoodType.JIZZ) event.player.triggerAchievement(MainRegistry.achC20_5); if(event.pickedUp.getEntityItem().getItem() == Items.slime_ball) event.player.triggerAchievement(MainRegistry.achSlimeball); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 79d25b8ef..6961ddabf 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1847,32 +1847,59 @@ item.canister_petroil.name=Petroil Canister (LEGACY) item.canister_reoil.name=Canister of Reclaimed Industrial Oil (LEGACY) item.canister_smear.name=Industrial Oil Canister (LEGACY) item.canned_asbestos.name=Canned Asbestos +item.canned_asbestos.desc=TASTE the asbestosis! item.canned_ass.name=Canned Ass +item.canned_ass.desc=100%% quality donkey meat!* item.canned_bark.name=Canned Pine Bark Jerky +item.canned_bark.desc=Extra cronchy! item.canned_beef.name=Canned Beef +item.canned_beef.desc=A few centuries ago, a cow died for this. item.canned_bhole.name=Canned Black Hole +item.canned_bhole.desc=Singularity is yum yum in my tum tum! item.canned_cheese.name=Canned Melted Cheese +item.canned_cheese.desc=Is it cheese? Is it rubber cement? Who knows, who cares. item.canned_chinese.name=Canned Chinese Food +item.canned_chinese.desc=In China, Chinese food is just called food. item.canned_diesel.name=Canned Diesel +item.canned_diesel.desc=I'm slowly running out of jokes for these. item.canned_fist.name=Canned Fist +item.canned_fist.desc=Yowser! item.canned_fried.name=Canned Fried Chicken +item.canned_fried.desc=Even the can is deep fried! item.canned_hotdogs.name=Canned Hotdogs +item.canned_hotdogs.desc=Not to be confused with cool cats. item.canned_jizz.name=FlimFlam Industries Canned Stallion Milk™ +item.canned_jizz.desc=Wait wh- item.canned_kerosene.name=Canned Kerosene +item.canned_kerosene.desc=Just imagine a witty line here. item.canned_leftovers.name=Leftover Conserve +item.canned_leftovers.desc=ur 2 slow item.canned_milk.name=Canned Evaporated Milk +item.canned_milk.desc=Milk 2: More solid than ever before! item.canned_mystery.name=Canned Mystery Meat +item.canned_mystery.desc=What's inside? Only one way to find out! item.canned_napalm.name=Canned Napalm +item.canned_napalm.desc=I love the smell of old memes in the morning! item.canned_oil.name=Canned Engine Oil +item.canned_oil.desc=It makes motors go, so why not humans? item.canned_pashtet.name=Паштет +item.canned_pashtet.desc=услуги перевода недоступны! item.canned_pizza.name=Canned Pepperoni Pizza +item.canned_pizza.desc=A crime against humanity. item.canned_recursion.name=Canned Recursion +item.canned_recursion.desc=Canned Recursion item.canned_spam.name=Canned Spam +item.canned_spam.desc=The three-and-a-half-minute sketch is set in the fictional Green Midget Cafe in Bromley.$An argument develops between the waitress, who recites a menu in which nearly$every dish contains Spam, and Mrs. Bun, who does not like Spam. She asks for a$dish without Spam, much to the amazement of her Spam-loving husband. The waitress$responds to this request with disgust. Mr. Bun offers to take her Spam instead,$and asks for a dish containing a lot of Spam and baked beans. The waitress says$no since they are out of baked beans; when Mr. Bun asks for a substitution of Spam,$the waitress again responds with disgust. At several points, a group of Vikings in$the restaurant interrupts conversation by loudly singing about Spam.$The irate waitress orders them to shut up, but they resume singing more loudly.$A Hungarian tourist comes to the counter, trying to order by using a wholly$inaccurate Hungarian/English phrasebook (a reference to a previous sketch).$He is rapidly escorted away by a police constable. The sketch abruptly cuts to a$historian in a television studio talking about the origin of the Vikings in the café.$As he goes on, he begins to increasingly insert the word \"Spam\" into every$sentence, and the backdrop is raised to reveal the restaurant set behind.$The historian joins the Vikings in their song, and Mr. and Mrs. Bun are lifted by$wires out of the scene while the singing continues. In the original televised performance,$the closing credits begin to scroll with the singing still audible in the background. item.canned_stew.name=Canned "Mushroom Stew" +item.canned_stew.desc=... item.canned_tomato.name=Canned Tomato Soup +item.canned_tomato.desc=Who wants some thick red paste? item.canned_tube.name=Astronaut Food Tube +item.canned_tube.desc=Tasty mush. item.canned_tuna.name=Canned Tuna +item.canned_tuna.desc=I can't tell if that's actually tuna or dried cement. item.canned_yogurt.name=Canned Yogurt +item.canned_yogurt.desc=Probably spoiled, but whatever. item.canteen_13.name=Vault 13 Canteen item.canteen_fab.name=Fabulous Vodka item.canteen_vodka.name=Stylish Flask