public void HighlightIncompleteParts(IWorldAccessor world, IPlayer player, BlockPos centerPos) { List <BlockPos> blocks = new List <BlockPos>(); List <int> colors = new List <int>(); for (int i = 0; i < TransformedOffsets.Count; i++) { Vec4i offset = TransformedOffsets[i]; Block block = world.BlockAccessor.GetBlock(centerPos.X + offset.X, centerPos.Y + offset.Y, centerPos.Z + offset.Z); AssetLocation desireBlockLoc = BlockCodes[offset.W]; if (!WildcardUtil.Match(BlockCodes[offset.W], block.Code)) { blocks.Add(new BlockPos(offset.X, offset.Y, offset.Z).Add(centerPos)); if (block.Id != 0) { colors.Add(ColorUtil.ColorFromRgba(215, 94, 94, 64)); } else { int col = world.SearchBlocks(desireBlockLoc)[0].GetColor(world.Api as ICoreClientAPI, centerPos); col &= ~(255 << 24); col |= 96 << 24; colors.Add(col); } } } world.HighlightBlocks(player, HighlightSlotId, blocks, colors); }
public void ResendBlockHighlights(WorldEdit we) { var player = world.PlayerByUid(PlayerUID); HighlightSelectedArea(); if (ToolsEnabled) { EnumHighlightBlocksMode mode = EnumHighlightBlocksMode.CenteredToSelectedBlock; if (ToolOffsetMode == EnumToolOffsetMode.Attach) { mode = EnumHighlightBlocksMode.AttachedToSelectedBlock; } if (ToolInstance != null) { world.HighlightBlocks(player, (int)EnumHighlightSlot.Brush, ToolInstance.GetBlockHighlights(we), ToolInstance.GetBlockHighlightColors(we), mode, EnumHighlightShape.Arbitrary); } } else { world.HighlightBlocks(player, (int)EnumHighlightSlot.Brush, new List <BlockPos>(), new List <int>()); } }
public void ClearHighlights(IWorldAccessor world, IPlayer player) { world.HighlightBlocks(player, HighlightSlotId, new List <BlockPos>(), new List <int>()); }