Example #1
0
 public static BlockLogicDescriptor Initialize(BlockLogicDescriptor descriptor)
 {
     descriptor.GetSupportDirection = (b, w, c) => SupportDirection.Down;
     descriptor.GetDrop = (b, w, c) => new[] { new ItemStack(CakeItem.ItemId) };
     descriptor.BlockRightClicked = (block, world, coord, side, cursor) =>
         {
             byte data = world.GetMetadata(coord);
             if (data == 0x5)
             {
                 world.SetBlock(coord, new BlockDescriptor(AirBlock.BlockId)); // If there is no more pieces left then delete block
                 return true;
             }
             else
             {
                 data++;
                 world.SetMetadata(coord, data); // Eat a piece
                 return true;
             }
         };
     return descriptor;
 }
Example #2
0
 public static BlockLogicDescriptor Initialize(BlockLogicDescriptor descriptor)
 {
     descriptor.GetSupportDirection = (b, w, c) => SupportDirection.Down;
     descriptor.GetDrop = (b, w, c) => new[] { new ItemStack(CakeItem.ItemId) };
     return descriptor;
 }
Example #3
0
 public static BlockLogicDescriptor Initialize(BlockLogicDescriptor descriptor)
 {
     //descriptor.GetDrop = (b, w, c) => new[] { new ItemStack(DirtBlock.BlockId) };
     return descriptor;
 }
Example #4
0
 public static BlockLogicDescriptor Initialize(BlockLogicDescriptor descriptor)
 {
     descriptor.BoundingBox = null;
     return descriptor;
 }
Example #5
0
 public static void LoadTypes(Type[] types)
 {
     foreach (var type in types)
     {
         var attribute = (BlockAttribute)type.GetCustomAttributes(typeof(BlockAttribute), false).First();
         var method = type.GetMethods().FirstOrDefault(m => m.Name == attribute.Initializer && m.ReturnType == typeof(BlockLogicDescriptor)
             && m.GetParameters().Length == 1 && m.GetParameters()[0].ParameterType == typeof(BlockLogicDescriptor) && !m.IsGenericMethod);
         var descriptor = new BlockLogicDescriptor(type);
         descriptor.Hardness = attribute.Hardness;
         descriptor.DisplayName = attribute.DisplayName;
         if (method != null)
             descriptor = (BlockLogicDescriptor)method.Invoke(null, new object[] { descriptor });
         BlockLogicDescriptors[attribute.BlockId] = descriptor;
     }
 }