From e6e92b7ecf6f3570ae0168090927a6805da15018 Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Mon, 5 Mar 2018 10:31:28 +1100 Subject: [PATCH] Fix /search blocks not including global blocks from console --- MCGalaxy/Commands/CPE/CustomBlockCommand.cs | 8 ++++---- MCGalaxy/Commands/Information/CmdBlocks.cs | 2 +- MCGalaxy/Commands/Information/CmdSearch.cs | 17 ++++++++--------- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/MCGalaxy/Commands/CPE/CustomBlockCommand.cs b/MCGalaxy/Commands/CPE/CustomBlockCommand.cs index a7682f06b..b23423cb2 100644 --- a/MCGalaxy/Commands/CPE/CustomBlockCommand.cs +++ b/MCGalaxy/Commands/CPE/CustomBlockCommand.cs @@ -496,14 +496,14 @@ namespace MCGalaxy.Commands.CPE { // Start from opposite ends to avoid overlap. if (global) { BlockDefinition[] defs = BlockDefinition.GlobalDefs; - for (int b = Block.CpeCount; b < Block.Invalid; b++) { - BlockID block = Block.FromRaw((BlockRaw)b); + for (BlockID b = Block.CpeCount; b < Block.Invalid; b++) { + BlockID block = Block.FromRaw(b); if (defs[block] == null) return block; } } else { BlockDefinition[] defs = lvl.CustomBlockDefs; - for (int b = Block.Invalid - 1; b >= Block.CpeCount; b--) { - BlockID block = Block.FromRaw((BlockRaw)b); + for (BlockID b = Block.Invalid - 1; b >= Block.CpeCount; b--) { + BlockID block = Block.FromRaw(b); if (defs[block] == null) return block; } } diff --git a/MCGalaxy/Commands/Information/CmdBlocks.cs b/MCGalaxy/Commands/Information/CmdBlocks.cs index aa36f7f59..1a30c3a01 100644 --- a/MCGalaxy/Commands/Information/CmdBlocks.cs +++ b/MCGalaxy/Commands/Information/CmdBlocks.cs @@ -61,7 +61,7 @@ namespace MCGalaxy.Commands.Info { static List BasicBlocks() { List blocks = new List(Block.CpeCount); - for (BlockID block = 0; block < Block.CpeCount; block++) { + for (BlockID block = Block.Air; block < Block.CpeCount; block++) { blocks.Add(block); } return blocks; diff --git a/MCGalaxy/Commands/Information/CmdSearch.cs b/MCGalaxy/Commands/Information/CmdSearch.cs index 13eddc9c8..057f87b8c 100644 --- a/MCGalaxy/Commands/Information/CmdSearch.cs +++ b/MCGalaxy/Commands/Information/CmdSearch.cs @@ -54,17 +54,16 @@ namespace MCGalaxy.Commands.Info { static void SearchBlocks(Player p, string keyword, string modifier) { List blocks = new List(); - for (BlockID block = 0; block < Block.Count; block++) { - if (!Block.Undefined(block)) blocks.Add(block); - } + BlockDefinition[] defs = Player.IsSuper(p) ? BlockDefinition.GlobalDefs : p.level.CustomBlockDefs; - if (!Player.IsSuper(p)) { - for (int b = Block.CpeCount; b < Block.Count; b++) { - BlockID block = Block.FromRaw((BlockRaw)b); - if (p.level.CustomBlockDefs[block] == null) continue; - blocks.Add(block); + for (int b = 0; b < Block.ExtendedCount; b++) { + BlockID block = (BlockID)b; + if (Block.IsPhysicsType(block)) { + if (!Block.Undefined(block)) blocks.Add(block); + } else { + if (defs[block] != null) blocks.Add(block); } - } + } List blockNames = FilterList(blocks, keyword, b => Block.GetName(p, b), null,