public override void OnMouseMove(MouseEvent args, GuiElementMap mapElem, StringBuilder hoverText) { Vec2f viewPos = new Vec2f(); mapElem.TranslateWorldPosToViewPos(waypoint.Position, ref viewPos); double x = viewPos.X + mapElem.Bounds.renderX; double y = viewPos.Y + mapElem.Bounds.renderY; if (waypoint.Pinned) { mapElem.ClampButPreserveAngle(ref viewPos, 2); x = viewPos.X + mapElem.Bounds.renderX; y = viewPos.Y + mapElem.Bounds.renderY; x = (float)GameMath.Clamp(x, mapElem.Bounds.renderX + 2, mapElem.Bounds.renderX + mapElem.Bounds.InnerWidth - 2); y = (float)GameMath.Clamp(y, mapElem.Bounds.renderY + 2, mapElem.Bounds.renderY + mapElem.Bounds.InnerHeight - 2); } double dX = args.X - x; double dY = args.Y - y; if (mouseOver = Math.Abs(dX) < 8 && Math.Abs(dY) < 8) { string text = Lang.Get("Waypoint {0}", waypointIndex) + "\n" + waypoint.Title; hoverText.AppendLine(text); } }
public override void Render(GuiElementMap map, float dt) { map.TranslateWorldPosToViewPos(waypoint.Position, ref viewPos); float x = (float)(map.Bounds.renderX + viewPos.X); float y = (float)(map.Bounds.renderY + viewPos.Y); ICoreClientAPI api = map.Api; IShaderProgram prog = api.Render.GetEngineShader(EnumShaderProgram.Gui); prog.Uniform("rgbaIn", color); prog.Uniform("extraGlow", 0); prog.Uniform("applyColor", 0); prog.Uniform("noTexture", 0f); prog.BindTexture2D("tex2d", Texture.TextureId, 0); api.Render.GlPushMatrix(); api.Render.GlTranslate(x, y, 60); api.Render.GlScale(Texture.Width, Texture.Height, 0); api.Render.GlScale(0.5f, 0.5f, 0); prog.UniformMatrix("projectionMatrix", api.Render.CurrentProjectionMatrix); prog.UniformMatrix("modelViewMatrix", api.Render.CurrentModelviewMatrix); api.Render.RenderMesh(quadModel); api.Render.GlPopMatrix(); }
public override void Render(GuiElementMap map, float dt) { map.TranslateWorldPosToViewPos(entity.Pos.XYZ, ref viewPos); float x = (float)(map.Bounds.renderX + viewPos.X); float y = (float)(map.Bounds.renderY + viewPos.Y); //api.Render.GlToggleBlend(true, EnumBlendMode.PremultipliedAlpha); ICoreClientAPI api = map.Api; IShaderProgram prog = api.Render.GetEngineShader(EnumShaderProgram.Gui); prog.Uniform("rgbaIn", ColorUtil.WhiteArgbVec); prog.Uniform("extraGlow", 0); prog.Uniform("applyColor", 0); prog.Uniform("noTexture", 0f); prog.BindTexture2D("tex2d", Texture.TextureId, 0); api.Render.GlPushMatrix(); api.Render.GlTranslate(x, y, 60); api.Render.GlScale(Texture.Width, Texture.Height, 0); api.Render.GlScale(0.5f, 0.5f, 0); //api.Render.GlTranslate(1f, 1f, 0); api.Render.GlRotate(-entity.Pos.Yaw * GameMath.RAD2DEG + 90, 0, 0, 1); prog.UniformMatrix("projectionMatrix", api.Render.CurrentProjectionMatrix); prog.UniformMatrix("modelViewMatrix", api.Render.CurrentModelviewMatrix); api.Render.RenderMesh(quadModel); api.Render.GlPopMatrix(); }
public override void OnMouseUpOnElement(MouseEvent args, GuiElementMap mapElem) { if (args.Button == EnumMouseButton.Right) { Vec2f viewPos = new Vec2f(); mapElem.TranslateWorldPosToViewPos(waypoint.Position, ref viewPos); double x = viewPos.X + mapElem.Bounds.renderX; double y = viewPos.Y + mapElem.Bounds.renderY; if (waypoint.Pinned) { x = (float)GameMath.Clamp(x, mapElem.Bounds.renderX + 2, mapElem.Bounds.renderX + mapElem.Bounds.InnerWidth - 2); y = (float)GameMath.Clamp(y, mapElem.Bounds.renderY + 2, mapElem.Bounds.renderY + mapElem.Bounds.InnerHeight - 2); } double dX = args.X - x; double dY = args.Y - y; if (Math.Abs(dX) < 7 && Math.Abs(dY) < 7) { if (editWpDlg != null) { editWpDlg.TryClose(); editWpDlg.Dispose(); } editWpDlg = new GuiDialogEditWayPoint(capi, waypoint, waypointIndex); editWpDlg.TryOpen(); args.Handled = true; } } }
public override void Render(GuiElementMap map, float dt) { //if (Texture.Disposed) throw new Exception("Fatal. Trying to render a disposed texture"); if (quadModel == null || quadModel.Disposed) { throw new Exception("Fatal. Trying to render a disposed meshref"); } map.TranslateWorldPosToViewPos(waypoint.Position, ref viewPos); float x = (float)(map.Bounds.renderX + viewPos.X); float y = (float)(map.Bounds.renderY + viewPos.Y); if (waypoint.Pinned) { map.Api.Render.PushScissor(null); x = (float)GameMath.Clamp(x, map.Bounds.renderX + 2, map.Bounds.renderX + map.Bounds.InnerWidth - 2); y = (float)GameMath.Clamp(y, map.Bounds.renderY + 2, map.Bounds.renderY + map.Bounds.InnerHeight - 2); } ICoreClientAPI api = map.Api; IShaderProgram prog = api.Render.GetEngineShader(EnumShaderProgram.Gui); prog.Uniform("rgbaIn", color); prog.Uniform("extraGlow", 0); prog.Uniform("applyColor", 0); prog.Uniform("noTexture", 0f); LoadedTexture tex; float hover = (mouseOver ? 6 : 0) - 1.5f * Math.Max(1, 1 / map.ZoomLevel); if (wpLayer.texturesByIcon.TryGetValue(waypoint.Icon, out tex)) { prog.BindTexture2D("tex2d", wpLayer.texturesByIcon[waypoint.Icon].TextureId, 0); mvMat .Set(api.Render.CurrentModelviewMatrix) .Translate(x, y, 60) .Scale(tex.Width + hover, tex.Height + hover, 0) .Scale(0.5f, 0.5f, 0) ; prog.UniformMatrix("projectionMatrix", api.Render.CurrentProjectionMatrix); prog.UniformMatrix("modelViewMatrix", mvMat.Values); api.Render.RenderMesh(quadModel); } if (waypoint.Pinned) { map.Api.Render.PopScissor(); } }
public override void Render(GuiElementMap map, float dt) { map.TranslateWorldPosToViewPos(waypoint.Position, ref viewPos); if (waypoint.Pinned) { map.Api.Render.PushScissor(null); map.ClampButPreserveAngle(ref viewPos, 2); } else { if (viewPos.X < -10 || viewPos.Y < -10 || viewPos.X > map.Bounds.OuterWidth + 10 || viewPos.Y > map.Bounds.OuterHeight + 10) { return; } } float x = (float)(map.Bounds.renderX + viewPos.X); float y = (float)(map.Bounds.renderY + viewPos.Y); ICoreClientAPI api = map.Api; IShaderProgram prog = api.Render.GetEngineShader(EnumShaderProgram.Gui); prog.Uniform("rgbaIn", color); prog.Uniform("extraGlow", 0); prog.Uniform("applyColor", 0); prog.Uniform("noTexture", 0f); LoadedTexture tex; float hover = (mouseOver ? 6 : 0) - 1.5f * Math.Max(1, 1 / map.ZoomLevel); if (wpLayer.texturesByIcon.TryGetValue(waypoint.Icon, out tex)) { prog.BindTexture2D("tex2d", wpLayer.texturesByIcon[waypoint.Icon].TextureId, 0); mvMat .Set(api.Render.CurrentModelviewMatrix) .Translate(x, y, 60) .Scale(tex.Width + hover, tex.Height + hover, 0) .Scale(0.5f, 0.5f, 0) ; prog.UniformMatrix("projectionMatrix", api.Render.CurrentProjectionMatrix); prog.UniformMatrix("modelViewMatrix", mvMat.Values); api.Render.RenderMesh(wpLayer.quadModel); } if (waypoint.Pinned) { map.Api.Render.PopScissor(); } }
public override void Render(GuiElementMap map, float dt) { map.TranslateWorldPosToViewPos(worldPos, ref viewPos); capi.Render.Render2DTexture( Texture.TextureId, (int)(map.Bounds.renderX + viewPos.X), (int)(map.Bounds.renderY + viewPos.Y), (int)(Texture.Width * map.ZoomLevel), (int)(Texture.Height * map.ZoomLevel), renderZ ); }
public override void OnMouseMove(MouseEvent args, GuiElementMap mapElem, StringBuilder hoverText) { Vec2f viewPos = new Vec2f(); mapElem.TranslateWorldPosToViewPos(waypoint.Position, ref viewPos); double mouseX = args.X - mapElem.Bounds.renderX; double mouseY = args.Y - mapElem.Bounds.renderY; if (Math.Abs(viewPos.X - mouseX) < 5 && Math.Abs(viewPos.Y - mouseY) < 5) { hoverText.Append("Waypoint '" + waypoint.Title + "'"); } }
public override void OnMouseMove(MouseEvent args, GuiElementMap mapElem, StringBuilder hoverText) { Vec2f viewPos = new Vec2f(); mapElem.TranslateWorldPosToViewPos(waypoint.Position, ref viewPos); double mouseX = args.X - mapElem.Bounds.renderX; double mouseY = args.Y - mapElem.Bounds.renderY; if (mouseOver = Math.Abs(viewPos.X - mouseX) < 8 && Math.Abs(viewPos.Y - mouseY) < 8) { string text = Lang.Get("Waypoint {0}", waypointIndex) + "\n" + waypoint.Title; hoverText.AppendLine(text); } }
public override void Render(GuiElementMap map, float dt) { if ((entity as EntityPlayer)?.Player?.WorldData?.CurrentGameMode == EnumGameMode.Spectator == true) { return; } map.TranslateWorldPosToViewPos(entity.Pos.XYZ, ref viewPos); float x = (float)(map.Bounds.renderX + viewPos.X); float y = (float)(map.Bounds.renderY + viewPos.Y); ICoreClientAPI api = map.Api; if (Texture.Disposed) { throw new Exception("Fatal. Trying to render a disposed texture"); } if (quadModel.Disposed) { throw new Exception("Fatal. Trying to render a disposed texture"); } capi.Render.GlToggleBlend(true); IShaderProgram prog = api.Render.GetEngineShader(EnumShaderProgram.Gui); prog.Uniform("rgbaIn", ColorUtil.WhiteArgbVec); prog.Uniform("extraGlow", 0); prog.Uniform("applyColor", 0); prog.Uniform("noTexture", 0f); prog.BindTexture2D("tex2d", Texture.TextureId, 0); mvMat .Set(api.Render.CurrentModelviewMatrix) .Translate(x, y, 60) .Scale(Texture.Width, Texture.Height, 0) .Scale(0.5f, 0.5f, 0) .RotateZ(-entity.Pos.Yaw + 90 * GameMath.DEG2RAD) ; prog.UniformMatrix("projectionMatrix", api.Render.CurrentProjectionMatrix); prog.UniformMatrix("modelViewMatrix", mvMat.Values); api.Render.RenderMesh(quadModel); }
public override void OnMouseMove(MouseEvent args, GuiElementMap mapElem, StringBuilder hoverText) { Vec2f viewPos = new Vec2f(); mapElem.TranslateWorldPosToViewPos(entity.Pos.XYZ, ref viewPos); double mouseX = args.X - mapElem.Bounds.renderX; double mouseY = args.Y - mapElem.Bounds.renderY; if (Math.Abs(viewPos.X - mouseX) < 5 && Math.Abs(viewPos.Y - mouseY) < 5) { EntityPlayer eplr = entity as EntityPlayer; if (eplr != null) { hoverText.AppendLine("Player " + capi.World.PlayerByUid(eplr.PlayerUID).PlayerName); } } }
public override void Render(GuiElementMap map, float dt) { map.TranslateWorldPosToViewPos(worldPos, ref viewPos); if (Texture.Disposed) { throw new Exception("Fatal. Trying to render a disposed texture"); } capi.Render.Render2DTexture( Texture.TextureId, (int)(map.Bounds.renderX + viewPos.X), (int)(map.Bounds.renderY + viewPos.Y), (int)(Texture.Width * map.ZoomLevel), (int)(Texture.Height * map.ZoomLevel), renderZ ); }
public override void OnMouseUpOnElement(MouseEvent args, GuiElementMap mapElem) { if (args.Button == EnumMouseButton.Right) { Vec2f viewPos = new Vec2f(); mapElem.TranslateWorldPosToViewPos(waypoint.Position, ref viewPos); double x = viewPos.X + mapElem.Bounds.renderX; double y = viewPos.Y + mapElem.Bounds.renderY; if (waypoint.Pinned) { mapElem.ClampButPreserveAngle(ref viewPos, 2); x = viewPos.X + mapElem.Bounds.renderX; y = viewPos.Y + mapElem.Bounds.renderY; x = (float)GameMath.Clamp(x, mapElem.Bounds.renderX + 2, mapElem.Bounds.renderX + mapElem.Bounds.InnerWidth - 2); y = (float)GameMath.Clamp(y, mapElem.Bounds.renderY + 2, mapElem.Bounds.renderY + mapElem.Bounds.InnerHeight - 2); } double dX = args.X - x; double dY = args.Y - y; if (Math.Abs(dX) < 7 && Math.Abs(dY) < 7) { if (editWpDlg != null) { editWpDlg.TryClose(); editWpDlg.Dispose(); } editWpDlg = new GuiDialogEditWayPoint(capi, waypoint, waypointIndex); editWpDlg.TryOpen(); editWpDlg.OnClosed += () => capi.Gui.RequestFocus(capi.ModLoader.GetModSystem <WorldMapManager>().worldMapDlg); args.Handled = true; } } }
public override void OnMouseUpOnElement(MouseEvent args, GuiElementMap mapElem) { if (args.Button == EnumMouseButton.Right) { Vec2f viewPos = new Vec2f(); mapElem.TranslateWorldPosToViewPos(waypoint.Position, ref viewPos); double mouseX = args.X - mapElem.Bounds.renderX; double mouseY = args.Y - mapElem.Bounds.renderY; if (Math.Abs(viewPos.X - mouseX) < 5 && Math.Abs(viewPos.Y - mouseY) < 5) { if (editWpDlg != null) { editWpDlg.TryClose(); editWpDlg.Dispose(); } editWpDlg = new GuiDialogEditWayPoint(capi, waypoint, waypointIndex); editWpDlg.TryOpen(); args.Handled = true; } } }