mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-06-02 23:54:14 -05:00
Further refactoring
Move System.Drawing usage out of Core to WinForms, as System.Drawing is not in .NET Core/Standard. Simple methods to return resource name strings have been added instead.
This commit is contained in:
parent
1d1179465a
commit
db5e084ef9
|
|
@ -26,7 +26,7 @@ public Main()
|
|||
L_UpdateAvailable.Click += (sender, e) => Process.Start(ThreadPath);
|
||||
new Thread(() =>
|
||||
{
|
||||
string data = Util.getStringFromURL(VersionPath);
|
||||
string data = NetUtil.getStringFromURL(VersionPath);
|
||||
if (data == null)
|
||||
return;
|
||||
try
|
||||
|
|
@ -215,7 +215,7 @@ public Main()
|
|||
private static Image colorizedcolor;
|
||||
private static int colorizedslot;
|
||||
public static bool HaX;
|
||||
private static readonly Image mixedHighlight = Util.ChangeOpacity(Core.Properties.Resources.slotSet, 0.5);
|
||||
private static readonly Image mixedHighlight = ImageUtil.ChangeOpacity(Core.Properties.Resources.slotSet, 0.5);
|
||||
private static readonly string[] main_langlist =
|
||||
{
|
||||
"日本語", // JPN
|
||||
|
|
@ -1491,7 +1491,7 @@ public void populateFields(PKM pk, bool focus = true)
|
|||
Label_Friendship.Visible = !CHK_IsEgg.Checked && SAV.Generation > 1;
|
||||
|
||||
// Set the Preview Box
|
||||
dragout.Image = pk.Sprite;
|
||||
dragout.Image = pk.Sprite();
|
||||
setMarkings();
|
||||
updateLegality();
|
||||
}
|
||||
|
|
@ -1577,27 +1577,27 @@ private void setMarkings()
|
|||
{
|
||||
PictureBox[] pba = { PB_Mark1, PB_Mark2, PB_Mark3, PB_Mark4, PB_Mark5, PB_Mark6 };
|
||||
for (int i = 0; i < pba.Length; i++)
|
||||
pba[i].Image = Util.ChangeOpacity(pba[i].InitialImage, pkm.Markings[i] != 0 ? 1 : 0.1);
|
||||
pba[i].Image = ImageUtil.ChangeOpacity(pba[i].InitialImage, pkm.Markings[i] != 0 ? 1 : 0.1);
|
||||
|
||||
PB_MarkShiny.Image = Util.ChangeOpacity(PB_MarkShiny.InitialImage, !BTN_Shinytize.Enabled ? 1 : 0.1);
|
||||
PB_MarkCured.Image = Util.ChangeOpacity(PB_MarkCured.InitialImage, CHK_Cured.Checked ? 1 : 0.1);
|
||||
PB_MarkShiny.Image = ImageUtil.ChangeOpacity(PB_MarkShiny.InitialImage, !BTN_Shinytize.Enabled ? 1 : 0.1);
|
||||
PB_MarkCured.Image = ImageUtil.ChangeOpacity(PB_MarkCured.InitialImage, CHK_Cured.Checked ? 1 : 0.1);
|
||||
|
||||
PB_MarkPentagon.Image = Util.ChangeOpacity(PB_MarkPentagon.InitialImage, pkm.Gen6 ? 1 : 0.1);
|
||||
PB_MarkPentagon.Image = ImageUtil.ChangeOpacity(PB_MarkPentagon.InitialImage, pkm.Gen6 ? 1 : 0.1);
|
||||
|
||||
// Gen7 Markings
|
||||
if (pkm.Format != 7)
|
||||
return;
|
||||
|
||||
PB_MarkAlola.Image = Util.ChangeOpacity(PB_MarkAlola.InitialImage, pkm.Gen7 ? 1 : 0.1);
|
||||
PB_MarkAlola.Image = ImageUtil.ChangeOpacity(PB_MarkAlola.InitialImage, pkm.Gen7 ? 1 : 0.1);
|
||||
for (int i = 0; i < pba.Length; i++)
|
||||
{
|
||||
switch (pkm.Markings[i])
|
||||
{
|
||||
case 1:
|
||||
pba[i].Image = Util.ChangeAllColorTo(pba[i].Image, Color.FromArgb(000, 191, 255));
|
||||
pba[i].Image = ImageUtil.ChangeAllColorTo(pba[i].Image, Color.FromArgb(000, 191, 255));
|
||||
break;
|
||||
case 2:
|
||||
pba[i].Image = Util.ChangeAllColorTo(pba[i].Image, Color.FromArgb(255, 117, 179));
|
||||
pba[i].Image = ImageUtil.ChangeAllColorTo(pba[i].Image, Color.FromArgb(255, 117, 179));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1642,7 +1642,7 @@ private void clickQR(object sender, EventArgs e)
|
|||
switch (pkx.Format)
|
||||
{
|
||||
case 7:
|
||||
qr = QR7.GenerateQRCode7((PK7) pkx);
|
||||
qr = QR.GenerateQRCode7((PK7) pkx);
|
||||
break;
|
||||
default:
|
||||
qr = QR.getQRImage(ekx, pkx.Format == 6 ? server : "null/#");
|
||||
|
|
@ -1947,7 +1947,7 @@ private void clickMetLocation(object sender, EventArgs e)
|
|||
private bool changingFields;
|
||||
private void updateBall(object sender, EventArgs e)
|
||||
{
|
||||
PB_Ball.Image = PKX.getBallSprite(WinFormsUtil.getIndex(CB_Ball));
|
||||
PB_Ball.Image = PKMUtil.getBallSprite(WinFormsUtil.getIndex(CB_Ball));
|
||||
}
|
||||
private void updateEXPLevel(object sender, EventArgs e)
|
||||
{
|
||||
|
|
@ -3622,7 +3622,7 @@ public void setPKXBoxes()
|
|||
{
|
||||
int boxoffset = SAV.getBoxOffset(CB_BoxSelect.SelectedIndex);
|
||||
int boxbgval = SAV.getBoxWallpaper(CB_BoxSelect.SelectedIndex);
|
||||
PAN_Box.BackgroundImage = BoxWallpaper.getWallpaper(SAV, boxbgval);
|
||||
PAN_Box.BackgroundImage = SAV.getWallpaper(boxbgval);
|
||||
for (int i = 0; i < 30; i++)
|
||||
{
|
||||
if (i < SAV.BoxSlotCount)
|
||||
|
|
@ -3671,7 +3671,7 @@ public void setPKXBoxes()
|
|||
else
|
||||
{
|
||||
L_SlotOccupied[i].Text = $"{i + 1}: ✘";
|
||||
SlotPictureBoxes[i + 42].Image = Util.ChangeOpacity(SlotPictureBoxes[i + 42].Image, 0.6);
|
||||
SlotPictureBoxes[i + 42].Image = ImageUtil.ChangeOpacity(SlotPictureBoxes[i + 42].Image, 0.6);
|
||||
}
|
||||
}
|
||||
bool? egg = SAV.getDaycareHasEgg(SAV.DaycareIndex);
|
||||
|
|
@ -3736,14 +3736,14 @@ private void getQuickFiller(PictureBox pb, PKM pk = null)
|
|||
|
||||
if (pb == dragout) mnuLQR.Enabled = pk.Species != 0; // Species
|
||||
|
||||
var sprite = pk.Species != 0 ? pk.Sprite : null;
|
||||
var sprite = pk.Species != 0 ? pk.Sprite() : null;
|
||||
int slot = getSlot(pb);
|
||||
bool locked = slot < 30 && SAV.getIsSlotLocked(CB_BoxSelect.SelectedIndex, slot);
|
||||
bool team = slot < 30 && SAV.getIsTeamSet(CB_BoxSelect.SelectedIndex, slot);
|
||||
if (locked)
|
||||
sprite = Util.LayerImage(sprite, Core.Properties.Resources.locked, 26, 0, 1);
|
||||
sprite = ImageUtil.LayerImage(sprite, Core.Properties.Resources.locked, 26, 0, 1);
|
||||
else if (team)
|
||||
sprite = Util.LayerImage(sprite, Core.Properties.Resources.team, 21, 0, 1);
|
||||
sprite = ImageUtil.LayerImage(sprite, Core.Properties.Resources.team, 21, 0, 1);
|
||||
pb.Image = sprite;
|
||||
if (pb.BackColor == Color.Red)
|
||||
pb.BackColor = Color.Transparent;
|
||||
|
|
@ -3769,14 +3769,14 @@ private void getSlotFiller(int offset, PictureBox pb)
|
|||
}
|
||||
// Something stored in slot. Only display if species is valid.
|
||||
|
||||
var sprite = p.Species != 0 ? p.Sprite : null;
|
||||
var sprite = p.Species != 0 ? p.Sprite() : null;
|
||||
int slot = getSlot(pb);
|
||||
bool locked = slot < 30 && SAV.getIsSlotLocked(CB_BoxSelect.SelectedIndex, slot);
|
||||
bool team = slot < 30 && SAV.getIsTeamSet(CB_BoxSelect.SelectedIndex, slot);
|
||||
if (locked)
|
||||
sprite = Util.LayerImage(sprite, Core.Properties.Resources.locked, 26, 0, 1);
|
||||
sprite = ImageUtil.LayerImage(sprite, Core.Properties.Resources.locked, 26, 0, 1);
|
||||
else if (team)
|
||||
sprite = Util.LayerImage(sprite, Core.Properties.Resources.team, 21, 0, 1);
|
||||
sprite = ImageUtil.LayerImage(sprite, Core.Properties.Resources.team, 21, 0, 1);
|
||||
pb.Image = sprite;
|
||||
pb.BackColor = Color.Transparent;
|
||||
pb.Visible = true;
|
||||
|
|
|
|||
122
PKHeX.WinForms/Misc/QR.Designer.cs
generated
122
PKHeX.WinForms/Misc/QR.Designer.cs
generated
|
|
@ -1,11 +1,17 @@
|
|||
namespace PKHeX.WinForms
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using PKHeX.Core;
|
||||
|
||||
namespace PKHeX.WinForms
|
||||
{
|
||||
partial class QR
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
private IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
|
|
@ -28,47 +34,47 @@ protected override void Dispose(bool disposing)
|
|||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(QR));
|
||||
this.PB_QR = new System.Windows.Forms.PictureBox();
|
||||
this.FontLabel = new System.Windows.Forms.Label();
|
||||
this.NUD_Box = new System.Windows.Forms.NumericUpDown();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.NUD_Slot = new System.Windows.Forms.NumericUpDown();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.NUD_Copies = new System.Windows.Forms.NumericUpDown();
|
||||
this.B_Refresh = new System.Windows.Forms.Button();
|
||||
((System.ComponentModel.ISupportInitialize)(this.PB_QR)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUD_Box)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUD_Slot)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUD_Copies)).BeginInit();
|
||||
ComponentResourceManager resources = new ComponentResourceManager(typeof(QR));
|
||||
this.PB_QR = new PictureBox();
|
||||
this.FontLabel = new Label();
|
||||
this.NUD_Box = new NumericUpDown();
|
||||
this.label1 = new Label();
|
||||
this.label2 = new Label();
|
||||
this.NUD_Slot = new NumericUpDown();
|
||||
this.label3 = new Label();
|
||||
this.NUD_Copies = new NumericUpDown();
|
||||
this.B_Refresh = new Button();
|
||||
((ISupportInitialize)(this.PB_QR)).BeginInit();
|
||||
((ISupportInitialize)(this.NUD_Box)).BeginInit();
|
||||
((ISupportInitialize)(this.NUD_Slot)).BeginInit();
|
||||
((ISupportInitialize)(this.NUD_Copies)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// PB_QR
|
||||
//
|
||||
this.PB_QR.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.PB_QR.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
||||
this.PB_QR.Location = new System.Drawing.Point(2, 1);
|
||||
this.PB_QR.Anchor = ((AnchorStyles)(((AnchorStyles.Top | AnchorStyles.Left)
|
||||
| AnchorStyles.Right)));
|
||||
this.PB_QR.BackgroundImageLayout = ImageLayout.None;
|
||||
this.PB_QR.Location = new Point(2, 1);
|
||||
this.PB_QR.Name = "PB_QR";
|
||||
this.PB_QR.Size = new System.Drawing.Size(405, 455);
|
||||
this.PB_QR.Size = new Size(405, 455);
|
||||
this.PB_QR.TabIndex = 0;
|
||||
this.PB_QR.TabStop = false;
|
||||
this.PB_QR.Click += new System.EventHandler(this.PB_QR_Click);
|
||||
this.PB_QR.Click += new EventHandler(this.PB_QR_Click);
|
||||
//
|
||||
// FontLabel
|
||||
//
|
||||
this.FontLabel.AutoSize = true;
|
||||
this.FontLabel.Location = new System.Drawing.Point(388, 393);
|
||||
this.FontLabel.Location = new Point(388, 393);
|
||||
this.FontLabel.Name = "FontLabel";
|
||||
this.FontLabel.Size = new System.Drawing.Size(19, 13);
|
||||
this.FontLabel.Size = new Size(19, 13);
|
||||
this.FontLabel.TabIndex = 1;
|
||||
this.FontLabel.Text = "<3";
|
||||
this.FontLabel.Visible = false;
|
||||
//
|
||||
// NUD_Box
|
||||
//
|
||||
this.NUD_Box.Location = new System.Drawing.Point(38, 465);
|
||||
this.NUD_Box.Location = new Point(38, 465);
|
||||
this.NUD_Box.Maximum = new decimal(new int[] {
|
||||
32,
|
||||
0,
|
||||
|
|
@ -80,7 +86,7 @@ private void InitializeComponent()
|
|||
0,
|
||||
0});
|
||||
this.NUD_Box.Name = "NUD_Box";
|
||||
this.NUD_Box.Size = new System.Drawing.Size(61, 20);
|
||||
this.NUD_Box.Size = new Size(61, 20);
|
||||
this.NUD_Box.TabIndex = 2;
|
||||
this.NUD_Box.Value = new decimal(new int[] {
|
||||
1,
|
||||
|
|
@ -91,24 +97,24 @@ private void InitializeComponent()
|
|||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(4, 467);
|
||||
this.label1.Location = new Point(4, 467);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(28, 13);
|
||||
this.label1.Size = new Size(28, 13);
|
||||
this.label1.TabIndex = 3;
|
||||
this.label1.Text = "Box:";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(105, 467);
|
||||
this.label2.Location = new Point(105, 467);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(28, 13);
|
||||
this.label2.Size = new Size(28, 13);
|
||||
this.label2.TabIndex = 5;
|
||||
this.label2.Text = "Slot:";
|
||||
//
|
||||
// NUD_Slot
|
||||
//
|
||||
this.NUD_Slot.Location = new System.Drawing.Point(139, 465);
|
||||
this.NUD_Slot.Location = new Point(139, 465);
|
||||
this.NUD_Slot.Maximum = new decimal(new int[] {
|
||||
30,
|
||||
0,
|
||||
|
|
@ -120,7 +126,7 @@ private void InitializeComponent()
|
|||
0,
|
||||
0});
|
||||
this.NUD_Slot.Name = "NUD_Slot";
|
||||
this.NUD_Slot.Size = new System.Drawing.Size(61, 20);
|
||||
this.NUD_Slot.Size = new Size(61, 20);
|
||||
this.NUD_Slot.TabIndex = 4;
|
||||
this.NUD_Slot.Value = new decimal(new int[] {
|
||||
1,
|
||||
|
|
@ -131,15 +137,15 @@ private void InitializeComponent()
|
|||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(211, 467);
|
||||
this.label3.Location = new Point(211, 467);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(42, 13);
|
||||
this.label3.Size = new Size(42, 13);
|
||||
this.label3.TabIndex = 7;
|
||||
this.label3.Text = "Copies:";
|
||||
//
|
||||
// NUD_Copies
|
||||
//
|
||||
this.NUD_Copies.Location = new System.Drawing.Point(259, 465);
|
||||
this.NUD_Copies.Location = new Point(259, 465);
|
||||
this.NUD_Copies.Maximum = new decimal(new int[] {
|
||||
960,
|
||||
0,
|
||||
|
|
@ -151,7 +157,7 @@ private void InitializeComponent()
|
|||
0,
|
||||
0});
|
||||
this.NUD_Copies.Name = "NUD_Copies";
|
||||
this.NUD_Copies.Size = new System.Drawing.Size(52, 20);
|
||||
this.NUD_Copies.Size = new Size(52, 20);
|
||||
this.NUD_Copies.TabIndex = 6;
|
||||
this.NUD_Copies.Value = new decimal(new int[] {
|
||||
1,
|
||||
|
|
@ -161,19 +167,19 @@ private void InitializeComponent()
|
|||
//
|
||||
// B_Refresh
|
||||
//
|
||||
this.B_Refresh.Location = new System.Drawing.Point(317, 464);
|
||||
this.B_Refresh.Location = new Point(317, 464);
|
||||
this.B_Refresh.Name = "B_Refresh";
|
||||
this.B_Refresh.Size = new System.Drawing.Size(80, 23);
|
||||
this.B_Refresh.Size = new Size(80, 23);
|
||||
this.B_Refresh.TabIndex = 8;
|
||||
this.B_Refresh.Text = "Refresh";
|
||||
this.B_Refresh.UseVisualStyleBackColor = true;
|
||||
this.B_Refresh.Click += new System.EventHandler(this.updateBoxSlotCopies);
|
||||
this.B_Refresh.Click += new EventHandler(this.updateBoxSlotCopies);
|
||||
//
|
||||
// QR
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(409, 407);
|
||||
this.AutoScaleDimensions = new SizeF(6F, 13F);
|
||||
this.AutoScaleMode = AutoScaleMode.Font;
|
||||
this.ClientSize = new Size(409, 407);
|
||||
this.Controls.Add(this.B_Refresh);
|
||||
this.Controls.Add(this.label3);
|
||||
this.Controls.Add(this.NUD_Copies);
|
||||
|
|
@ -183,17 +189,17 @@ private void InitializeComponent()
|
|||
this.Controls.Add(this.NUD_Box);
|
||||
this.Controls.Add(this.FontLabel);
|
||||
this.Controls.Add(this.PB_QR);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.FormBorderStyle = FormBorderStyle.FixedSingle;
|
||||
this.Icon = ((Icon)(resources.GetObject("$this.Icon")));
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "QR";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.StartPosition = FormStartPosition.CenterParent;
|
||||
this.Text = "PKHeX QR Code (Click QR to Copy Image)";
|
||||
((System.ComponentModel.ISupportInitialize)(this.PB_QR)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUD_Box)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUD_Slot)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUD_Copies)).EndInit();
|
||||
((ISupportInitialize)(this.PB_QR)).EndInit();
|
||||
((ISupportInitialize)(this.NUD_Box)).EndInit();
|
||||
((ISupportInitialize)(this.NUD_Slot)).EndInit();
|
||||
((ISupportInitialize)(this.NUD_Copies)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
|
|
@ -201,14 +207,14 @@ private void InitializeComponent()
|
|||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.PictureBox PB_QR;
|
||||
private System.Windows.Forms.Label FontLabel;
|
||||
private System.Windows.Forms.NumericUpDown NUD_Box;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.NumericUpDown NUD_Slot;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.NumericUpDown NUD_Copies;
|
||||
private System.Windows.Forms.Button B_Refresh;
|
||||
private PictureBox PB_QR;
|
||||
private Label FontLabel;
|
||||
private NumericUpDown NUD_Box;
|
||||
private Label label1;
|
||||
private Label label2;
|
||||
private NumericUpDown NUD_Slot;
|
||||
private Label label3;
|
||||
private NumericUpDown NUD_Copies;
|
||||
private Button B_Refresh;
|
||||
}
|
||||
}
|
||||
|
|
@ -6,6 +6,7 @@
|
|||
using System.Web;
|
||||
using System.Windows.Forms;
|
||||
using PKHeX.Core;
|
||||
using QRCoder;
|
||||
|
||||
namespace PKHeX.WinForms
|
||||
{
|
||||
|
|
@ -56,7 +57,7 @@ private void RefreshImage()
|
|||
gfx.DrawImage(icon, preview.Width / 2 - icon.Width / 2, preview.Height / 2 - icon.Height / 2);
|
||||
}
|
||||
// Layer on Preview Image
|
||||
Image pic = Util.LayerImage(qr, preview, qr.Width / 2 - preview.Width / 2, qr.Height / 2 - preview.Height / 2, 1);
|
||||
Image pic = ImageUtil.LayerImage(qr, preview, qr.Width / 2 - preview.Width / 2, qr.Height / 2 - preview.Height / 2, 1);
|
||||
|
||||
Image newpic = new Bitmap(PB_QR.Width, PB_QR.Height);
|
||||
using (Graphics g = Graphics.FromImage(newpic))
|
||||
|
|
@ -91,7 +92,7 @@ internal static byte[] getQRData()
|
|||
string webURL = "http://api.qrserver.com/v1/read-qr-code/?fileurl=" + HttpUtility.UrlEncode(address);
|
||||
try
|
||||
{
|
||||
string data = Util.getStringFromURL(webURL);
|
||||
string data = NetUtil.getStringFromURL(webURL);
|
||||
if (data.Contains("could not find")) { WinFormsUtil.Alert("Reader could not find QR data in the image."); return null; }
|
||||
if (data.Contains("filetype not supported")) { WinFormsUtil.Alert("Input URL is not valid. Double check that it is an image (jpg/png).", address); return null; }
|
||||
// Quickly convert the json response to a data string
|
||||
|
|
@ -131,7 +132,7 @@ internal static Image getQRImage(byte[] data, string server)
|
|||
|
||||
try
|
||||
{
|
||||
return Util.getImageFromURL(webURL);
|
||||
return NetUtil.getImageFromURL(webURL);
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
|
@ -150,12 +151,29 @@ private void updateBoxSlotCopies(object sender, EventArgs e)
|
|||
var box = (int) NUD_Box.Value - 1;
|
||||
var slot = (int) NUD_Slot.Value - 1;
|
||||
var copies = (int) NUD_Copies.Value;
|
||||
var new_qr = QR7.GenerateQRCode7((PK7)pkm, box, slot, copies);
|
||||
var new_qr = GenerateQRCode7((PK7)pkm, box, slot, copies);
|
||||
qr = new_qr;
|
||||
SuspendLayout();
|
||||
extraText = $" (Box {box+1}, Slot {slot+1}, {copies} cop{(copies > 1 ? "ies" : "y")})";
|
||||
RefreshImage();
|
||||
ResumeLayout();
|
||||
}
|
||||
|
||||
// QR7 Utility
|
||||
public static Image GenerateQRCode7(PK7 pk7, int box = 0, int slot = 0, int num_copies = 1)
|
||||
{
|
||||
byte[] data = QR7.GenerateQRData(pk7, box, slot, num_copies);
|
||||
using (var generator = new QRCodeGenerator())
|
||||
using (var qr_data = generator.CreateQRCode(data))
|
||||
using (var qr_code = new QRCode(qr_data))
|
||||
return qr_code.GetGraphic(4);
|
||||
}
|
||||
public static Image GenerateQRCode(byte[] data, int ppm = 4)
|
||||
{
|
||||
using (var generator = new QRCodeGenerator())
|
||||
using (var qr_data = generator.CreateQRCode(data))
|
||||
using (var qr_code = new QRCode(qr_data))
|
||||
return qr_code.GetGraphic(ppm);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -337,6 +337,13 @@
|
|||
<Compile Include="Util\ConfigUtil.cs" />
|
||||
<Compile Include="Util\CyberGadgetUtil.cs" />
|
||||
<Compile Include="Util\FontUtil.cs" />
|
||||
<Compile Include="Util\ImageUtil.cs" />
|
||||
<Compile Include="Util\NetUtil.cs" />
|
||||
<Compile Include="Util\PKMUtil.cs" />
|
||||
<Compile Include="Util\QRCoder\AbstractQRCode.cs" />
|
||||
<Compile Include="Util\QRCoder\QRCode.cs" />
|
||||
<Compile Include="Util\QRCoder\QRCodeData.cs" />
|
||||
<Compile Include="Util\QRCoder\QRCodeGenerator.cs" />
|
||||
<Compile Include="Util\WinFormsUtil.cs" />
|
||||
<EmbeddedResource Include="MainWindow\Main.resx">
|
||||
<DependentUpon>Main.cs</DependentUpon>
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ private void popEntry(int index)
|
|||
|
||||
int r = 0;
|
||||
row.Cells[r++].Value = s.ToString("000") + (f > 0 ? "-"+f.ToString("00") :"");
|
||||
row.Cells[r++].Value = PKX.getSprite(s, f, 0, 0, false, false, Main.SAV.Generation);
|
||||
row.Cells[r++].Value = PKMUtil.getSprite(s, f, 0, 0, false, false, Main.SAV.Generation);
|
||||
row.Cells[r++].Value = species[index];
|
||||
row.Cells[r++].Value = s > 721 || Legal.PastGenAlolanNatives.Contains(s);
|
||||
row.Cells[r].Style.BackColor = mapColor((int)((p.BST - 175) / 3f));
|
||||
|
|
|
|||
|
|
@ -551,7 +551,7 @@ private void FillPKXBoxes(int start)
|
|||
}
|
||||
PKM[] data = Results.Skip(start * RES_MIN).Take(RES_MAX).ToArray();
|
||||
for (int i = 0; i < data.Length; i++)
|
||||
PKXBOXES[i].Image = data[i].Sprite;
|
||||
PKXBOXES[i].Image = data[i].Sprite();
|
||||
for (int i = data.Length; i < RES_MAX; i++)
|
||||
PKXBOXES[i].Image = null;
|
||||
|
||||
|
|
|
|||
|
|
@ -125,7 +125,7 @@ private void changeBoxBG(object sender, EventArgs e)
|
|||
if (!editing)
|
||||
SAV.setBoxWallpaper(LB_BoxSelect.SelectedIndex, CB_BG.SelectedIndex);
|
||||
|
||||
PAN_BG.BackgroundImage = BoxWallpaper.getWallpaper(SAV, CB_BG.SelectedIndex);
|
||||
PAN_BG.BackgroundImage = SAV.getWallpaper(CB_BG.SelectedIndex);
|
||||
}
|
||||
|
||||
private bool MoveItem(int direction)
|
||||
|
|
|
|||
|
|
@ -229,7 +229,7 @@ private void NUP_PartyIndex_ValueChanged(object sender, EventArgs e)
|
|||
CB_Form.SelectedIndex = (int)form;
|
||||
setGenderLabel((int)gender);
|
||||
updateNickname(sender, e);
|
||||
bpkx.Image = PKX.getSprite(species, (int)form, (int)gender, item, false, shiny == 1);
|
||||
bpkx.Image = PKMUtil.getSprite(species, (int)form, (int)gender, item, false, shiny == 1);
|
||||
editing = true;
|
||||
}
|
||||
private void Write_Entry(object sender, EventArgs e)
|
||||
|
|
@ -290,7 +290,7 @@ private void Write_Entry(object sender, EventArgs e)
|
|||
vnd |= rawvnd & 0x80000000;
|
||||
Array.Copy(BitConverter.GetBytes(vnd), 0, data, offset + 0x1B0, 4);
|
||||
|
||||
bpkx.Image = PKX.getSprite(WinFormsUtil.getIndex(CB_Species), CB_Form.SelectedIndex & 0x1F, PKX.getGender(Label_Gender.Text), WinFormsUtil.getIndex(CB_HeldItem), false, CHK_Shiny.Checked);
|
||||
bpkx.Image = PKMUtil.getSprite(WinFormsUtil.getIndex(CB_Species), CB_Form.SelectedIndex & 0x1F, PKX.getGender(Label_Gender.Text), WinFormsUtil.getIndex(CB_HeldItem), false, CHK_Shiny.Checked);
|
||||
displayEntry(null, null); // refresh text view
|
||||
}
|
||||
private void Validate_TextBoxes()
|
||||
|
|
@ -339,7 +339,7 @@ private void updateShiny(object sender, EventArgs e)
|
|||
{
|
||||
if (!editing)
|
||||
return; //Don't do writing until loaded
|
||||
bpkx.Image = PKX.getSprite(WinFormsUtil.getIndex(CB_Species), CB_Form.SelectedIndex & 0x1F, PKX.getGender(Label_Gender.Text), WinFormsUtil.getIndex(CB_HeldItem), false, CHK_Shiny.Checked);
|
||||
bpkx.Image = PKMUtil.getSprite(WinFormsUtil.getIndex(CB_Species), CB_Form.SelectedIndex & 0x1F, PKX.getGender(Label_Gender.Text), WinFormsUtil.getIndex(CB_HeldItem), false, CHK_Shiny.Checked);
|
||||
|
||||
Write_Entry(null, null);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -361,7 +361,7 @@ private void getBadges()
|
|||
};
|
||||
|
||||
for (int i = 0; i < 8; i++)
|
||||
pba[i].Image = Util.ChangeOpacity(bma[i], cba[i].Checked ? 1 : 0.1);
|
||||
pba[i].Image = ImageUtil.ChangeOpacity(bma[i], cba[i].Checked ? 1 : 0.1);
|
||||
}
|
||||
private void getTextBoxes()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ public void setPKXBoxes()
|
|||
{
|
||||
int boxoffset = SAV.getBoxOffset(CB_BoxSelect.SelectedIndex);
|
||||
int boxbgval = SAV.getBoxWallpaper(CB_BoxSelect.SelectedIndex);
|
||||
PAN_Box.BackgroundImage = BoxWallpaper.getWallpaper(SAV, boxbgval);
|
||||
PAN_Box.BackgroundImage = SAV.getWallpaper(boxbgval);
|
||||
|
||||
for (int i = 0; i < SAV.BoxSlotCount; i++)
|
||||
getSlotFiller(boxoffset + SAV.SIZE_STORED*i, SlotPictureBoxes[i]);
|
||||
|
|
@ -113,27 +113,27 @@ private void getSlotFiller(int offset, PictureBox pb)
|
|||
return;
|
||||
}
|
||||
// Something stored in slot. Only display if species is valid.
|
||||
var sprite = p.Species != 0 ? p.Sprite : null;
|
||||
var sprite = p.Species != 0 ? p.Sprite() : null;
|
||||
int slot = getSlot(pb);
|
||||
bool locked = slot < 30 && SAV.getIsSlotLocked(CB_BoxSelect.SelectedIndex, slot);
|
||||
bool team = slot < 30 && SAV.getIsTeamSet(CB_BoxSelect.SelectedIndex, slot);
|
||||
if (locked)
|
||||
sprite = Util.LayerImage(sprite, Core.Properties.Resources.locked, 26, 0, 1);
|
||||
sprite = ImageUtil.LayerImage(sprite, Core.Properties.Resources.locked, 26, 0, 1);
|
||||
else if (team)
|
||||
sprite = Util.LayerImage(sprite, Core.Properties.Resources.team, 21, 0, 1);
|
||||
sprite = ImageUtil.LayerImage(sprite, Core.Properties.Resources.team, 21, 0, 1);
|
||||
pb.Image = sprite;
|
||||
pb.BackColor = Color.Transparent;
|
||||
}
|
||||
private void getQuickFiller(PictureBox pb, PKM pk)
|
||||
{
|
||||
var sprite = pk.Species != 0 ? pk.Sprite : null;
|
||||
var sprite = pk.Species != 0 ? pk.Sprite() : null;
|
||||
int slot = getSlot(pb);
|
||||
bool locked = slot < 30 && SAV.getIsSlotLocked(CB_BoxSelect.SelectedIndex, slot);
|
||||
bool team = slot < 30 && SAV.getIsTeamSet(CB_BoxSelect.SelectedIndex, slot);
|
||||
if (locked)
|
||||
sprite = Util.LayerImage(sprite, Core.Properties.Resources.locked, 26, 0, 1);
|
||||
sprite = ImageUtil.LayerImage(sprite, Core.Properties.Resources.locked, 26, 0, 1);
|
||||
else if (team)
|
||||
sprite = Util.LayerImage(sprite, Core.Properties.Resources.team, 21, 0, 1);
|
||||
sprite = ImageUtil.LayerImage(sprite, Core.Properties.Resources.team, 21, 0, 1);
|
||||
pb.Image = sprite;
|
||||
if (pb.BackColor == Color.Red)
|
||||
pb.BackColor = Color.Transparent;
|
||||
|
|
|
|||
|
|
@ -473,14 +473,14 @@ internal static Image getSprite(MysteryGift gift)
|
|||
{
|
||||
Image img;
|
||||
if (gift.IsPokémon)
|
||||
img = PKX.getSprite(gift.convertToPKM(Main.SAV));
|
||||
img = PKMUtil.getSprite(gift.convertToPKM(Main.SAV));
|
||||
else if (gift.IsItem)
|
||||
img = (Image)(Core.Properties.Resources.ResourceManager.GetObject("item_" + gift.Item) ?? Core.Properties.Resources.unknown);
|
||||
else
|
||||
img = Core.Properties.Resources.unknown;
|
||||
|
||||
if (gift.GiftUsed)
|
||||
img = Util.LayerImage(new Bitmap(img.Width, img.Height), img, 0, 0, 0.3);
|
||||
img = ImageUtil.LayerImage(new Bitmap(img.Width, img.Height), img, 0, 0, 0.3);
|
||||
return img;
|
||||
}
|
||||
private static string getDescription(MysteryGift gift)
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ public class Preview
|
|||
{
|
||||
private readonly PKM pkm;
|
||||
public string Position => pkm.Identifier;
|
||||
public Image Sprite => pkm.Sprite;
|
||||
public Image Sprite => pkm.Sprite();
|
||||
public string Nickname => pkm.Nickname;
|
||||
public string Species => GameInfo.Strings.specieslist[pkm.Species];
|
||||
public string Nature => GameInfo.Strings.natures[pkm.Nature];
|
||||
|
|
@ -183,7 +183,7 @@ public void PopulateData(PKM[] Data)
|
|||
}
|
||||
private void dgData_Sorted(object sender, EventArgs e)
|
||||
{
|
||||
int height = PKX.getSprite(1, 0, 0, 0, false, false).Height + 1; // dummy sprite, max height of a row
|
||||
int height = PKMUtil.getSprite(1, 0, 0, 0, false, false).Height + 1; // dummy sprite, max height of a row
|
||||
for (int i = 0; i < dgData.Rows.Count; i++)
|
||||
dgData.Rows[i].Height = height;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
namespace PKHeX.Core
|
||||
{
|
||||
public static partial class Util
|
||||
public static class ImageUtil
|
||||
{
|
||||
// Image Layering/Blending Utility
|
||||
public static Bitmap LayerImage(Image baseLayer, Image overLayer, int x, int y, double trans)
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
namespace PKHeX.Core
|
||||
{
|
||||
public partial class Util
|
||||
public class NetUtil
|
||||
{
|
||||
public static string getStringFromURL(string webURL)
|
||||
{
|
||||
73
PKHeX.WinForms/Util/PKMUtil.cs
Normal file
73
PKHeX.WinForms/Util/PKMUtil.cs
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
using System.Drawing;
|
||||
using PKHeX.Core;
|
||||
using PKHeX.Core.Properties;
|
||||
|
||||
namespace PKHeX.WinForms
|
||||
{
|
||||
public static class PKMUtil
|
||||
{
|
||||
public static Image getBallSprite(int ball)
|
||||
{
|
||||
string str = PKX.getBallString(ball);
|
||||
return (Image)Resources.ResourceManager.GetObject(str) ?? Resources._ball4; // Poké Ball (default)
|
||||
}
|
||||
public static Image Sprite(this PKM pkm)
|
||||
{
|
||||
return getSprite(pkm);
|
||||
}
|
||||
public static Image getSprite(int species, int form, int gender, int item, bool isegg, bool shiny, int generation = -1)
|
||||
{
|
||||
if (species == 0)
|
||||
return (Image)Resources.ResourceManager.GetObject("_0");
|
||||
|
||||
string file = PKX.getSpriteString(species, form, gender, generation);
|
||||
|
||||
// Redrawing logic
|
||||
Image baseImage = (Image)Resources.ResourceManager.GetObject(file);
|
||||
if (baseImage == null)
|
||||
{
|
||||
if (species < 803)
|
||||
{
|
||||
baseImage = ImageUtil.LayerImage(
|
||||
(Image)Resources.ResourceManager.GetObject("_" + species),
|
||||
Resources.unknown,
|
||||
0, 0, .5);
|
||||
}
|
||||
else
|
||||
baseImage = Resources.unknown;
|
||||
}
|
||||
if (isegg)
|
||||
{
|
||||
// Start with a partially transparent species by layering the species with partial opacity onto a blank image.
|
||||
baseImage = ImageUtil.LayerImage((Image)Resources.ResourceManager.GetObject("_0"), baseImage, 0, 0, 0.33);
|
||||
// Add the egg layer over-top with full opacity.
|
||||
baseImage = ImageUtil.LayerImage(baseImage, (Image)Resources.ResourceManager.GetObject("egg"), 0, 0, 1);
|
||||
}
|
||||
if (shiny)
|
||||
{
|
||||
// Add shiny star to top left of image.
|
||||
baseImage = ImageUtil.LayerImage(baseImage, Resources.rare_icon, 0, 0, 0.7);
|
||||
}
|
||||
if (item > 0)
|
||||
{
|
||||
Image itemimg = (Image)Resources.ResourceManager.GetObject("item_" + item) ?? Resources.helditem;
|
||||
if (generation >= 2 && generation <= 4 && 328 <= item && item <= 419) // gen2/3/4 TM
|
||||
itemimg = Resources.item_tm;
|
||||
|
||||
// Redraw
|
||||
baseImage = ImageUtil.LayerImage(baseImage, itemimg, 22 + (15 - itemimg.Width) / 2, 15 + (15 - itemimg.Height), 1);
|
||||
}
|
||||
return baseImage;
|
||||
}
|
||||
public static Image getSprite(PKM pkm)
|
||||
{
|
||||
return getSprite(pkm.Species, pkm.AltForm, pkm.Gender, pkm.SpriteItem, pkm.IsEgg, pkm.IsShiny, pkm.Format);
|
||||
}
|
||||
|
||||
public static Image getWallpaper(this SaveFile SAV, int box)
|
||||
{
|
||||
string s = BoxWallpaper.getWallpaper(SAV, box);
|
||||
return (Bitmap)(Resources.ResourceManager.GetObject(s) ?? Resources.box_wp16xy);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -193,13 +193,7 @@
|
|||
<Compile Include="Util\CryptoUtil.cs" />
|
||||
<Compile Include="Util\DataUtil.cs" />
|
||||
<Compile Include="Util\DateUtil.cs" />
|
||||
<Compile Include="Util\ImageUtil.cs" />
|
||||
<Compile Include="Util\NetUtil.cs" />
|
||||
<Compile Include="Util\PathUtil.cs" />
|
||||
<Compile Include="Util\QRCoder\AbstractQRCode.cs" />
|
||||
<Compile Include="Util\QRCoder\QRCode.cs" />
|
||||
<Compile Include="Util\QRCoder\QRCodeData.cs" />
|
||||
<Compile Include="Util\QRCoder\QRCodeGenerator.cs" />
|
||||
<Compile Include="Util\RandUtil.cs" />
|
||||
<Compile Include="Util\ReflectUtil.cs" />
|
||||
<Compile Include="Util\StringUtil.cs" />
|
||||
|
|
|
|||
|
|
@ -294,7 +294,6 @@ public int GenNumber
|
|||
public int MarkHeart { get { return Markings[3]; } set { var marks = Markings; marks[3] = value; Markings = marks; } }
|
||||
public int MarkStar { get { return Markings[4]; } set { var marks = Markings; marks[4] = value; Markings = marks; } }
|
||||
public int MarkDiamond { get { return Markings[5]; } set { var marks = Markings; marks[5] = value; Markings = marks; } }
|
||||
public Image Sprite => PKX.getSprite(this);
|
||||
public string ShowdownText => ShowdownSet.getShowdownText(this);
|
||||
public string[] QRText => PKX.getQRText(this);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using PKHeX.Core.Properties;
|
||||
|
||||
namespace PKHeX.Core
|
||||
{
|
||||
|
|
@ -510,14 +508,9 @@ public static uint getRandomPID(int species, int cg, int origin, int nature, int
|
|||
}
|
||||
|
||||
// Data Requests
|
||||
public static Image getBallSprite(int ball)
|
||||
public static string getBallString(int ball) => "_ball" + ball;
|
||||
public static string getSpriteString(int species, int form, int gender, int generation)
|
||||
{
|
||||
return (Image)Resources.ResourceManager.GetObject("_ball" + ball) ?? Resources._ball4; // Poké Ball (default)
|
||||
}
|
||||
public static Image getSprite(int species, int form, int gender, int item, bool isegg, bool shiny, int generation = -1)
|
||||
{
|
||||
if (species == 0)
|
||||
return (Image)Resources.ResourceManager.GetObject("_0");
|
||||
if (new[] { 778, 664, 665, 414, 493, 773 }.Contains(species)) // Species who show their default sprite regardless of Form
|
||||
form = 0;
|
||||
|
||||
|
|
@ -530,46 +523,7 @@ public static Image getSprite(int species, int form, int gender, int item, bool
|
|||
if (species == 25 && form > 0 && generation >= 7) // Pikachu
|
||||
file += "c"; // Cap
|
||||
|
||||
// Redrawing logic
|
||||
Image baseImage = (Image)Resources.ResourceManager.GetObject(file);
|
||||
if (baseImage == null)
|
||||
{
|
||||
if (species < 803)
|
||||
{
|
||||
baseImage = Util.LayerImage(
|
||||
(Image)Resources.ResourceManager.GetObject("_" + species),
|
||||
Resources.unknown,
|
||||
0, 0, .5);
|
||||
}
|
||||
else
|
||||
baseImage = Resources.unknown;
|
||||
}
|
||||
if (isegg)
|
||||
{
|
||||
// Start with a partially transparent species by layering the species with partial opacity onto a blank image.
|
||||
baseImage = Util.LayerImage((Image)Resources.ResourceManager.GetObject("_0"), baseImage, 0, 0, 0.33);
|
||||
// Add the egg layer over-top with full opacity.
|
||||
baseImage = Util.LayerImage(baseImage, (Image)Resources.ResourceManager.GetObject("egg"), 0, 0, 1);
|
||||
}
|
||||
if (shiny)
|
||||
{
|
||||
// Add shiny star to top left of image.
|
||||
baseImage = Util.LayerImage(baseImage, Resources.rare_icon, 0, 0, 0.7);
|
||||
}
|
||||
if (item > 0)
|
||||
{
|
||||
Image itemimg = (Image)Resources.ResourceManager.GetObject("item_" + item) ?? Resources.helditem;
|
||||
if (generation >= 2 && generation <= 4 && 328 <= item && item <= 419) // gen2/3/4 TM
|
||||
itemimg = Resources.item_tm;
|
||||
|
||||
// Redraw
|
||||
baseImage = Util.LayerImage(baseImage, itemimg, 22 + (15 - itemimg.Width) / 2, 15 + (15 - itemimg.Height), 1);
|
||||
}
|
||||
return baseImage;
|
||||
}
|
||||
public static Image getSprite(PKM pkm)
|
||||
{
|
||||
return getSprite(pkm.Species, pkm.AltForm, pkm.Gender, pkm.SpriteItem, pkm.IsEgg, pkm.IsShiny, pkm.Format);
|
||||
return file;
|
||||
}
|
||||
|
||||
// Personal.dat
|
||||
|
|
|
|||
|
|
@ -1,10 +1,8 @@
|
|||
using System.Drawing;
|
||||
|
||||
namespace PKHeX.Core
|
||||
namespace PKHeX.Core
|
||||
{
|
||||
public static class BoxWallpaper
|
||||
{
|
||||
public static Bitmap getWallpaper(SaveFile SAV, int index)
|
||||
public static string getWallpaper(SaveFile SAV, int index)
|
||||
{
|
||||
index++;
|
||||
string s = "box_wp" + index.ToString("00");
|
||||
|
|
@ -33,7 +31,7 @@ public static Bitmap getWallpaper(SaveFile SAV, int index)
|
|||
s += "rs";
|
||||
break;
|
||||
}
|
||||
return (Bitmap)(Properties.Resources.ResourceManager.GetObject(s) ?? Properties.Resources.box_wp16xy);
|
||||
return s;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,6 @@
|
|||
using System;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
|
||||
using QRCoder;
|
||||
|
||||
namespace PKHeX.Core
|
||||
{
|
||||
// anatomy of a QR7:
|
||||
|
|
@ -17,8 +14,7 @@ namespace PKHeX.Core
|
|||
// u8 dex_data[0x60];
|
||||
// u16 crc16
|
||||
// sizeof(QR7) == 0x1A2
|
||||
|
||||
|
||||
|
||||
public static class QR7
|
||||
{
|
||||
private static bool hasGenderDifferences(int species)
|
||||
|
|
@ -62,7 +58,7 @@ private static byte[] GetRawQR(int species, int formnum, bool shiny, int gender)
|
|||
}
|
||||
return basedata;
|
||||
}
|
||||
private static byte[] GenerateQRData(PK7 pk7, int box = 0, int slot = 0, int num_copies = 1)
|
||||
public static byte[] GenerateQRData(PK7 pk7, int box = 0, int slot = 0, int num_copies = 1)
|
||||
{
|
||||
if (box > 31)
|
||||
box = 31;
|
||||
|
|
@ -87,22 +83,5 @@ private static byte[] GenerateQRData(PK7 pk7, int box = 0, int slot = 0, int num
|
|||
BitConverter.GetBytes((ushort) SaveUtil.check16(data.Take(0x1A0).ToArray(), 0)).CopyTo(data, 0x1A0);
|
||||
return data;
|
||||
}
|
||||
|
||||
public static Bitmap GenerateQRCode7(PK7 pk7, int box = 0, int slot = 0, int num_copies = 1)
|
||||
{
|
||||
byte[] data = GenerateQRData(pk7, box, slot, num_copies);
|
||||
using (var generator = new QRCodeGenerator())
|
||||
using (var qr_data = generator.CreateQRCode(data))
|
||||
using (var qr_code = new QRCode(qr_data))
|
||||
return qr_code.GetGraphic(4);
|
||||
}
|
||||
|
||||
public static Bitmap GenerateQRCode(byte[] data, int ppm = 4)
|
||||
{
|
||||
using (var generator = new QRCodeGenerator())
|
||||
using (var qr_data = generator.CreateQRCode(data))
|
||||
using (var qr_code = new QRCode(qr_data))
|
||||
return qr_code.GetGraphic(ppm);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user