gb/lb copyall should keep inventory order

This commit is contained in:
UnknownShadow200 2018-04-06 17:56:09 +10:00
parent 69b0f96149
commit 67916054f7

View File

@ -127,7 +127,7 @@ namespace MCGalaxy.Commands.CPE {
if (defs[i] == null) continue; if (defs[i] == null) continue;
BlockID b = (BlockID)i; BlockID b = (BlockID)i;
if (!DoCopy(p, global, cmd, defs[i], b, b)) continue; if (!DoCopy(p, global, cmd, true, defs[i], b, b)) continue;
copied++; copied++;
string scope = global ? "global" : "level"; string scope = global ? "global" : "level";
@ -147,14 +147,15 @@ namespace MCGalaxy.Commands.CPE {
BlockDefinition[] defs = global ? BlockDefinition.GlobalDefs : p.level.CustomBlockDefs; BlockDefinition[] defs = global ? BlockDefinition.GlobalDefs : p.level.CustomBlockDefs;
BlockDefinition srcDef = defs[src]; BlockDefinition srcDef = defs[src];
if (!DoCopy(p, global, cmd, srcDef, src, dst)) return; if (!DoCopy(p, global, cmd, false, srcDef, src, dst)) return;
string scope = global ? "global" : "level"; string scope = global ? "global" : "level";
Player.Message(p, "Duplicated the {0} custom block with id \"{1}\" to \"{2}\".", scope, Player.Message(p, "Duplicated the {0} custom block with id \"{1}\" to \"{2}\".", scope,
Block.ToRaw(src), Block.ToRaw(dst)); Block.ToRaw(src), Block.ToRaw(dst));
} }
static bool DoCopy(Player p, bool global, string cmd, BlockDefinition srcDef, BlockID src, BlockID dst) { static bool DoCopy(Player p, bool global, string cmd, bool keepOrder,
BlockDefinition srcDef, BlockID src, BlockID dst) {
if (srcDef == null && src < Block.CpeCount) { if (srcDef == null && src < Block.CpeCount) {
srcDef = DefaultSet.MakeCustomBlock(src); srcDef = DefaultSet.MakeCustomBlock(src);
} }
@ -167,7 +168,7 @@ namespace MCGalaxy.Commands.CPE {
BlockProps props = global ? Block.Props[src] : p.level.Props[src]; BlockProps props = global ? Block.Props[src] : p.level.Props[src];
dstDef = srcDef.Copy(); dstDef = srcDef.Copy();
dstDef.SetBlock(dst); dstDef.SetBlock(dst);
dstDef.InventoryOrder = -1; if (!keepOrder) dstDef.InventoryOrder = -1;
AddBlock(p, dstDef, global, cmd, props); AddBlock(p, dstDef, global, cmd, props);
return true; return true;