public override void OnMouseMove(MouseEvent args) { base.OnMouseMove(args); if (SingleComposer != null && SingleComposer.Bounds.PointInside(args.X, args.Y)) { double x = args.X - SingleComposer.Bounds.absX; double y = args.Y - SingleComposer.Bounds.absY - GuiElement.scaled(30); // no idea why the 30 :/ //Console.WriteLine("{0}/{1}", args.X, args.Y); StringBuilder hoverText = new StringBuilder(); mapElem.TranslateViewPosToWorldPos(new Vec2f((float)x, (float)y), ref hoveredWorldPos); hoveredWorldPos.Y++; //BlockPos pos = capi.World.Player.Entity.Pos.AsBlockPos; double yAbs = hoveredWorldPos.Y; hoveredWorldPos.Sub(capi.World.DefaultSpawnPosition.AsBlockPos); hoveredWorldPos.Y = yAbs; hoverText.AppendLine(string.Format("{0}, {1}, {2}", (int)hoveredWorldPos.X, (int)hoveredWorldPos.Y, (int)hoveredWorldPos.Z)); foreach (MapComponent cmp in mapComponents) { cmp.OnMouseMove(args, mapElem, hoverText); } string text = hoverText.ToString().TrimEnd(); hoverTextElem.SetNewText(text); } }
void loadWorldPos(double mouseX, double mouseY, ref Vec3d worldPos) { double x = mouseX - SingleComposer.Bounds.absX; double y = mouseY - SingleComposer.Bounds.absY - (dialogType == EnumDialogType.Dialog ? GuiElement.scaled(30) : 0); // no idea why the 30 :/ mapElem.TranslateViewPosToWorldPos(new Vec2f((float)x, (float)y), ref worldPos); worldPos.Y++; }