2014-12-28 15:38:58 -07:00
|
|
|
|
using System;
|
2015-01-26 17:05:26 -07:00
|
|
|
|
using TrueCraft.API.World;
|
|
|
|
|
using TrueCraft.API.Networking;
|
2015-02-01 18:53:10 -07:00
|
|
|
|
using TrueCraft.API.Server;
|
2015-05-03 16:02:47 -06:00
|
|
|
|
using fNbt;
|
2014-12-28 15:38:58 -07:00
|
|
|
|
|
|
|
|
|
namespace TrueCraft.API.Logic
|
|
|
|
|
{
|
|
|
|
|
public interface IBlockProvider
|
|
|
|
|
{
|
|
|
|
|
byte ID { get; }
|
2015-01-22 00:49:50 -05:00
|
|
|
|
double BlastResistance { get; }
|
2014-12-28 15:38:58 -07:00
|
|
|
|
double Hardness { get; }
|
2015-01-22 00:49:50 -05:00
|
|
|
|
byte Luminance { get; }
|
2015-01-26 00:25:55 -05:00
|
|
|
|
bool Opaque { get; }
|
2015-05-15 15:12:36 -06:00
|
|
|
|
bool RenderOpaque { get; }
|
2015-01-26 00:25:55 -05:00
|
|
|
|
byte LightModifier { get; }
|
2014-12-28 15:38:58 -07:00
|
|
|
|
string DisplayName { get; }
|
2015-02-09 17:10:44 -07:00
|
|
|
|
BoundingBox? BoundingBox { get; } // NOTE: Will this eventually need to be metadata-aware?
|
2014-12-28 18:55:46 -07:00
|
|
|
|
Tuple<int, int> GetTextureMap(byte metadata);
|
2015-02-09 23:01:41 -07:00
|
|
|
|
void GenerateDropEntity(BlockDescriptor descriptor, IWorld world, IMultiplayerServer server);
|
2015-02-11 22:06:59 -07:00
|
|
|
|
void BlockLeftClicked(BlockDescriptor descriptor, BlockFace face, IWorld world, IRemoteClient user);
|
2015-01-26 17:05:26 -07:00
|
|
|
|
bool BlockRightClicked(BlockDescriptor descriptor, BlockFace face, IWorld world, IRemoteClient user);
|
2015-02-08 16:20:27 -07:00
|
|
|
|
void BlockPlaced(BlockDescriptor descriptor, BlockFace face, IWorld world, IRemoteClient user);
|
2015-01-26 17:05:26 -07:00
|
|
|
|
void BlockMined(BlockDescriptor descriptor, BlockFace face, IWorld world, IRemoteClient user);
|
2015-02-10 21:21:24 -07:00
|
|
|
|
void BlockUpdate(BlockDescriptor descriptor, BlockDescriptor source, IMultiplayerServer server, IWorld world);
|
2015-01-26 17:05:26 -07:00
|
|
|
|
void BlockScheduledEvent(BlockDescriptor descriptor, IWorld world, object data);
|
2015-05-03 19:49:43 -06:00
|
|
|
|
void BlockLoadedFromChunk(BlockDescriptor descriptor, IMultiplayerServer server, IWorld world);
|
2015-05-03 16:02:47 -06:00
|
|
|
|
void TileEntityLoadedForClient(BlockDescriptor descriptor, IWorld world, NbtCompound compound, IRemoteClient client);
|
2014-12-28 15:38:58 -07:00
|
|
|
|
}
|
|
|
|
|
}
|