This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
Drew DeVault a361703746 Implement walking sounds
These sounds change depending on what kind of block you're walking in.

Still to come: sound effects for mining and placing blocks
2015-10-05 22:06:59 -04:00

158 lines
4.4 KiB
C#

using System;
using TrueCraft.API.Logic;
using TrueCraft.API;
namespace TrueCraft.Core.Logic.Blocks
{
public class SlabBlock : BlockProvider
{
public enum SlabMaterial
{
Stone = 0x0,
Standstone = 0x1,
Wooden = 0x2,
Cobblestone = 0x3
}
public static readonly byte BlockID = 0x2C;
public override byte ID { get { return 0x2C; } }
public override double BlastResistance { get { return 30; } }
public override double Hardness { get { return 2; } }
public override byte Luminance { get { return 0; } }
public override bool Opaque { get { return false; } }
public override byte LightOpacity { get { return 255; } }
public override string DisplayName { get { return "Stone Slab"; } }
public override SoundEffectClass SoundEffect
{
get
{
return SoundEffectClass.Wood; // TODO: Deal with metadata god dammit
}
}
public override Tuple<int, int> GetTextureMap(byte metadata)
{
return new Tuple<int, int>(6, 0);
}
public class StoneSlabRecipe : ICraftingRecipe
{
public ItemStack[,] Pattern
{
get
{
return new[,] { { new ItemStack(StoneBlock.BlockID), new ItemStack(StoneBlock.BlockID), new ItemStack(StoneBlock.BlockID) } };
}
}
public ItemStack Output
{
get
{
return new ItemStack(BlockID, 3, (short)SlabMaterial.Stone);
}
}
public bool SignificantMetadata { get { return true; } }
}
public class StandstoneSlabRecipe : ICraftingRecipe
{
public ItemStack[,] Pattern
{
get
{
return new[,] { { new ItemStack(SandstoneBlock.BlockID), new ItemStack(SandstoneBlock.BlockID), new ItemStack(SandstoneBlock.BlockID) } };
}
}
public ItemStack Output
{
get
{
return new ItemStack(BlockID, 3, (short)SlabMaterial.Standstone);
}
}
public bool SignificantMetadata { get { return true; } }
}
public class WoodenSlabRecipe : ICraftingRecipe
{
public ItemStack[,] Pattern
{
get
{
return new[,] { { new ItemStack(WoodenPlanksBlock.BlockID), new ItemStack(WoodenPlanksBlock.BlockID), new ItemStack(WoodenPlanksBlock.BlockID) } };
}
}
public ItemStack Output
{
get
{
return new ItemStack(BlockID, 3, (short)SlabMaterial.Wooden);
}
}
public bool SignificantMetadata { get { return true; } }
}
public class CobblestoneSlabRecipe : ICraftingRecipe
{
public ItemStack[,] Pattern
{
get
{
return new[,] { { new ItemStack(CobblestoneBlock.BlockID), new ItemStack(CobblestoneBlock.BlockID), new ItemStack(CobblestoneBlock.BlockID) } };
}
}
public ItemStack Output
{
get
{
return new ItemStack(BlockID, 3, (short)SlabMaterial.Cobblestone);
}
}
public bool SignificantMetadata { get { return true; } }
}
}
public class DoubleSlabBlock : SlabBlock
{
public static readonly new byte BlockID = 0x2B;
public override byte ID { get { return 0x2B; } }
public override double BlastResistance { get { return 30; } }
public override double Hardness { get { return 2; } }
public override byte Luminance { get { return 0; } }
public override string DisplayName { get { return "Double Stone Slab"; } }
public override SoundEffectClass SoundEffect
{
get
{
return SoundEffectClass.Wood;
}
}
public override Tuple<int, int> GetTextureMap(byte metadata)
{
return new Tuple<int, int>(6, 0);
}
}
}