From 900c31ae1a9c18ac00c4b9062ec984aaf61a5bff Mon Sep 17 00:00:00 2001 From: Bitterholz Date: Tue, 9 Sep 2014 22:43:19 +0200 Subject: [PATCH] Added: -BlockStone -BlockCobble Changed: -Block.cs: -added ToolQuality:int -added MetaData:int --- source/Craft.Net.Logic/Block.cs | 26 ++++++++++++++++++- source/Craft.Net.Logic/Blocks/BlockCobble.cs | 21 +++++++++++++++ source/Craft.Net.Logic/Blocks/BlockStone.cs | 22 ++++++++++++++++ .../Blocks/DecorativeGrassBlock.cs | 2 ++ source/Craft.Net.Logic/Blocks/DirtBlock.cs | 1 + source/Craft.Net.Logic/Blocks/FlowerBlock.cs | 1 + source/Craft.Net.Logic/Blocks/GlassBlock.cs | 1 + source/Craft.Net.Logic/Blocks/GrassBlock.cs | 1 + source/Craft.Net.Logic/Blocks/LadderBlock.cs | 1 + source/Craft.Net.Logic/Blocks/WheatBlock.cs | 1 + source/Craft.Net.Logic/Craft.Net.Logic.csproj | 2 ++ 11 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 source/Craft.Net.Logic/Blocks/BlockCobble.cs create mode 100644 source/Craft.Net.Logic/Blocks/BlockStone.cs diff --git a/source/Craft.Net.Logic/Block.cs b/source/Craft.Net.Logic/Block.cs index 0e34426e..f5d568e3 100644 --- a/source/Craft.Net.Logic/Block.cs +++ b/source/Craft.Net.Logic/Block.cs @@ -24,6 +24,10 @@ public abstract class Block : Item private static Dictionary IsSolidOnFaceHandlers { get; set; } private static Dictionary BlockMinedHandlers { get; set; } private static Dictionary BlockRightClickedHandlers { get; set; } + //HarvestLevesl: 0=Hand, 1=Wooden Tool, 2= Stone Tool, 3= Iron Tool, 4= Diamond Tool + private int ToolQuality = 0; + //Item Damagevalue, used for blocks to determine subtypes + private int MetaData = 0; static Block() { @@ -73,7 +77,27 @@ protected void SetPlacementSoundEffect(string soundEffect) { BlockPlacementSoundEffects[BlockId] = soundEffect; } - + + protected void SetToolQuality(int level) + { + ToolQuality = level; + } + + public int GetToolQuality() + { + return ToolQuality; + } + + protected void SetMetaData(int meta) + { + MetaData = meta; + } + + public int GetMetaData() + { + return MetaData; + } + protected void SetBoundingBoxHandler(BoundingBoxHandler handler) { BoundingBoxHandlers[BlockId] = handler; diff --git a/source/Craft.Net.Logic/Blocks/BlockCobble.cs b/source/Craft.Net.Logic/Blocks/BlockCobble.cs new file mode 100644 index 00000000..72c0805f --- /dev/null +++ b/source/Craft.Net.Logic/Blocks/BlockCobble.cs @@ -0,0 +1,21 @@ +using Craft.Net.Common; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Craft.Net.Logic.Blocks +{ + public class BlockCobble : Block + { + public static readonly short ID = 4; + public override short BlockId { get {return ID;}} + + public BlockCobble() + : base("minecraft:cobblestone", hardness: 0.8) + { + base.SetToolQuality(1); + base.SetPlacementSoundEffect(SoundEffect.DigStone); + } + } +} diff --git a/source/Craft.Net.Logic/Blocks/BlockStone.cs b/source/Craft.Net.Logic/Blocks/BlockStone.cs new file mode 100644 index 00000000..f8a9050e --- /dev/null +++ b/source/Craft.Net.Logic/Blocks/BlockStone.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Craft.Net.Logic; +using Craft.Net.Common; + +namespace Craft.Net.Logic.Blocks +{ + public class BlockStone : Block + { + public static readonly short ID = 1; + public override short BlockId { get { return ID; } } + + public BlockStone() : base("minecraft:stone", hardness : 1.0) + { + base.SetToolQuality(1); + base.SetPlacementSoundEffect(SoundEffect.DigStone); + base.SetDropHandler((world, coordinates, info) => new[] { new ItemStack(BlockCobble.ID) }); + } + } +} diff --git a/source/Craft.Net.Logic/Blocks/DecorativeGrassBlock.cs b/source/Craft.Net.Logic/Blocks/DecorativeGrassBlock.cs index cb97b901..53e6d910 100644 --- a/source/Craft.Net.Logic/Blocks/DecorativeGrassBlock.cs +++ b/source/Craft.Net.Logic/Blocks/DecorativeGrassBlock.cs @@ -10,6 +10,7 @@ public class DecorativeGrassBlock : Block public DecorativeGrassBlock() : base("minecraft:tallgrass") { + base.SetToolQuality(0); base.SetBoundingBoxHandler(BoundingBox); //TODO: Once items are implemented, we need to drop seeds here //SetDropHandler(Id, (world, coordinates, info) => new[] { new ItemStack(ItemSeeds.Id) }); @@ -28,6 +29,7 @@ public class TallGrassBlock : Block public TallGrassBlock() : base("minecraft:tallgrass") { + base.SetToolQuality(0); base.SetBoundingBoxHandler(BoundingBox); } diff --git a/source/Craft.Net.Logic/Blocks/DirtBlock.cs b/source/Craft.Net.Logic/Blocks/DirtBlock.cs index ae7d2c29..acb917d5 100644 --- a/source/Craft.Net.Logic/Blocks/DirtBlock.cs +++ b/source/Craft.Net.Logic/Blocks/DirtBlock.cs @@ -11,6 +11,7 @@ public class DirtBlock : Block public DirtBlock() : base("minecraft:dirt", hardness: 0.5) { + base.SetToolQuality(0); base.SetPlacementSoundEffect(SoundEffect.DigGrass); } } diff --git a/source/Craft.Net.Logic/Blocks/FlowerBlock.cs b/source/Craft.Net.Logic/Blocks/FlowerBlock.cs index 882eead2..e1a344a6 100644 --- a/source/Craft.Net.Logic/Blocks/FlowerBlock.cs +++ b/source/Craft.Net.Logic/Blocks/FlowerBlock.cs @@ -10,6 +10,7 @@ public class YellowFlowerBlock : Block public YellowFlowerBlock() : base("minecraft:yellow_flower") { + base.SetHarvestLevel(0); base.SetBoundingBoxHandler(BoundingBox); } diff --git a/source/Craft.Net.Logic/Blocks/GlassBlock.cs b/source/Craft.Net.Logic/Blocks/GlassBlock.cs index 4bba0368..e7f4822e 100644 --- a/source/Craft.Net.Logic/Blocks/GlassBlock.cs +++ b/source/Craft.Net.Logic/Blocks/GlassBlock.cs @@ -11,6 +11,7 @@ public class GlassBlock : Block public GlassBlock() : base("minecraft:glass", hardness: 0.3) { + base.SetToolQuality(0); base.SetPlacementSoundEffect(SoundEffect.RandomGlass); base.SetDropHandler((world, coordinates, info) => new ItemStack[] { }); } diff --git a/source/Craft.Net.Logic/Blocks/GrassBlock.cs b/source/Craft.Net.Logic/Blocks/GrassBlock.cs index 356ed8cd..d44938c2 100644 --- a/source/Craft.Net.Logic/Blocks/GrassBlock.cs +++ b/source/Craft.Net.Logic/Blocks/GrassBlock.cs @@ -11,6 +11,7 @@ public class GrassBlock : Block public GrassBlock() : base("minecraft:grass", hardness: 0.6) { + base.SetToolQuality(0); base.SetPlacementSoundEffect(SoundEffect.DigGrass); base.SetDropHandler((world, coordinates, info) => new[] { new ItemStack(DirtBlock.Id) }); } diff --git a/source/Craft.Net.Logic/Blocks/LadderBlock.cs b/source/Craft.Net.Logic/Blocks/LadderBlock.cs index 6dfeb816..96e2614f 100644 --- a/source/Craft.Net.Logic/Blocks/LadderBlock.cs +++ b/source/Craft.Net.Logic/Blocks/LadderBlock.cs @@ -19,6 +19,7 @@ public enum Orientation public LadderBlock() : base("minecraft:ladder") { + base.SetToolQuality(0); base.SetPlacementSoundEffect(SoundEffect.DigWood); base.SetBoundingBoxHandler(BoundingBox); base.SetItemUsedOnBlockHandler(ItemUsedOnBlock); diff --git a/source/Craft.Net.Logic/Blocks/WheatBlock.cs b/source/Craft.Net.Logic/Blocks/WheatBlock.cs index 0c9ac489..213396bb 100644 --- a/source/Craft.Net.Logic/Blocks/WheatBlock.cs +++ b/source/Craft.Net.Logic/Blocks/WheatBlock.cs @@ -10,6 +10,7 @@ public class WheatBlock : Block public WheatBlock() : base("minecraft:seeds") { + base.SetToolQuality(0); base.SetBoundingBoxHandler(BoundingBox); } diff --git a/source/Craft.Net.Logic/Craft.Net.Logic.csproj b/source/Craft.Net.Logic/Craft.Net.Logic.csproj index 922f763b..19afa1c8 100644 --- a/source/Craft.Net.Logic/Craft.Net.Logic.csproj +++ b/source/Craft.Net.Logic/Craft.Net.Logic.csproj @@ -40,6 +40,8 @@ + +