From b0624e26b32d8346d9a5b15d45fc4e375bcbf276 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Tue, 6 Oct 2015 07:28:00 -0400 Subject: [PATCH] Add full list of burnable and smeltable items --- TrueCraft.Core/Logic/Blocks/BookshelfBlock.cs | 4 +++- TrueCraft.Core/Logic/Blocks/ChestBlock.cs | 4 +++- TrueCraft.Core/Logic/Blocks/CoalOreBlock.cs | 4 +++- TrueCraft.Core/Logic/Blocks/CraftingTableBlock.cs | 4 +++- TrueCraft.Core/Logic/Blocks/DiamondOreBlock.cs | 4 +++- TrueCraft.Core/Logic/Blocks/FenceBlock.cs | 4 +++- TrueCraft.Core/Logic/Blocks/FurnaceBlock.cs | 8 ++++++++ TrueCraft.Core/Logic/Blocks/GoldOreBlock.cs | 5 ++++- TrueCraft.Core/Logic/Blocks/JukeboxBlock.cs | 4 +++- TrueCraft.Core/Logic/Blocks/LapisLazuliOreBlock.cs | 2 ++ TrueCraft.Core/Logic/Blocks/LockedChestBlock.cs | 4 +++- TrueCraft.Core/Logic/Blocks/NoteBlockBlock.cs | 4 +++- TrueCraft.Core/Logic/Blocks/RedstoneOreBlock.cs | 4 +++- TrueCraft.Core/Logic/Blocks/SaplingBlock.cs | 4 +++- TrueCraft.Core/Logic/Blocks/StairsBlock.cs | 4 +++- TrueCraft.Core/Logic/Blocks/TrapdoorBlock.cs | 4 +++- TrueCraft.Core/Logic/Blocks/WoodBlock.cs | 4 +++- TrueCraft.Core/Logic/Blocks/WoodenPlanksBlock.cs | 4 +++- TrueCraft.Core/Logic/Items/BucketItem.cs | 4 +++- TrueCraft.Core/Logic/Items/StickItem.cs | 4 +++- 20 files changed, 65 insertions(+), 18 deletions(-) diff --git a/TrueCraft.Core/Logic/Blocks/BookshelfBlock.cs b/TrueCraft.Core/Logic/Blocks/BookshelfBlock.cs index 6b10fe2..ee681b0 100644 --- a/TrueCraft.Core/Logic/Blocks/BookshelfBlock.cs +++ b/TrueCraft.Core/Logic/Blocks/BookshelfBlock.cs @@ -5,7 +5,7 @@ using TrueCraft.Core.Logic.Items; namespace TrueCraft.Core.Logic.Blocks { - public class BookshelfBlock : BlockProvider, ICraftingRecipe + public class BookshelfBlock : BlockProvider, ICraftingRecipe, IBurnableItem { public static readonly byte BlockID = 0x2F; @@ -19,6 +19,8 @@ namespace TrueCraft.Core.Logic.Blocks public override string DisplayName { get { return "Bookshelf"; } } + public TimeSpan BurnTime { get { return TimeSpan.FromSeconds(15); } } + public override SoundEffectClass SoundEffect { get diff --git a/TrueCraft.Core/Logic/Blocks/ChestBlock.cs b/TrueCraft.Core/Logic/Blocks/ChestBlock.cs index 72429df..0ce2a17 100644 --- a/TrueCraft.Core/Logic/Blocks/ChestBlock.cs +++ b/TrueCraft.Core/Logic/Blocks/ChestBlock.cs @@ -11,7 +11,7 @@ using TrueCraft.Core.Entities; namespace TrueCraft.Core.Logic.Blocks { - public class ChestBlock : BlockProvider, ICraftingRecipe + public class ChestBlock : BlockProvider, ICraftingRecipe, IBurnableItem { public static readonly byte BlockID = 0x36; @@ -27,6 +27,8 @@ namespace TrueCraft.Core.Logic.Blocks public override string DisplayName { get { return "Chest"; } } + public TimeSpan BurnTime { get { return TimeSpan.FromSeconds(15); } } + public override SoundEffectClass SoundEffect { get diff --git a/TrueCraft.Core/Logic/Blocks/CoalOreBlock.cs b/TrueCraft.Core/Logic/Blocks/CoalOreBlock.cs index 2847695..35b1e74 100644 --- a/TrueCraft.Core/Logic/Blocks/CoalOreBlock.cs +++ b/TrueCraft.Core/Logic/Blocks/CoalOreBlock.cs @@ -5,7 +5,7 @@ using TrueCraft.Core.Logic.Items; namespace TrueCraft.Core.Logic.Blocks { - public class CoalOreBlock : BlockProvider + public class CoalOreBlock : BlockProvider, ISmeltableItem { public static readonly byte BlockID = 0x10; @@ -19,6 +19,8 @@ namespace TrueCraft.Core.Logic.Blocks public override string DisplayName { get { return "Coal Ore"; } } + public ItemStack SmeltingOutput { get { return new ItemStack(CoalItem.ItemID); } } + public override Tuple GetTextureMap(byte metadata) { return new Tuple(2, 2); diff --git a/TrueCraft.Core/Logic/Blocks/CraftingTableBlock.cs b/TrueCraft.Core/Logic/Blocks/CraftingTableBlock.cs index 0901c16..67095f1 100644 --- a/TrueCraft.Core/Logic/Blocks/CraftingTableBlock.cs +++ b/TrueCraft.Core/Logic/Blocks/CraftingTableBlock.cs @@ -7,7 +7,7 @@ using TrueCraft.Core.Windows; namespace TrueCraft.Core.Logic.Blocks { - public class CraftingTableBlock : BlockProvider, ICraftingRecipe + public class CraftingTableBlock : BlockProvider, ICraftingRecipe, IBurnableItem { public static readonly byte BlockID = 0x3A; @@ -21,6 +21,8 @@ namespace TrueCraft.Core.Logic.Blocks public override string DisplayName { get { return "Crafting Table"; } } + public TimeSpan BurnTime { get { return TimeSpan.FromSeconds(15); } } + public override SoundEffectClass SoundEffect { get diff --git a/TrueCraft.Core/Logic/Blocks/DiamondOreBlock.cs b/TrueCraft.Core/Logic/Blocks/DiamondOreBlock.cs index eee5af7..a833e3c 100644 --- a/TrueCraft.Core/Logic/Blocks/DiamondOreBlock.cs +++ b/TrueCraft.Core/Logic/Blocks/DiamondOreBlock.cs @@ -5,7 +5,7 @@ using TrueCraft.Core.Logic.Items; namespace TrueCraft.Core.Logic.Blocks { - public class DiamondOreBlock : BlockProvider + public class DiamondOreBlock : BlockProvider, ISmeltableItem { public static readonly byte BlockID = 0x38; @@ -19,6 +19,8 @@ namespace TrueCraft.Core.Logic.Blocks public override string DisplayName { get { return "Diamond Ore"; } } + public ItemStack SmeltingOutput { get { return new ItemStack(DiamondItem.ItemID); } } + public override ToolMaterial EffectiveToolMaterials { get diff --git a/TrueCraft.Core/Logic/Blocks/FenceBlock.cs b/TrueCraft.Core/Logic/Blocks/FenceBlock.cs index f168797..2388185 100644 --- a/TrueCraft.Core/Logic/Blocks/FenceBlock.cs +++ b/TrueCraft.Core/Logic/Blocks/FenceBlock.cs @@ -5,7 +5,7 @@ using TrueCraft.Core.Logic.Items; namespace TrueCraft.Core.Logic.Blocks { - public class FenceBlock : BlockProvider, ICraftingRecipe + public class FenceBlock : BlockProvider, ICraftingRecipe, IBurnableItem { public static readonly byte BlockID = 0x55; @@ -23,6 +23,8 @@ namespace TrueCraft.Core.Logic.Blocks public override string DisplayName { get { return "Fence"; } } + public TimeSpan BurnTime { get { return TimeSpan.FromSeconds(15); } } + public override SoundEffectClass SoundEffect { get diff --git a/TrueCraft.Core/Logic/Blocks/FurnaceBlock.cs b/TrueCraft.Core/Logic/Blocks/FurnaceBlock.cs index 67b8517..884fad5 100644 --- a/TrueCraft.Core/Logic/Blocks/FurnaceBlock.cs +++ b/TrueCraft.Core/Logic/Blocks/FurnaceBlock.cs @@ -51,6 +51,14 @@ namespace TrueCraft.Core.Logic.Blocks public override string DisplayName { get { return "Furnace"; } } + public override ToolType EffectiveTools + { + get + { + return ToolType.Pickaxe; + } + } + protected override ItemStack[] GetDrop(BlockDescriptor descriptor, ItemStack item) { return new[] { new ItemStack(BlockID) }; diff --git a/TrueCraft.Core/Logic/Blocks/GoldOreBlock.cs b/TrueCraft.Core/Logic/Blocks/GoldOreBlock.cs index 1d35b26..ae94f57 100644 --- a/TrueCraft.Core/Logic/Blocks/GoldOreBlock.cs +++ b/TrueCraft.Core/Logic/Blocks/GoldOreBlock.cs @@ -1,10 +1,11 @@ using System; using TrueCraft.API.Logic; using TrueCraft.API; +using TrueCraft.Core.Logic.Items; namespace TrueCraft.Core.Logic.Blocks { - public class GoldOreBlock : BlockProvider + public class GoldOreBlock : BlockProvider, ISmeltableItem { public static readonly byte BlockID = 0x0E; @@ -18,6 +19,8 @@ namespace TrueCraft.Core.Logic.Blocks public override string DisplayName { get { return "Gold Ore"; } } + public ItemStack SmeltingOutput { get { return new ItemStack(GoldIngotItem.ItemID); } } + public override Tuple GetTextureMap(byte metadata) { return new Tuple(0, 2); diff --git a/TrueCraft.Core/Logic/Blocks/JukeboxBlock.cs b/TrueCraft.Core/Logic/Blocks/JukeboxBlock.cs index 12c5ff2..ee9799f 100644 --- a/TrueCraft.Core/Logic/Blocks/JukeboxBlock.cs +++ b/TrueCraft.Core/Logic/Blocks/JukeboxBlock.cs @@ -5,7 +5,7 @@ using TrueCraft.Core.Logic.Items; namespace TrueCraft.Core.Logic.Blocks { - public class JukeboxBlock : BlockProvider, ICraftingRecipe + public class JukeboxBlock : BlockProvider, ICraftingRecipe, IBurnableItem { public static readonly byte BlockID = 0x54; @@ -19,6 +19,8 @@ namespace TrueCraft.Core.Logic.Blocks public override string DisplayName { get { return "Jukebox"; } } + public TimeSpan BurnTime { get { return TimeSpan.FromSeconds(15); } } + public override Tuple GetTextureMap(byte metadata) { return new Tuple(10, 4); diff --git a/TrueCraft.Core/Logic/Blocks/LapisLazuliOreBlock.cs b/TrueCraft.Core/Logic/Blocks/LapisLazuliOreBlock.cs index 031e266..bf07a01 100644 --- a/TrueCraft.Core/Logic/Blocks/LapisLazuliOreBlock.cs +++ b/TrueCraft.Core/Logic/Blocks/LapisLazuliOreBlock.cs @@ -19,6 +19,8 @@ namespace TrueCraft.Core.Logic.Blocks public override string DisplayName { get { return "Lapis Lazuli Ore"; } } + //public ItemStack SmeltingOutput { get { return new ItemStack(); } } // TODO: Metadata + public override Tuple GetTextureMap(byte metadata) { return new Tuple(0, 10); diff --git a/TrueCraft.Core/Logic/Blocks/LockedChestBlock.cs b/TrueCraft.Core/Logic/Blocks/LockedChestBlock.cs index 0d73c40..fb7e9b0 100644 --- a/TrueCraft.Core/Logic/Blocks/LockedChestBlock.cs +++ b/TrueCraft.Core/Logic/Blocks/LockedChestBlock.cs @@ -3,7 +3,7 @@ using TrueCraft.API.Logic; namespace TrueCraft.Core.Logic.Blocks { - public class LockedChestBlock : BlockProvider + public class LockedChestBlock : BlockProvider, IBurnableItem { public static readonly byte BlockID = 0x5F; @@ -19,6 +19,8 @@ namespace TrueCraft.Core.Logic.Blocks public override string DisplayName { get { return "Locked Chest"; } } + public TimeSpan BurnTime { get { return TimeSpan.FromSeconds(15); } } + public override SoundEffectClass SoundEffect { get diff --git a/TrueCraft.Core/Logic/Blocks/NoteBlockBlock.cs b/TrueCraft.Core/Logic/Blocks/NoteBlockBlock.cs index 96f15fa..632ed29 100644 --- a/TrueCraft.Core/Logic/Blocks/NoteBlockBlock.cs +++ b/TrueCraft.Core/Logic/Blocks/NoteBlockBlock.cs @@ -5,7 +5,7 @@ using TrueCraft.Core.Logic.Items; namespace TrueCraft.Core.Logic.Blocks { - public class NoteBlockBlock : BlockProvider, ICraftingRecipe + public class NoteBlockBlock : BlockProvider, ICraftingRecipe, IBurnableItem { public static readonly byte BlockID = 0x19; @@ -19,6 +19,8 @@ namespace TrueCraft.Core.Logic.Blocks public override string DisplayName { get { return "Note Block"; } } + public TimeSpan BurnTime { get { return TimeSpan.FromSeconds(15); } } + public override Tuple GetTextureMap(byte metadata) { return new Tuple(10, 4); diff --git a/TrueCraft.Core/Logic/Blocks/RedstoneOreBlock.cs b/TrueCraft.Core/Logic/Blocks/RedstoneOreBlock.cs index 572206a..edb3232 100644 --- a/TrueCraft.Core/Logic/Blocks/RedstoneOreBlock.cs +++ b/TrueCraft.Core/Logic/Blocks/RedstoneOreBlock.cs @@ -5,7 +5,7 @@ using TrueCraft.Core.Logic.Items; namespace TrueCraft.Core.Logic.Blocks { - public class RedstoneOreBlock : BlockProvider + public class RedstoneOreBlock : BlockProvider, ISmeltableItem { public static readonly byte BlockID = 0x49; @@ -19,6 +19,8 @@ namespace TrueCraft.Core.Logic.Blocks public override string DisplayName { get { return "Redstone Ore"; } } + public ItemStack SmeltingOutput { get { return new ItemStack(RedstoneItem.ItemID); } } + public override Tuple GetTextureMap(byte metadata) { return new Tuple(3, 3); diff --git a/TrueCraft.Core/Logic/Blocks/SaplingBlock.cs b/TrueCraft.Core/Logic/Blocks/SaplingBlock.cs index b6cd475..10ab91c 100644 --- a/TrueCraft.Core/Logic/Blocks/SaplingBlock.cs +++ b/TrueCraft.Core/Logic/Blocks/SaplingBlock.cs @@ -4,7 +4,7 @@ using TrueCraft.API; namespace TrueCraft.Core.Logic.Blocks { - public class SaplingBlock : BlockProvider + public class SaplingBlock : BlockProvider, IBurnableItem { public enum SaplingType { @@ -29,6 +29,8 @@ namespace TrueCraft.Core.Logic.Blocks public override BoundingBox? BoundingBox { get { return null; } } + public TimeSpan BurnTime { get { return TimeSpan.FromSeconds(5); } } + public override BoundingBox? InteractiveBoundingBox { get diff --git a/TrueCraft.Core/Logic/Blocks/StairsBlock.cs b/TrueCraft.Core/Logic/Blocks/StairsBlock.cs index c291409..5256ea0 100644 --- a/TrueCraft.Core/Logic/Blocks/StairsBlock.cs +++ b/TrueCraft.Core/Logic/Blocks/StairsBlock.cs @@ -57,7 +57,7 @@ namespace TrueCraft.Core.Logic.Blocks } } - public class WoodenStairsBlock : StairsBlock, ICraftingRecipe + public class WoodenStairsBlock : StairsBlock, ICraftingRecipe, IBurnableItem { public static readonly byte BlockID = 0x35; @@ -69,6 +69,8 @@ namespace TrueCraft.Core.Logic.Blocks public override bool Flammable { get { return true; } } + public TimeSpan BurnTime { get { return TimeSpan.FromSeconds(15); } } + public override SoundEffectClass SoundEffect { get diff --git a/TrueCraft.Core/Logic/Blocks/TrapdoorBlock.cs b/TrueCraft.Core/Logic/Blocks/TrapdoorBlock.cs index 8d2d699..78cdcbe 100644 --- a/TrueCraft.Core/Logic/Blocks/TrapdoorBlock.cs +++ b/TrueCraft.Core/Logic/Blocks/TrapdoorBlock.cs @@ -6,7 +6,7 @@ using TrueCraft.API.Networking; namespace TrueCraft.Core.Logic.Blocks { - public class TrapdoorBlock : BlockProvider, ICraftingRecipe + public class TrapdoorBlock : BlockProvider, ICraftingRecipe, IBurnableItem { public enum TrapdoorDirection { @@ -37,6 +37,8 @@ namespace TrueCraft.Core.Logic.Blocks public override string DisplayName { get { return "Trapdoor"; } } + public TimeSpan BurnTime { get { return TimeSpan.FromSeconds(15); } } + public override SoundEffectClass SoundEffect { get diff --git a/TrueCraft.Core/Logic/Blocks/WoodBlock.cs b/TrueCraft.Core/Logic/Blocks/WoodBlock.cs index 38b2bee..49e20a3 100644 --- a/TrueCraft.Core/Logic/Blocks/WoodBlock.cs +++ b/TrueCraft.Core/Logic/Blocks/WoodBlock.cs @@ -3,7 +3,7 @@ using TrueCraft.API.Logic; namespace TrueCraft.Core.Logic.Blocks { - public class WoodBlock : BlockProvider + public class WoodBlock : BlockProvider, IBurnableItem { public enum WoodType { @@ -26,6 +26,8 @@ namespace TrueCraft.Core.Logic.Blocks public override bool Flammable { get { return true; } } + public TimeSpan BurnTime { get { return TimeSpan.FromSeconds(15); } } + public override SoundEffectClass SoundEffect { get diff --git a/TrueCraft.Core/Logic/Blocks/WoodenPlanksBlock.cs b/TrueCraft.Core/Logic/Blocks/WoodenPlanksBlock.cs index 8d5cd7b..25cbf08 100644 --- a/TrueCraft.Core/Logic/Blocks/WoodenPlanksBlock.cs +++ b/TrueCraft.Core/Logic/Blocks/WoodenPlanksBlock.cs @@ -4,7 +4,7 @@ using TrueCraft.API.Logic; namespace TrueCraft.Core.Logic.Blocks { - public class WoodenPlanksBlock : BlockProvider, ICraftingRecipe + public class WoodenPlanksBlock : BlockProvider, ICraftingRecipe, IBurnableItem, IBurnableItem { public static readonly byte BlockID = 0x05; @@ -20,6 +20,8 @@ namespace TrueCraft.Core.Logic.Blocks public override bool Flammable { get { return true; } } + public TimeSpan BurnTime { get { return TimeSpan.FromSeconds(15); } } + public override SoundEffectClass SoundEffect { get diff --git a/TrueCraft.Core/Logic/Items/BucketItem.cs b/TrueCraft.Core/Logic/Items/BucketItem.cs index 912db3f..770f48e 100644 --- a/TrueCraft.Core/Logic/Items/BucketItem.cs +++ b/TrueCraft.Core/Logic/Items/BucketItem.cs @@ -68,7 +68,7 @@ namespace TrueCraft.Core.Logic.Items } } - public class LavaBucketItem : BucketItem + public class LavaBucketItem : BucketItem, IBurnableItem { public static readonly new short ItemID = 0x147; @@ -76,6 +76,8 @@ namespace TrueCraft.Core.Logic.Items public override string DisplayName { get { return "Lava Bucket"; } } + public TimeSpan BurnTime { get { return TimeSpan.FromSeconds(1000); } } + protected override byte? RelevantBlockType { get diff --git a/TrueCraft.Core/Logic/Items/StickItem.cs b/TrueCraft.Core/Logic/Items/StickItem.cs index 4912035..6ac3d21 100644 --- a/TrueCraft.Core/Logic/Items/StickItem.cs +++ b/TrueCraft.Core/Logic/Items/StickItem.cs @@ -5,7 +5,7 @@ using TrueCraft.Core.Logic.Blocks; namespace TrueCraft.Core.Logic.Items { - public class StickItem : ItemProvider, ICraftingRecipe + public class StickItem : ItemProvider, ICraftingRecipe, IBurnableItem { public static readonly short ItemID = 0x118; @@ -18,6 +18,8 @@ namespace TrueCraft.Core.Logic.Items public override string DisplayName { get { return "Stick"; } } + public TimeSpan BurnTime { get { return TimeSpan.FromSeconds(5); } } + public ItemStack[,] Pattern { get