|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- using Gamecraft.Blocks.BlockGroups;
- using GamecraftModdingAPI.Blocks;
- using GamecraftModdingAPI.Utility;
-
- namespace GamecraftModdingAPI
- {
- /// <summary>
- /// A group of blocks that can be selected together. The placed version of blueprints.
- /// </summary>
- public class BlockGroup
- {
- internal static BlueprintEngine _engine = new BlueprintEngine();
- public int Id { get; }
- private Block _sourceBlock;
-
- internal BlockGroup(int id, Block block)
- {
- if (id == BlockGroupUtility.GROUP_UNASSIGNED)
- throw new BlockException("Cannot create a block group for blocks without a group!");
- Id = id;
- _sourceBlock = block;
- }
-
- /// <summary>
- /// Collects each block that is a part of this group.
- /// </summary>
- /// <returns>An array of blocks</returns>
- public Block[] GetBlocks()
- {
- return _engine.GetBlocksFromGroup(_sourceBlock.Id);
- }
-
- /// <summary>
- /// Removes all of the blocks in this group from the world.
- /// </summary>
- public void Remove()
- {
- _engine.RemoveBlockGroup(Id);
- }
-
- public static void Init()
- {
- GameEngineManager.AddGameEngine(_engine);
- }
- }
- }
|