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

125 lines
3.2 KiB
C#

using System;
using TrueCraft.API.Logic;
using TrueCraft.API;
using TrueCraft.Core.Logic.Items;
namespace TrueCraft.Core.Logic.Blocks
{
public class SnowBlock : BlockProvider, ICraftingRecipe
{
public static readonly byte BlockID = 0x50;
public override byte ID { get { return 0x50; } }
public override double BlastResistance { get { return 1; } }
public override double Hardness { get { return 0.2; } }
public override byte Luminance { get { return 0; } }
public override string DisplayName { get { return "Snow Block"; } }
public override SoundEffectClass SoundEffect
{
get
{
return SoundEffectClass.Snow;
}
}
public override Tuple<int, int> GetTextureMap(byte metadata)
{
return new Tuple<int, int>(2, 4);
}
public ItemStack[,] Pattern
{
get
{
return new[,]
{
{ new ItemStack(SnowballItem.ItemID), new ItemStack(SnowballItem.ItemID) },
{ new ItemStack(SnowballItem.ItemID), new ItemStack(SnowballItem.ItemID) }
};
}
}
public ItemStack Output
{
get
{
return new ItemStack(BlockID);
}
}
public bool SignificantMetadata
{
get
{
return false;
}
}
}
public class SnowfallBlock : BlockProvider
{
public static readonly byte BlockID = 0x4E;
public override byte ID { get { return 0x4E; } }
public override double BlastResistance { get { return 0.5; } }
public override double Hardness { get { return 0.6; } }
public override byte Luminance { get { return 0; } }
public override bool RenderOpaque { get { return true; } }
public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Snow"; } }
public override BoundingBox? BoundingBox { get { return null; } }
public override SoundEffectClass SoundEffect
{
get
{
return SoundEffectClass.Snow;
}
}
public override BoundingBox? InteractiveBoundingBox
{
get
{
// TODO: This is metadata-aware
return new BoundingBox(Vector3.Zero, new Vector3(1, 1 / 16.0, 1));
}
}
public override Coordinates3D GetSupportDirection(BlockDescriptor descriptor)
{
return Coordinates3D.Down;
}
public override Tuple<int, int> GetTextureMap(byte metadata)
{
return new Tuple<int, int>(2, 4);
}
public override ToolType EffectiveTools
{
get
{
return ToolType.Shovel;
}
}
protected override ItemStack[] GetDrop(BlockDescriptor descriptor, ItemStack item)
{
return new[] { new ItemStack(SnowballItem.ItemID) };
}
}
}