mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-06-04 02:55:57 +00:00
Huge Animation Editor Update
-"Move Up" and "Move Down" functions finally work properly and with folders! -Animation Editor can import Java block and item animations -Animation Editor has a built-in Change Tile function where every single block and item that can be animated is listed (clock and compass are excluded since they have animations based on game data). When selected, it will automatically set your animation to that tile for you. If a required folder is missing, the function will create the folder for you and place the file inside. Happy animating! (: -Removed the old "Create Animated Texture" function and replaced it with the new Animation Editor -Moved the Audio Editor and Animation Editor into their own folders in the Utilities folder to keep things a little more organized in the solution.
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -10,6 +10,9 @@
|
||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||
*.userprefs
|
||||
|
||||
# Visual Studio local cache
|
||||
.vs/
|
||||
|
||||
# Build results
|
||||
[Dd]ebug/
|
||||
[Dd]ebugPublic/
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace PckStudio
|
||||
FormBorderStyle = FormBorderStyle.None;
|
||||
}
|
||||
|
||||
private void fixDirectoryNameForFiles(TreeNode dirN)
|
||||
public void fixDirectoryNameForFiles(TreeNode dirN)
|
||||
{
|
||||
foreach (TreeNode n in dirN.Nodes)
|
||||
{
|
||||
|
||||
@@ -1026,9 +1026,34 @@ namespace PckStudio
|
||||
|
||||
if (ofd.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
PckStudio.addAnimatedTexture add = new PckStudio.addAnimatedTexture(currentPCK, treeViewMain, ofd.FileName, Path.GetFileName(ofd.FileName).Remove(Path.GetFileName(ofd.FileName).Length - 4, 4));//presets texture generator dialog with needed data including selected picture
|
||||
add.ShowDialog();//Shows dialog
|
||||
add.Dispose();//Diposes generated dialog data
|
||||
try
|
||||
{
|
||||
AnimationEditor diag = new AnimationEditor(treeViewMain, ofd.FileName);
|
||||
diag.ShowDialog(this);
|
||||
diag.Dispose();
|
||||
|
||||
treeViewToMineFiles(treeViewMain);
|
||||
|
||||
treeMeta.Nodes.Clear();
|
||||
foreach (int type in types.Keys)
|
||||
comboBox1.Items.Add(types[type]);
|
||||
|
||||
//loads all of selected minefiles metadata into metadata treeview
|
||||
foreach (object[] entry in file.entries)
|
||||
{
|
||||
object[] strings = (object[])entry; TreeNode meta = new TreeNode();
|
||||
|
||||
foreach (object[] entryy in file.entries)
|
||||
meta.Text = (string)strings[0];
|
||||
meta.Tag = entry;
|
||||
treeMeta.Nodes.Add(meta);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
MessageBox.Show("Invalid animation data.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
saved = false;
|
||||
@@ -1038,7 +1063,7 @@ namespace PckStudio
|
||||
#region deciphers what happens when certain pck entries are double clicked
|
||||
private void treeView1_DoubleClick(object sender, EventArgs e)
|
||||
{
|
||||
if (treeViewMain.SelectedNode.Tag != null)
|
||||
if (treeViewMain.SelectedNode != null && treeViewMain.SelectedNode.Tag != null)
|
||||
{
|
||||
mf = (PCK.MineFile)treeViewMain.SelectedNode.Tag;
|
||||
|
||||
@@ -1202,23 +1227,25 @@ namespace PckStudio
|
||||
#region moves node up and arranges minefile indexes
|
||||
private void moveUpToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (treeViewMain.SelectedNode != null)//makes sure selected node is a minefile
|
||||
TreeNode move = (TreeNode)treeViewMain.SelectedNode.Clone();
|
||||
|
||||
if (treeViewMain.SelectedNode.Parent == null)
|
||||
{
|
||||
if (treeViewMain.SelectedNode.Tag != null)
|
||||
{
|
||||
if (treeViewMain.SelectedNode.Index - 1 >= 0)//Makes sure selected node isn't already at the top
|
||||
{
|
||||
//rearranges nodes minefile data indexes in minefiles list
|
||||
currentPCK.mineFiles[treeViewMain.SelectedNode.Index - 1] = (PCK.MineFile)treeViewMain.SelectedNode.Tag;
|
||||
currentPCK.mineFiles[treeViewMain.SelectedNode.Index] = (PCK.MineFile)treeViewMain.Nodes[treeViewMain.SelectedNode.Index - 1].Tag;
|
||||
//switches selected node with node above it
|
||||
TreeNode move = (TreeNode)treeViewMain.SelectedNode.Clone();
|
||||
treeViewMain.Nodes.Insert(treeViewMain.SelectedNode.Index - 1, move);
|
||||
//removes node because a clone was inserted into its new index
|
||||
treeViewMain.SelectedNode.Remove();
|
||||
}
|
||||
}
|
||||
if (treeViewMain.SelectedNode.PrevNode == null) return;
|
||||
treeViewMain.Nodes.Insert(treeViewMain.SelectedNode.PrevNode.Index, move);
|
||||
//removes node because a clone was inserted into its new index
|
||||
treeViewMain.SelectedNode.Remove();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (treeViewMain.SelectedNode.PrevNode == null) return;
|
||||
treeViewMain.SelectedNode.Parent.Nodes.Insert(treeViewMain.SelectedNode.PrevNode.Index, move);
|
||||
//removes node because a clone was inserted into its new index
|
||||
treeViewMain.SelectedNode.Remove();
|
||||
}
|
||||
|
||||
treeViewToMineFiles(treeViewMain);
|
||||
|
||||
saved = false;
|
||||
}
|
||||
#endregion
|
||||
@@ -1226,23 +1253,25 @@ namespace PckStudio
|
||||
#region moves node down and arranges minefile indexes
|
||||
private void moveDownToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (treeViewMain.SelectedNode != null)//makes sure selected node is a minefile
|
||||
TreeNode move = (TreeNode)treeViewMain.SelectedNode.Clone();
|
||||
|
||||
if (treeViewMain.SelectedNode.Parent == null)
|
||||
{
|
||||
if (treeViewMain.SelectedNode.Tag != null)
|
||||
{
|
||||
if (treeViewMain.Nodes[treeViewMain.SelectedNode.Index + 1] != null)//Makes sure selected node isn't already at the bottom
|
||||
{
|
||||
//rearranges nodes minefile data indexes in minefiles list
|
||||
currentPCK.mineFiles[treeViewMain.SelectedNode.Index + 1] = (PCK.MineFile)treeViewMain.SelectedNode.Tag;
|
||||
currentPCK.mineFiles[treeViewMain.SelectedNode.Index] = (PCK.MineFile)treeViewMain.Nodes[treeViewMain.SelectedNode.Index + 1].Tag;
|
||||
//switches selected node with node below it
|
||||
TreeNode move = (TreeNode)treeViewMain.SelectedNode.Clone();
|
||||
treeViewMain.Nodes.Insert(treeViewMain.SelectedNode.Index + 2, move);
|
||||
//removes node because a clone was inserted into its new index
|
||||
treeViewMain.SelectedNode.Remove();
|
||||
}
|
||||
}
|
||||
if (treeViewMain.SelectedNode.NextNode == null) return;
|
||||
treeViewMain.Nodes.Insert(treeViewMain.SelectedNode.NextNode.Index + 1, move);
|
||||
//removes node because a clone was inserted into its new index
|
||||
treeViewMain.SelectedNode.Remove();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (treeViewMain.SelectedNode.NextNode == null) return;
|
||||
treeViewMain.SelectedNode.Parent.Nodes.Insert(treeViewMain.SelectedNode.NextNode.Index + 1, move);
|
||||
//removes node because a clone was inserted into its new index
|
||||
treeViewMain.SelectedNode.Remove();
|
||||
}
|
||||
|
||||
treeViewToMineFiles(treeViewMain);
|
||||
|
||||
saved = false;
|
||||
}
|
||||
#endregion
|
||||
@@ -1293,9 +1322,12 @@ namespace PckStudio
|
||||
{
|
||||
PCK.MineFile mf = (PCK.MineFile)child.Tag;
|
||||
mf.name = childPath;
|
||||
newMineFiles.Add((PCK.MineFile)child.Tag);
|
||||
Console.WriteLine("Minefile " + i + ": " + childPath);
|
||||
i++;
|
||||
if (!newMineFiles.Contains(mf))
|
||||
{
|
||||
newMineFiles.Add((PCK.MineFile)child.Tag);
|
||||
//Console.WriteLine("Minefile " + i + ": " + childPath);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1303,9 +1335,12 @@ namespace PckStudio
|
||||
{
|
||||
PCK.MineFile mf = (PCK.MineFile)node.Tag;
|
||||
mf.name = nodePath;
|
||||
newMineFiles.Add((PCK.MineFile)node.Tag);
|
||||
Console.WriteLine("Minefile " + i + ": " + nodePath);
|
||||
i++;
|
||||
if (!newMineFiles.Contains(mf))
|
||||
{
|
||||
newMineFiles.Add((PCK.MineFile)node.Tag);
|
||||
//Console.WriteLine("Minefile " + i + ": " + nodePath);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
currentPCK.mineFiles = newMineFiles;
|
||||
@@ -3630,10 +3665,16 @@ namespace PckStudio
|
||||
{
|
||||
try
|
||||
{
|
||||
PckStudio.AnimationEditor diag = new PckStudio.AnimationEditor(mf);
|
||||
AnimationEditor diag = new AnimationEditor(treeViewMain);
|
||||
diag.ShowDialog(this);
|
||||
diag.Dispose();
|
||||
|
||||
treeViewToMineFiles(treeViewMain);
|
||||
|
||||
MemoryStream png = new MemoryStream(mf.data); //Gets image data from minefile data
|
||||
Image skinPicture = Image.FromStream(png); //Constructs image data into image
|
||||
pictureBoxImagePreview.Image = skinPicture;
|
||||
|
||||
treeMeta.Nodes.Clear();
|
||||
foreach (int type in types.Keys)
|
||||
comboBox1.Items.Add(types[type]);
|
||||
|
||||
@@ -1,145 +0,0 @@
|
||||
namespace PckStudio
|
||||
{
|
||||
partial class addAnimatedTexture
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(addAnimatedTexture));
|
||||
this.pictureBox1 = new PckStudio.PictureBoxWithInterpolationMode();
|
||||
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||
this.textBox2 = new System.Windows.Forms.TextBox();
|
||||
this.textBox3 = new System.Windows.Forms.TextBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.radioButton1 = new System.Windows.Forms.RadioButton();
|
||||
this.radioButton2 = new System.Windows.Forms.RadioButton();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// pictureBox1
|
||||
//
|
||||
resources.ApplyResources(this.pictureBox1, "pictureBox1");
|
||||
this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.pictureBox1.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Default;
|
||||
this.pictureBox1.Name = "pictureBox1";
|
||||
this.pictureBox1.TabStop = false;
|
||||
//
|
||||
// textBox1
|
||||
//
|
||||
resources.ApplyResources(this.textBox1, "textBox1");
|
||||
this.textBox1.Name = "textBox1";
|
||||
//
|
||||
// textBox2
|
||||
//
|
||||
resources.ApplyResources(this.textBox2, "textBox2");
|
||||
this.textBox2.Name = "textBox2";
|
||||
//
|
||||
// textBox3
|
||||
//
|
||||
resources.ApplyResources(this.textBox3, "textBox3");
|
||||
this.textBox3.Name = "textBox3";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
resources.ApplyResources(this.label1, "label1");
|
||||
this.label1.Name = "label1";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
resources.ApplyResources(this.label2, "label2");
|
||||
this.label2.Name = "label2";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
resources.ApplyResources(this.label3, "label3");
|
||||
this.label3.Name = "label3";
|
||||
//
|
||||
// button1
|
||||
//
|
||||
resources.ApplyResources(this.button1, "button1");
|
||||
this.button1.Name = "button1";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.button1.Click += new System.EventHandler(this.button1_Click_1);
|
||||
//
|
||||
// radioButton1
|
||||
//
|
||||
resources.ApplyResources(this.radioButton1, "radioButton1");
|
||||
this.radioButton1.Checked = true;
|
||||
this.radioButton1.Name = "radioButton1";
|
||||
this.radioButton1.TabStop = true;
|
||||
this.radioButton1.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// radioButton2
|
||||
//
|
||||
resources.ApplyResources(this.radioButton2, "radioButton2");
|
||||
this.radioButton2.Name = "radioButton2";
|
||||
this.radioButton2.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// addAnimatedTexture
|
||||
//
|
||||
resources.ApplyResources(this, "$this");
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.radioButton2);
|
||||
this.Controls.Add(this.radioButton1);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.label3);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.textBox3);
|
||||
this.Controls.Add(this.textBox2);
|
||||
this.Controls.Add(this.textBox1);
|
||||
this.Controls.Add(this.pictureBox1);
|
||||
this.ForeColor = System.Drawing.Color.White;
|
||||
this.MaximizeBox = false;
|
||||
this.Name = "addAnimatedTexture";
|
||||
this.Resizable = false;
|
||||
this.ShadowType = MetroFramework.Forms.MetroFormShadowType.DropShadow;
|
||||
this.Style = MetroFramework.MetroColorStyle.Silver;
|
||||
this.Theme = MetroFramework.MetroThemeStyle.Dark;
|
||||
this.Load += new System.EventHandler(this.addAnimatedTexture_Load);
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private PictureBoxWithInterpolationMode pictureBox1;
|
||||
private System.Windows.Forms.TextBox textBox1;
|
||||
private System.Windows.Forms.TextBox textBox2;
|
||||
private System.Windows.Forms.TextBox textBox3;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Button button1;
|
||||
private System.Windows.Forms.RadioButton radioButton1;
|
||||
private System.Windows.Forms.RadioButton radioButton2;
|
||||
}
|
||||
}
|
||||
@@ -1,114 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.Linq.Expressions;
|
||||
|
||||
namespace PckStudio
|
||||
{
|
||||
public partial class addAnimatedTexture : MetroFramework.Forms.MetroForm
|
||||
{
|
||||
PCK currentPCK;
|
||||
TreeView treeView1;
|
||||
TreeNode texture = new TreeNode();
|
||||
PCK.MineFile mf = new PCK.MineFile();
|
||||
PCK.MineFile mfc = new PCK.MineFile();
|
||||
string ofd;
|
||||
bool useCape = false;
|
||||
int loop = 0;
|
||||
int i = 0;
|
||||
string data;
|
||||
int speed;
|
||||
|
||||
public addAnimatedTexture(PCK currentPCKIn, TreeView treeView1In, string ofdIn, string name)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
textBox1.Text = name;
|
||||
|
||||
currentPCK = currentPCKIn;
|
||||
treeView1 = treeView1In;
|
||||
ofd = ofdIn;
|
||||
|
||||
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
|
||||
pictureBox1.InterpolationMode = InterpolationMode.NearestNeighbor;
|
||||
pictureBox1.Image = Image.FromFile(ofd);
|
||||
|
||||
mf.data = File.ReadAllBytes(ofd);
|
||||
|
||||
}
|
||||
|
||||
public class displayId
|
||||
{
|
||||
public string id;
|
||||
public string defaultName;
|
||||
}
|
||||
|
||||
private void button1_Click_1(object sender, EventArgs e)
|
||||
{
|
||||
try{
|
||||
int frames = int.Parse(textBox2.Text);
|
||||
|
||||
speed = int.Parse(textBox3.Text);
|
||||
|
||||
data = "0*" + speed + ",";
|
||||
|
||||
loop = frames - 1;
|
||||
|
||||
generateANIM();
|
||||
|
||||
object[] ANIM = {"ANIM", data};
|
||||
mf.entries.Add(ANIM);
|
||||
|
||||
string path = "";
|
||||
|
||||
if (radioButton1.Checked == true)
|
||||
{
|
||||
path = "res/textures/blocks/" + textBox1.Text + ".png";
|
||||
}
|
||||
else
|
||||
{
|
||||
path = "res/textures/items/" + textBox1.Text + ".png";
|
||||
}
|
||||
|
||||
mf.filesize = mf.data.Length;
|
||||
mf.name = path;
|
||||
mf.type = 0;
|
||||
|
||||
currentPCK.mineFiles.Add(mf);
|
||||
texture.Text = path;
|
||||
texture.Tag = mf;
|
||||
treeView1.Nodes.Insert(17, texture);
|
||||
|
||||
this.Close();
|
||||
}catch (Exception)
|
||||
{
|
||||
MessageBox.Show("Invalid values were entered");
|
||||
}
|
||||
}
|
||||
|
||||
private void generateANIM()
|
||||
{
|
||||
do
|
||||
{
|
||||
i += 1;
|
||||
data += i + "*" + speed + ",";
|
||||
loop -= 1;
|
||||
} while (loop != 0);
|
||||
}
|
||||
|
||||
private void addAnimatedTexture_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -39,6 +39,9 @@
|
||||
this.saveToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.bulkAnimationSpeedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.importJavaAnimationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.changeTileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.metroCheckBox1 = new MetroFramework.Controls.MetroCheckBox();
|
||||
this.metroButton1 = new MetroFramework.Controls.MetroButton();
|
||||
this.pictureBoxWithInterpolationMode1 = new PckStudio.PictureBoxWithInterpolationMode();
|
||||
@@ -74,13 +77,13 @@
|
||||
this.addFrameToolStripMenuItem,
|
||||
this.removeFrameToolStripMenuItem});
|
||||
this.contextMenuStrip1.Name = "contextMenuStrip1";
|
||||
this.contextMenuStrip1.Size = new System.Drawing.Size(181, 70);
|
||||
this.contextMenuStrip1.Size = new System.Drawing.Size(154, 48);
|
||||
//
|
||||
// addFrameToolStripMenuItem
|
||||
//
|
||||
this.addFrameToolStripMenuItem.Image = global::PckStudio.Properties.Resources.ExportFile;
|
||||
this.addFrameToolStripMenuItem.Name = "addFrameToolStripMenuItem";
|
||||
this.addFrameToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.addFrameToolStripMenuItem.Size = new System.Drawing.Size(153, 22);
|
||||
this.addFrameToolStripMenuItem.Text = "Add Frame";
|
||||
this.addFrameToolStripMenuItem.Click += new System.EventHandler(this.addFrameToolStripMenuItem_Click);
|
||||
//
|
||||
@@ -88,7 +91,7 @@
|
||||
//
|
||||
this.removeFrameToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Del;
|
||||
this.removeFrameToolStripMenuItem.Name = "removeFrameToolStripMenuItem";
|
||||
this.removeFrameToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.removeFrameToolStripMenuItem.Size = new System.Drawing.Size(153, 22);
|
||||
this.removeFrameToolStripMenuItem.Text = "Remove Frame";
|
||||
this.removeFrameToolStripMenuItem.Click += new System.EventHandler(this.removeFrameToolStripMenuItem_Click);
|
||||
//
|
||||
@@ -98,7 +101,8 @@
|
||||
this.menuStrip.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.fileToolStripMenuItem,
|
||||
this.editToolStripMenuItem});
|
||||
this.editToolStripMenuItem,
|
||||
this.helpToolStripMenuItem});
|
||||
this.menuStrip.Location = new System.Drawing.Point(20, 60);
|
||||
this.menuStrip.Name = "menuStrip";
|
||||
this.menuStrip.Size = new System.Drawing.Size(360, 24);
|
||||
@@ -118,38 +122,63 @@
|
||||
//
|
||||
this.saveToolStripMenuItem1.Image = ((System.Drawing.Image)(resources.GetObject("saveToolStripMenuItem1.Image")));
|
||||
this.saveToolStripMenuItem1.Name = "saveToolStripMenuItem1";
|
||||
this.saveToolStripMenuItem1.Size = new System.Drawing.Size(180, 22);
|
||||
this.saveToolStripMenuItem1.Size = new System.Drawing.Size(98, 22);
|
||||
this.saveToolStripMenuItem1.Text = "Save";
|
||||
this.saveToolStripMenuItem1.Click += new System.EventHandler(this.saveToolStripMenuItem1_Click);
|
||||
//
|
||||
// editToolStripMenuItem
|
||||
//
|
||||
this.editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.bulkAnimationSpeedToolStripMenuItem});
|
||||
this.bulkAnimationSpeedToolStripMenuItem,
|
||||
this.importJavaAnimationToolStripMenuItem,
|
||||
this.changeTileToolStripMenuItem});
|
||||
this.editToolStripMenuItem.ForeColor = System.Drawing.Color.White;
|
||||
this.editToolStripMenuItem.Name = "editToolStripMenuItem";
|
||||
this.editToolStripMenuItem.Size = new System.Drawing.Size(39, 20);
|
||||
this.editToolStripMenuItem.Text = "Edit";
|
||||
this.editToolStripMenuItem.Size = new System.Drawing.Size(46, 20);
|
||||
this.editToolStripMenuItem.Text = "Tools";
|
||||
//
|
||||
// bulkAnimationSpeedToolStripMenuItem
|
||||
//
|
||||
this.bulkAnimationSpeedToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Replace;
|
||||
this.bulkAnimationSpeedToolStripMenuItem.Image = global::PckStudio.Properties.Resources.clock;
|
||||
this.bulkAnimationSpeedToolStripMenuItem.Name = "bulkAnimationSpeedToolStripMenuItem";
|
||||
this.bulkAnimationSpeedToolStripMenuItem.Size = new System.Drawing.Size(210, 22);
|
||||
this.bulkAnimationSpeedToolStripMenuItem.Text = "Set Bulk Animation Speed";
|
||||
this.bulkAnimationSpeedToolStripMenuItem.Click += new System.EventHandler(this.bulkAnimationSpeedToolStripMenuItem_Click);
|
||||
//
|
||||
// importJavaAnimationToolStripMenuItem
|
||||
//
|
||||
this.importJavaAnimationToolStripMenuItem.Image = global::PckStudio.Properties.Resources.ExportFile;
|
||||
this.importJavaAnimationToolStripMenuItem.Name = "importJavaAnimationToolStripMenuItem";
|
||||
this.importJavaAnimationToolStripMenuItem.Size = new System.Drawing.Size(210, 22);
|
||||
this.importJavaAnimationToolStripMenuItem.Text = "Import Java Animation";
|
||||
this.importJavaAnimationToolStripMenuItem.Click += new System.EventHandler(this.importJavaAnimationToolStripMenuItem_Click);
|
||||
//
|
||||
// changeTileToolStripMenuItem
|
||||
//
|
||||
this.changeTileToolStripMenuItem.Image = global::PckStudio.Properties.Resources.changeTile;
|
||||
this.changeTileToolStripMenuItem.Name = "changeTileToolStripMenuItem";
|
||||
this.changeTileToolStripMenuItem.Size = new System.Drawing.Size(210, 22);
|
||||
this.changeTileToolStripMenuItem.Text = "Change Tile";
|
||||
this.changeTileToolStripMenuItem.Click += new System.EventHandler(this.changeTileToolStripMenuItem_Click);
|
||||
//
|
||||
// helpToolStripMenuItem
|
||||
//
|
||||
this.helpToolStripMenuItem.ForeColor = System.Drawing.Color.White;
|
||||
this.helpToolStripMenuItem.Name = "helpToolStripMenuItem";
|
||||
this.helpToolStripMenuItem.Size = new System.Drawing.Size(44, 20);
|
||||
this.helpToolStripMenuItem.Text = "Help";
|
||||
this.helpToolStripMenuItem.Click += new System.EventHandler(this.helpToolStripMenuItem_Click);
|
||||
//
|
||||
// metroCheckBox1
|
||||
//
|
||||
this.metroCheckBox1.AutoSize = true;
|
||||
this.metroCheckBox1.Location = new System.Drawing.Point(188, 285);
|
||||
this.metroCheckBox1.Name = "metroCheckBox1";
|
||||
this.metroCheckBox1.Size = new System.Drawing.Size(85, 15);
|
||||
this.metroCheckBox1.Size = new System.Drawing.Size(204, 15);
|
||||
this.metroCheckBox1.TabIndex = 17;
|
||||
this.metroCheckBox1.Text = "Interpolates";
|
||||
this.metroCheckBox1.Text = "Interpolates (not simulated above)";
|
||||
this.metroCheckBox1.Theme = MetroFramework.MetroThemeStyle.Dark;
|
||||
this.metroCheckBox1.UseSelectable = true;
|
||||
this.metroCheckBox1.CheckedChanged += new System.EventHandler(this.metroCheckBox1_CheckedChanged);
|
||||
//
|
||||
// metroButton1
|
||||
//
|
||||
@@ -229,5 +258,8 @@
|
||||
private MetroFramework.Controls.MetroButton metroButton2;
|
||||
private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem bulkAnimationSpeedToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem importJavaAnimationToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem changeTileToolStripMenuItem;
|
||||
}
|
||||
}
|
||||
@@ -1,30 +1,31 @@
|
||||
using System;
|
||||
using MetroFramework.Forms;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using MetroFramework.Forms;
|
||||
using PckStudio;
|
||||
|
||||
namespace PckStudio
|
||||
{
|
||||
public partial class AnimationEditor : MetroForm
|
||||
{
|
||||
TreeView treeViewMain = new TreeView();
|
||||
PCK.MineFile mf = new PCK.MineFile();
|
||||
List<Image> frames = new List<Image>();
|
||||
Image texture;
|
||||
int frameCount;
|
||||
bool isItem = false;
|
||||
string lastFrameTime = "1";
|
||||
string newTileName = "";
|
||||
bool create = false;
|
||||
|
||||
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
|
||||
{
|
||||
Tuple< string, string > frameData = e.Node.Tag as Tuple<string, string>;
|
||||
Tuple<string, string> frameData = e.Node.Tag as Tuple<string, string>;
|
||||
Console.WriteLine(frameData.Item1 + " --- " + frameData.Item2);
|
||||
if (metroButton1.Enabled)
|
||||
{
|
||||
@@ -32,9 +33,33 @@ namespace PckStudio
|
||||
}
|
||||
}
|
||||
|
||||
public AnimationEditor(PCK.MineFile MineFile)
|
||||
public AnimationEditor(TreeView treeViewIn, String createdFileName = "")
|
||||
{
|
||||
mf = MineFile;
|
||||
treeViewMain = treeViewIn;
|
||||
if (String.IsNullOrEmpty(createdFileName))
|
||||
{
|
||||
newTileName = Path.GetFileNameWithoutExtension(treeViewMain.SelectedNode.Text);
|
||||
if (treeViewMain.SelectedNode.Parent.Text.ToLower() == "items".ToLower()) isItem = true;
|
||||
mf = treeViewMain.SelectedNode.Tag as PCK.MineFile;
|
||||
}
|
||||
else
|
||||
{
|
||||
create = true;
|
||||
PCK.MineFile newMf = new PCK.MineFile();
|
||||
object[] animEntry = { "ANIM", "" };
|
||||
newMf.entries.Add(animEntry);
|
||||
newMf.data = File.ReadAllBytes(createdFileName);
|
||||
newMf.filesize = newMf.data.Length;//gets filesize for minefile
|
||||
newMf.type = 2;
|
||||
mf = newMf;
|
||||
Forms.Utilities.AnimationEditor.ChangeTile diag = new Forms.Utilities.AnimationEditor.ChangeTile();
|
||||
diag.ShowDialog(this);
|
||||
Console.WriteLine(diag.SelectedTile);
|
||||
newTileName = diag.SelectedTile;
|
||||
isItem = diag.IsItem;
|
||||
diag.Dispose();
|
||||
}
|
||||
|
||||
List<string> strEntries = new List<string>();
|
||||
List<string> strEntryData = new List<string>();
|
||||
|
||||
@@ -121,7 +146,7 @@ namespace PckStudio
|
||||
}
|
||||
else
|
||||
{
|
||||
for(int i = 0; i < frameCount; i++)
|
||||
for (int i = 0; i < frameCount; i++)
|
||||
{
|
||||
TreeNode frameNode = new TreeNode();
|
||||
Tuple<string, string> finalFrameData = new Tuple<string, string>(i.ToString(), "1");
|
||||
@@ -137,6 +162,7 @@ namespace PckStudio
|
||||
|
||||
void createFrameList()
|
||||
{
|
||||
frames.Clear();
|
||||
int width = texture.Width;
|
||||
int height = texture.Height;
|
||||
int totalFrames = height / width;
|
||||
@@ -167,7 +193,7 @@ namespace PckStudio
|
||||
int animCurrentFrame = 0;
|
||||
int animCurrentFrameTime = 0;
|
||||
int animCurrentTotalFrameTime = -1;
|
||||
Tuple<string, string> currentFrameData = new Tuple<string, string>("","");
|
||||
Tuple<string, string> currentFrameData = new Tuple<string, string>("", "");
|
||||
Image img = null;
|
||||
int nextFrame;
|
||||
int frameCounter = 0; // ported directly from Java Edition code -MattNL
|
||||
@@ -186,7 +212,7 @@ namespace PckStudio
|
||||
animCurrentTotalFrameTime = Int16.Parse(currentFrameData.Item2);
|
||||
animCurrentFrame++;
|
||||
|
||||
if(metroCheckBox1.Checked)
|
||||
if (metroCheckBox1.Checked)
|
||||
{
|
||||
img = frames[Int16.Parse(currentFrameData.Item1)];
|
||||
nextFrame = animCurrentFrame + 1;
|
||||
@@ -293,11 +319,96 @@ namespace PckStudio
|
||||
if (e.KeyData == Keys.Delete) treeView1.Nodes.Remove(treeView1.SelectedNode);
|
||||
}
|
||||
|
||||
private TreeNode FindNode(TreeNode treeNode, string name)
|
||||
{
|
||||
foreach (TreeNode node in treeNode.Nodes)
|
||||
{
|
||||
if (node.Text.ToLower() == name.ToLower()) return node;
|
||||
else
|
||||
{
|
||||
TreeNode nodeChild = FindNode(node, name);
|
||||
if (nodeChild != null)
|
||||
{
|
||||
return nodeChild;
|
||||
}
|
||||
}
|
||||
}
|
||||
return (TreeNode)null;
|
||||
}
|
||||
|
||||
private TreeNode FindNode(TreeView treeView, string name)
|
||||
{
|
||||
foreach (TreeNode node in treeView.Nodes)
|
||||
{
|
||||
if (node.Text.ToLower() == name.ToLower()) return node;
|
||||
else
|
||||
{
|
||||
TreeNode nodeChild = FindNode(node, name);
|
||||
if (nodeChild != null) return nodeChild;
|
||||
}
|
||||
}
|
||||
return (TreeNode)null;
|
||||
}
|
||||
|
||||
private void addNodeToAnimationsFolder(TreeNode newNode)
|
||||
{
|
||||
TreeNode parent = FindNode(treeViewMain, isItem ? "items" : "blocks");
|
||||
if (parent != null)
|
||||
{
|
||||
Console.WriteLine("ParentNotNULL");
|
||||
parent.Nodes.Add(newNode);
|
||||
}
|
||||
else
|
||||
{
|
||||
TreeNode texturesParent = FindNode(treeViewMain, "textures");
|
||||
if (texturesParent != null)
|
||||
{
|
||||
Console.WriteLine("TextureNotNULL");
|
||||
TreeNode newFolder = new TreeNode(isItem ? "items" : "blocks");
|
||||
texturesParent.Nodes.Add(newFolder);
|
||||
newFolder.Nodes.Add(newNode);
|
||||
}
|
||||
else
|
||||
{
|
||||
TreeNode resParent = FindNode(treeViewMain, "res");
|
||||
if (resParent != null)
|
||||
{
|
||||
Console.WriteLine("ResNotNULL");
|
||||
TreeNode newFolder = new TreeNode("textures");
|
||||
resParent.Nodes.Add(newFolder);
|
||||
TreeNode newFolderB = new TreeNode(isItem ? "items" : "blocks");
|
||||
newFolder.Nodes.Add(newFolderB);
|
||||
newFolderB.Nodes.Add(newNode);
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("ResNULL");
|
||||
TreeNode newFolder = new TreeNode("res");
|
||||
treeViewMain.Nodes.Add(newFolder);
|
||||
TreeNode newFolderB = new TreeNode("textures");
|
||||
newFolder.Nodes.Add(newFolderB);
|
||||
TreeNode newFolderC = new TreeNode(isItem ? "items" : "blocks");
|
||||
newFolderB.Nodes.Add(newFolderC);
|
||||
newFolderC.Nodes.Add(newNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void saveToolStripMenuItem1_Click(object sender, EventArgs e)
|
||||
{
|
||||
using (MemoryStream m = new MemoryStream())
|
||||
{
|
||||
texture.Save(m, texture.RawFormat);
|
||||
mf.data = m.ToArray();
|
||||
mf.filesize = mf.data.Length;
|
||||
}
|
||||
|
||||
if (!create && treeViewMain.SelectedNode.Tag != null) treeViewMain.SelectedNode.Text = newTileName + ".png";
|
||||
|
||||
int animIndex = mf.entries.FindIndex(entry => (string)entry[0] == "ANIM");
|
||||
string animationData = "";
|
||||
if(metroCheckBox1.Checked) animationData += "#"; // does the animation interpolate?
|
||||
if (metroCheckBox1.Checked) animationData += "#"; // does the animation interpolate?
|
||||
foreach (TreeNode node in treeView1.Nodes)
|
||||
{
|
||||
Tuple<string, string> frameData = node.Tag as Tuple<string, string>;
|
||||
@@ -311,6 +422,32 @@ namespace PckStudio
|
||||
};
|
||||
if (animIndex != -1) mf.entries[animIndex] = newEntry;
|
||||
else mf.entries.Add(newEntry);
|
||||
|
||||
if (create)
|
||||
{
|
||||
TreeNode newNode = new TreeNode(newTileName + ".png") { Tag = mf };//creates node for minefile
|
||||
newNode.ImageIndex = 2;
|
||||
newNode.SelectedImageIndex = 2;
|
||||
addNodeToAnimationsFolder(newNode);
|
||||
}
|
||||
else if (isItem && treeViewMain.SelectedNode.Parent.Text == "blocks")
|
||||
{
|
||||
Console.WriteLine("block: " + treeViewMain.SelectedNode.Parent.Text);
|
||||
TreeNode newNode = treeViewMain.SelectedNode;
|
||||
newNode.ImageIndex = 2;
|
||||
newNode.SelectedImageIndex = 2;
|
||||
treeViewMain.SelectedNode.Remove();
|
||||
addNodeToAnimationsFolder(newNode);
|
||||
}
|
||||
else if (treeViewMain.SelectedNode.Parent.Text == "items")
|
||||
{
|
||||
Console.WriteLine("item: " + treeViewMain.SelectedNode.Parent.Text);
|
||||
TreeNode newNode = treeViewMain.SelectedNode;
|
||||
newNode.ImageIndex = 2;
|
||||
newNode.SelectedImageIndex = 2;
|
||||
treeViewMain.SelectedNode.Remove();
|
||||
addNodeToAnimationsFolder(newNode);
|
||||
}
|
||||
}
|
||||
|
||||
// Most of the code below is modified code from this link: https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.treeview.itemdrag?view=windowsdesktop-6.0
|
||||
@@ -409,27 +546,27 @@ namespace PckStudio
|
||||
return ContainsNode(node1, node2.Parent);
|
||||
}
|
||||
|
||||
private void addFrameToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
private void treeView1_doubleClick(object sender, EventArgs e)
|
||||
{
|
||||
PckStudio.Forms.Utilities.AnimationEditor.FrameEditor diag = new PckStudio.Forms.Utilities.AnimationEditor.FrameEditor(
|
||||
treeView1,
|
||||
new Tuple<string, string>("",""),
|
||||
frameCount - 1,
|
||||
true,
|
||||
new TreeNode());
|
||||
Forms.Utilities.AnimationEditor.FrameEditor diag = new Forms.Utilities.AnimationEditor.FrameEditor(
|
||||
treeView1, // animation editor tree
|
||||
treeView1.SelectedNode.Tag as Tuple<string, string>, // the current selected frame data
|
||||
frameCount - 1, // frame limit
|
||||
false, // create new frame?
|
||||
treeView1.SelectedNode // the current frame selected
|
||||
);
|
||||
diag.ShowDialog(this);
|
||||
diag.Dispose();
|
||||
}
|
||||
|
||||
private void treeView1_doubleClick(object sender, EventArgs e)
|
||||
private void addFrameToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
PckStudio.Forms.Utilities.AnimationEditor.FrameEditor diag = new PckStudio.Forms.Utilities.AnimationEditor.FrameEditor(
|
||||
Forms.Utilities.AnimationEditor.FrameEditor diag = new Forms.Utilities.AnimationEditor.FrameEditor(
|
||||
treeView1,
|
||||
treeView1.SelectedNode.Tag as Tuple<string, string>,
|
||||
new Tuple<string, string>("", ""),
|
||||
frameCount - 1,
|
||||
false,
|
||||
treeView1.SelectedNode
|
||||
);
|
||||
true,
|
||||
new TreeNode());
|
||||
diag.ShowDialog(this);
|
||||
diag.Dispose();
|
||||
}
|
||||
@@ -439,13 +576,130 @@ namespace PckStudio
|
||||
treeView1.SelectedNode.Remove();
|
||||
}
|
||||
|
||||
private void metroCheckBox1_CheckedChanged(object sender, EventArgs e) {}
|
||||
|
||||
private void bulkAnimationSpeedToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
PckStudio.Forms.Utilities.AnimationEditor.SetBulkSpeed diag = new PckStudio.Forms.Utilities.AnimationEditor.SetBulkSpeed(treeView1);
|
||||
Forms.Utilities.AnimationEditor.SetBulkSpeed diag = new Forms.Utilities.AnimationEditor.SetBulkSpeed(treeView1);
|
||||
diag.ShowDialog(this);
|
||||
diag.Dispose();
|
||||
}
|
||||
|
||||
private void importJavaAnimationToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
DialogResult query = MessageBox.Show("This feature will replace the existing animation data. It might fail if the selected animation script is invalid. Are you sure that you want to continue?", "Warning", MessageBoxButtons.YesNo);
|
||||
if (query == DialogResult.No) return;
|
||||
|
||||
// In case the import fails, the user won't lose any data - MattNL
|
||||
Image oldImage = texture;
|
||||
int oldFrameCount = frameCount;
|
||||
List<Image> oldFrames = frames;
|
||||
TreeNodeCollection oldAnimData = treeView1.Nodes;
|
||||
|
||||
OpenFileDialog diag = new OpenFileDialog();
|
||||
diag.Multiselect = false;
|
||||
diag.Filter = "Animation Scripts (*.mcmeta)|*.png.mcmeta"; /* It's marked as .png.mcmeta just in case
|
||||
some weirdo tries to pass a pack.mcmeta or something
|
||||
-MattNL */
|
||||
diag.Title = "Please select a valid Minecaft: Java Edition animation script";
|
||||
diag.ShowDialog(this);
|
||||
diag.Dispose();
|
||||
if (String.IsNullOrEmpty(diag.FileName)) return; // Return if name is null or if the user cancels
|
||||
Console.WriteLine("Selected Animation Script: " + diag.FileName);
|
||||
|
||||
treeView1.Nodes.Clear();
|
||||
|
||||
MemoryStream textureMem = new MemoryStream(File.ReadAllBytes(Path.GetDirectoryName(diag.FileName) + "\\/" + Path.GetFileNameWithoutExtension(diag.FileName)));
|
||||
texture = Image.FromStream(textureMem);
|
||||
frameCount = texture.Height / texture.Width;
|
||||
createFrameList();
|
||||
|
||||
try
|
||||
{
|
||||
Newtonsoft.Json.Linq.JObject mcmeta = Newtonsoft.Json.Linq.JObject.Parse(File.ReadAllText(diag.FileName));
|
||||
|
||||
if (mcmeta["animation"] != null)
|
||||
{
|
||||
int frameTime = 1;
|
||||
// Some if statements to ensure that the animation is valid.
|
||||
if (mcmeta["animation"]["frametime"] != null &&
|
||||
mcmeta["animation"]["frametime"].Type == JTokenType.Integer) frameTime = (int)mcmeta["animation"]["frametime"];
|
||||
if (mcmeta["animation"]["interpolate"] != null &&
|
||||
mcmeta["animation"]["interpolate"].Type == JTokenType.Boolean && (Boolean)mcmeta["animation"]["interpolate"] == true) metroCheckBox1.Checked = true;
|
||||
if (mcmeta["animation"]["frames"] != null &&
|
||||
mcmeta["animation"]["frames"].Type == JTokenType.Array)
|
||||
{
|
||||
foreach (JToken frame in mcmeta["animation"]["frames"].Children())
|
||||
{
|
||||
if (frame.Type == JTokenType.Object)
|
||||
{
|
||||
if (frame["index"] != null && frame["index"].Type == JTokenType.Integer &&
|
||||
frame["time"] != null && frame["time"].Type == JTokenType.Integer)
|
||||
{
|
||||
Console.WriteLine((int)frame["index"] + "*" + (int)frame["time"]);
|
||||
|
||||
TreeNode frameNode = new TreeNode();
|
||||
Tuple<string, string> finalFrameData = new Tuple<string, string>(((int)frame["index"]).ToString(), ((int)frame["time"]).ToString());
|
||||
frameNode.Text = "Frame: " + ((int)frame["index"]).ToString() + ", Frame Time: " + ((int)frame["time"]).ToString();
|
||||
frameNode.Tag = finalFrameData;
|
||||
treeView1.Nodes.Add(frameNode);
|
||||
}
|
||||
}
|
||||
else if (frame.Type == JTokenType.Integer)
|
||||
{
|
||||
Console.WriteLine((int)frame + "*" + frameTime);
|
||||
|
||||
TreeNode frameNode = new TreeNode();
|
||||
Tuple<string, string> finalFrameData = new Tuple<string, string>(((int)frame).ToString(), frameTime.ToString());
|
||||
frameNode.Text = "Frame: " + ((int)frame).ToString() + ", Frame Time: " + frameTime.ToString();
|
||||
frameNode.Tag = finalFrameData;
|
||||
treeView1.Nodes.Add(frameNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < frameCount; i++)
|
||||
{
|
||||
TreeNode frameNode = new TreeNode();
|
||||
Tuple<string, string> finalFrameData = new Tuple<string, string>(i.ToString(), frameTime.ToString());
|
||||
frameNode.Text = "Frame: " + i.ToString() + ", Frame Time: " + frameTime.ToString();
|
||||
frameNode.Tag = finalFrameData;
|
||||
treeView1.Nodes.Add(frameNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (JsonException j_ex)
|
||||
{
|
||||
MessageBox.Show(j_ex.Message, "Invalid animation");
|
||||
texture = oldImage;
|
||||
frameCount = oldFrameCount;
|
||||
frames = oldFrames;
|
||||
foreach (TreeNode node in oldAnimData)
|
||||
{
|
||||
treeView1.Nodes.Add(node);
|
||||
}
|
||||
return;
|
||||
}
|
||||
pictureBoxWithInterpolationMode1.Image = frames[Int16.Parse((treeView1.Nodes[0].Tag as Tuple<string, string>).Item1)];
|
||||
}
|
||||
|
||||
private void helpToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
MessageBox.Show("Simply drag and drop frames in the tree to rearrange your animation.\n\n" +
|
||||
"The \"Interpolates\" checkbox enables the blending animation seen with some textures in the game, such as Prismarine.\n\n" +
|
||||
"You can preview your animation at any time by simply pressing the \"Play Animation\" button!\n\n" +
|
||||
"You can edit the frame and its speed by double clicking a frame in the tree. If you'd like to change the entire animation's speed, you can do so with the \"Set Bulk Animation Speed\" button in the \"Tools\" tab.\n\n" +
|
||||
"Porting animations from Java packs are made simple with the \"Import Java Animation\" button found in the \"Tools\" tab!", "Help");
|
||||
}
|
||||
|
||||
private void changeTileToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
PckStudio.Forms.Utilities.AnimationEditor.ChangeTile diag = new Forms.Utilities.AnimationEditor.ChangeTile();
|
||||
diag.ShowDialog(this);
|
||||
Console.WriteLine(diag.SelectedTile);
|
||||
newTileName = diag.SelectedTile;
|
||||
isItem = diag.IsItem;
|
||||
diag.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -127,7 +127,7 @@
|
||||
<data name="saveToolStripMenuItem1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||
wwAADsMBx2+oZAAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4yMfEgaZUAAADfSURBVDhPYxg8
|
||||
vQAADr0BR/uQrQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4yMfEgaZUAAADfSURBVDhPYxg8
|
||||
QLt++3yTGbf/Fm599P/Nh49wfPXxq/+rTt37f+Dak/8gOSBgAGEMANIMxGBFyAasPf/0v8GE8//z1t8C
|
||||
y4HU4DIALIluwLpLL+HiMANAGKoNAWASCavv/n/57gPcgOvP3oENOXj7NViOoAFGU6791+k4ghWD5Aga
|
||||
QCyGakMAkODcU89R/I8Ng9TgNADk14dPn/8/c+kqVgySgwUqVBsCwAx49urN/zsPHmPFIDmaGvAXJInN
|
||||
216
MinecraftUSkinEditor/Forms/Utilities/Animation/ChangeTile.Designer.cs
generated
Normal file
216
MinecraftUSkinEditor/Forms/Utilities/Animation/ChangeTile.Designer.cs
generated
Normal file
@@ -0,0 +1,216 @@
|
||||
namespace PckStudio.Forms.Utilities.AnimationEditor
|
||||
{
|
||||
partial class ChangeTile
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.button2 = new System.Windows.Forms.Button();
|
||||
this.treeView1 = new System.Windows.Forms.TreeView();
|
||||
this.treeView2 = new System.Windows.Forms.TreeView();
|
||||
this.metroLabel1 = new MetroFramework.Controls.MetroLabel();
|
||||
this.metroLabel2 = new MetroFramework.Controls.MetroLabel();
|
||||
this.metroTextBox1 = new MetroFramework.Controls.MetroTextBox();
|
||||
this.metroTabControl1 = new MetroFramework.Controls.MetroTabControl();
|
||||
this.Blocks = new System.Windows.Forms.TabPage();
|
||||
this.Items = new System.Windows.Forms.TabPage();
|
||||
this.metroTabControl1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.button1.ForeColor = System.Drawing.Color.White;
|
||||
this.button1.ImeMode = System.Windows.Forms.ImeMode.NoControl;
|
||||
this.button1.Location = new System.Drawing.Point(55, 233);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(75, 23);
|
||||
this.button1.TabIndex = 7;
|
||||
this.button1.Text = "Save";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.button1.Click += new System.EventHandler(this.button1_Click);
|
||||
//
|
||||
// button2
|
||||
//
|
||||
this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.button2.ForeColor = System.Drawing.Color.White;
|
||||
this.button2.ImeMode = System.Windows.Forms.ImeMode.NoControl;
|
||||
this.button2.Location = new System.Drawing.Point(135, 233);
|
||||
this.button2.Name = "button2";
|
||||
this.button2.Size = new System.Drawing.Size(75, 23);
|
||||
this.button2.TabIndex = 13;
|
||||
this.button2.Text = "Cancel";
|
||||
this.button2.UseVisualStyleBackColor = true;
|
||||
this.button2.Click += new System.EventHandler(this.button2_Click);
|
||||
//
|
||||
// treeView1
|
||||
//
|
||||
this.treeView1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.treeView1.ForeColor = System.Drawing.Color.White;
|
||||
this.treeView1.Location = new System.Drawing.Point(0, 0);
|
||||
this.treeView1.Name = "treeView1";
|
||||
this.treeView1.Size = new System.Drawing.Size(184, 125);
|
||||
this.treeView1.TabIndex = 14;
|
||||
this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeViews_AfterSelect);
|
||||
//
|
||||
// treeView2
|
||||
//
|
||||
this.treeView2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.treeView2.ForeColor = System.Drawing.Color.White;
|
||||
this.treeView2.Location = new System.Drawing.Point(0, 0);
|
||||
this.treeView2.Name = "treeView2";
|
||||
this.treeView2.Size = new System.Drawing.Size(184, 125);
|
||||
this.treeView2.TabIndex = 14;
|
||||
this.treeView2.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeViews_AfterSelect);
|
||||
//
|
||||
// metroLabel1
|
||||
//
|
||||
this.metroLabel1.AutoSize = true;
|
||||
this.metroLabel1.Location = new System.Drawing.Point(75, 13);
|
||||
this.metroLabel1.Name = "metroLabel1";
|
||||
this.metroLabel1.Size = new System.Drawing.Size(114, 19);
|
||||
this.metroLabel1.TabIndex = 15;
|
||||
this.metroLabel1.Text = "Please select a tile";
|
||||
this.metroLabel1.Theme = MetroFramework.MetroThemeStyle.Dark;
|
||||
//
|
||||
// metroLabel2
|
||||
//
|
||||
this.metroLabel2.AutoSize = true;
|
||||
this.metroLabel2.Location = new System.Drawing.Point(36, 35);
|
||||
this.metroLabel2.Name = "metroLabel2";
|
||||
this.metroLabel2.Size = new System.Drawing.Size(46, 19);
|
||||
this.metroLabel2.TabIndex = 16;
|
||||
this.metroLabel2.Text = "Filter: ";
|
||||
this.metroLabel2.Theme = MetroFramework.MetroThemeStyle.Dark;
|
||||
//
|
||||
// metroTextBox1
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
this.metroTextBox1.CustomButton.Image = null;
|
||||
this.metroTextBox1.CustomButton.Location = new System.Drawing.Point(113, 1);
|
||||
this.metroTextBox1.CustomButton.Name = "";
|
||||
this.metroTextBox1.CustomButton.Size = new System.Drawing.Size(21, 21);
|
||||
this.metroTextBox1.CustomButton.Style = MetroFramework.MetroColorStyle.Blue;
|
||||
this.metroTextBox1.CustomButton.TabIndex = 1;
|
||||
this.metroTextBox1.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light;
|
||||
this.metroTextBox1.CustomButton.UseSelectable = true;
|
||||
this.metroTextBox1.CustomButton.Visible = false;
|
||||
this.metroTextBox1.Lines = new string[0];
|
||||
this.metroTextBox1.Location = new System.Drawing.Point(75, 35);
|
||||
this.metroTextBox1.MaxLength = 32767;
|
||||
this.metroTextBox1.Name = "metroTextBox1";
|
||||
this.metroTextBox1.PasswordChar = '\0';
|
||||
this.metroTextBox1.ScrollBars = System.Windows.Forms.ScrollBars.None;
|
||||
this.metroTextBox1.SelectedText = "";
|
||||
this.metroTextBox1.SelectionLength = 0;
|
||||
this.metroTextBox1.SelectionStart = 0;
|
||||
this.metroTextBox1.ShortcutsEnabled = true;
|
||||
this.metroTextBox1.Size = new System.Drawing.Size(135, 23);
|
||||
this.metroTextBox1.TabIndex = 17;
|
||||
this.metroTextBox1.Theme = MetroFramework.MetroThemeStyle.Dark;
|
||||
this.metroTextBox1.UseSelectable = true;
|
||||
this.metroTextBox1.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109)))));
|
||||
this.metroTextBox1.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel);
|
||||
this.metroTextBox1.TextChanged += new System.EventHandler(this.filter_TextChanged);
|
||||
//
|
||||
// metroTabControl1
|
||||
//
|
||||
this.metroTabControl1.Controls.Add(this.Blocks);
|
||||
this.metroTabControl1.Controls.Add(this.Items);
|
||||
this.metroTabControl1.Location = new System.Drawing.Point(36, 60);
|
||||
this.metroTabControl1.Name = "metroTabControl1";
|
||||
this.metroTabControl1.SelectedIndex = 0;
|
||||
this.metroTabControl1.Size = new System.Drawing.Size(192, 167);
|
||||
this.metroTabControl1.TabIndex = 18;
|
||||
this.metroTabControl1.Theme = MetroFramework.MetroThemeStyle.Dark;
|
||||
this.metroTabControl1.UseSelectable = true;
|
||||
//
|
||||
// Blocks
|
||||
//
|
||||
this.Blocks.BackColor = System.Drawing.SystemColors.WindowFrame;
|
||||
this.Blocks.Location = new System.Drawing.Point(4, 38);
|
||||
this.Blocks.Name = "Blocks";
|
||||
this.Blocks.Size = new System.Drawing.Size(184, 125);
|
||||
this.Blocks.TabIndex = 0;
|
||||
this.Blocks.Text = "Blocks";
|
||||
//
|
||||
// Items
|
||||
//
|
||||
this.Items.BackColor = System.Drawing.SystemColors.WindowFrame;
|
||||
this.Items.Location = new System.Drawing.Point(4, 38);
|
||||
this.Items.Name = "Items";
|
||||
this.Items.Size = new System.Drawing.Size(184, 125);
|
||||
this.Items.TabIndex = 0;
|
||||
this.Items.Text = "Items";
|
||||
//
|
||||
// ChangeTile
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(264, 264);
|
||||
this.ControlBox = false;
|
||||
this.Controls.Add(this.metroTabControl1);
|
||||
this.Controls.Add(this.metroTextBox1);
|
||||
this.Controls.Add(this.metroLabel2);
|
||||
this.Controls.Add(this.metroLabel1);
|
||||
this.Controls.Add(this.treeView1);
|
||||
this.Controls.Add(this.treeView2);
|
||||
this.Controls.Add(this.button2);
|
||||
this.Controls.Add(this.button1);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "ChangeTile";
|
||||
this.Resizable = false;
|
||||
this.Style = MetroFramework.MetroColorStyle.Silver;
|
||||
this.Theme = MetroFramework.MetroThemeStyle.Dark;
|
||||
this.metroTabControl1.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
private void MetroTextBox1_TextChanged(object sender, System.EventArgs e)
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
|
||||
#endregion
|
||||
private System.Windows.Forms.Button button1;
|
||||
private System.Windows.Forms.Button button2;
|
||||
private System.Windows.Forms.TreeView treeView1;
|
||||
private System.Windows.Forms.TreeView treeView2;
|
||||
private MetroFramework.Controls.MetroLabel metroLabel1;
|
||||
private MetroFramework.Controls.MetroLabel metroLabel2;
|
||||
private MetroFramework.Controls.MetroTextBox metroTextBox1;
|
||||
private MetroFramework.Controls.MetroTabControl metroTabControl1;
|
||||
private System.Windows.Forms.TabPage Blocks;
|
||||
private System.Windows.Forms.TabPage Items;
|
||||
}
|
||||
}
|
||||
205
MinecraftUSkinEditor/Forms/Utilities/Animation/ChangeTile.cs
Normal file
205
MinecraftUSkinEditor/Forms/Utilities/Animation/ChangeTile.cs
Normal file
@@ -0,0 +1,205 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
using MetroFramework.Forms;
|
||||
|
||||
namespace PckStudio.Forms.Utilities.AnimationEditor
|
||||
{
|
||||
public partial class ChangeTile : MetroForm
|
||||
{
|
||||
string selectedTile = "";
|
||||
public string SelectedTile
|
||||
{
|
||||
get { return selectedTile; }
|
||||
set { selectedTile = value; }
|
||||
}
|
||||
|
||||
bool isItem = false;
|
||||
public bool IsItem
|
||||
{
|
||||
get { return isItem; }
|
||||
}
|
||||
|
||||
List<TreeNode> treeView1Cache = new List<TreeNode>();
|
||||
List<TreeNode> treeView2Cache = new List<TreeNode>();
|
||||
|
||||
private void treeViews_AfterSelect(object sender, TreeViewEventArgs e)
|
||||
{
|
||||
Tuple<string, int> tileData = e.Node.Tag as Tuple<string, int>;
|
||||
Console.WriteLine(tileData.Item1 + " - " + tileData.Item2);
|
||||
selectedTile = tileData.Item1;
|
||||
Console.WriteLine(selectedTile);
|
||||
|
||||
if (e.Node.TreeView == treeView1) isItem = false;
|
||||
if (e.Node.TreeView == treeView2) isItem = true;
|
||||
}
|
||||
|
||||
public ChangeTile()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
ImageList tiles = new ImageList();
|
||||
tiles.ColorDepth = ColorDepth.Depth32Bit;
|
||||
|
||||
for(int i = 1; i < 545; i++)
|
||||
{
|
||||
int row = (i - 1) / 16;
|
||||
int column = (i - 1) % 16;
|
||||
|
||||
Rectangle tileArea = new Rectangle(new Point(column * 16, row * 16), new Size(16, 16));
|
||||
|
||||
Bitmap tileImage = new Bitmap(16, 16);
|
||||
using (Graphics gfx = Graphics.FromImage(tileImage))
|
||||
{
|
||||
gfx.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None;
|
||||
gfx.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
|
||||
gfx.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
|
||||
|
||||
gfx.DrawImage(Properties.Resources.terrain_sheet, new Rectangle(0, 0, 16, 16), tileArea, GraphicsUnit.Pixel);
|
||||
}
|
||||
|
||||
tiles.Images.Add(tileImage);
|
||||
}
|
||||
for (int i = 1; i < 273; i++)
|
||||
{
|
||||
int row = (i - 1) / 16;
|
||||
int column = (i - 1) % 16;
|
||||
|
||||
Rectangle tileArea = new Rectangle(new Point(column * 16, row * 16), new Size(16, 16));
|
||||
|
||||
Bitmap tileImage = new Bitmap(16, 16);
|
||||
using (Graphics gfx = Graphics.FromImage(tileImage))
|
||||
{
|
||||
gfx.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None;
|
||||
gfx.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
|
||||
gfx.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
|
||||
|
||||
gfx.DrawImage(Properties.Resources.items_sheet, new Rectangle(0, 0, 16, 16), tileArea, GraphicsUnit.Pixel);
|
||||
}
|
||||
|
||||
tiles.Images.Add(tileImage);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
Newtonsoft.Json.Linq.JObject tileData = Newtonsoft.Json.Linq.JObject.Parse(Encoding.Default.GetString(Properties.Resources.tileData));
|
||||
|
||||
int i = 0;
|
||||
|
||||
if (tileData["Blocks"] != null)
|
||||
{
|
||||
foreach (Newtonsoft.Json.Linq.JObject content in tileData["Blocks"].Children())
|
||||
{
|
||||
foreach (Newtonsoft.Json.Linq.JProperty prop in content.Properties())
|
||||
{
|
||||
if (!prop.Name.Contains("UNUSED") && !prop.Name.Contains("PART"))
|
||||
{
|
||||
TreeNode tileNode = new TreeNode();
|
||||
tileNode.Text = (string)prop.Value;
|
||||
Tuple<string, int> finalTileData = new Tuple<string, int>(prop.Name, i);
|
||||
tileNode.Tag = finalTileData;
|
||||
tileNode.ImageIndex = i;
|
||||
tileNode.SelectedImageIndex = i;
|
||||
treeView1.Nodes.Add(tileNode);
|
||||
treeView1Cache.Add(tileNode);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (tileData["Items"] != null)
|
||||
{
|
||||
foreach (Newtonsoft.Json.Linq.JObject content in tileData["Items"].Children())
|
||||
{
|
||||
foreach (Newtonsoft.Json.Linq.JProperty prop in content.Properties())
|
||||
{
|
||||
if (!prop.Name.Contains("UNUSED") && !prop.Name.Contains("PART"))
|
||||
{
|
||||
TreeNode tileNode = new TreeNode();
|
||||
tileNode.Text = (string)prop.Value;
|
||||
Tuple<string, int> finalTileData = new Tuple<string, int>(prop.Name, i);
|
||||
tileNode.Tag = finalTileData;
|
||||
tileNode.ImageIndex = i;
|
||||
tileNode.SelectedImageIndex = i;
|
||||
treeView2.Nodes.Add(tileNode);
|
||||
treeView2Cache.Add(tileNode);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
treeView1.ImageList = tiles;
|
||||
treeView2.ImageList = tiles;
|
||||
Blocks.Controls.Add(treeView1);
|
||||
Items.Controls.Add(treeView2);
|
||||
}
|
||||
catch (Newtonsoft.Json.JsonException j_ex)
|
||||
{
|
||||
MessageBox.Show(j_ex.Message, "Error");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void filter_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
// Some code in this function is modified code from this StackOverflow answer - MattNL
|
||||
//https://stackoverflow.com/questions/8260322/filter-a-treeview-with-a-textbox-in-a-c-sharp-winforms-app
|
||||
|
||||
//blocks repainting tree until all objects loaded
|
||||
treeView1.BeginUpdate();
|
||||
treeView1.Nodes.Clear();
|
||||
treeView2.BeginUpdate();
|
||||
treeView2.Nodes.Clear();
|
||||
if (metroTextBox1.Text != string.Empty)
|
||||
{
|
||||
foreach (TreeNode _node in treeView1Cache)
|
||||
{
|
||||
if (_node.Text.ToLower().Contains(metroTextBox1.Text.ToLower()))
|
||||
{
|
||||
treeView1.Nodes.Add((TreeNode)_node.Clone());
|
||||
}
|
||||
}
|
||||
foreach (TreeNode _node in treeView2Cache)
|
||||
{
|
||||
if (_node.Text.ToLower().Contains(metroTextBox1.Text.ToLower()))
|
||||
{
|
||||
treeView2.Nodes.Add((TreeNode)_node.Clone());
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (TreeNode _node in treeView1Cache)
|
||||
{
|
||||
treeView1.Nodes.Add((TreeNode)_node.Clone());
|
||||
}
|
||||
foreach (TreeNode _node in treeView2Cache)
|
||||
{
|
||||
treeView2.Nodes.Add((TreeNode)_node.Clone());
|
||||
}
|
||||
}
|
||||
//enables redrawing tree after all objects have been added
|
||||
treeView1.EndUpdate();
|
||||
treeView2.EndUpdate();
|
||||
}
|
||||
|
||||
private void button2_Click(object sender, EventArgs e)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (String.IsNullOrEmpty(selectedTile)) return;
|
||||
Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
120
MinecraftUSkinEditor/Forms/Utilities/Animation/ChangeTile.resx
Normal file
120
MinecraftUSkinEditor/Forms/Utilities/Animation/ChangeTile.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
@@ -360,18 +360,18 @@
|
||||
<Compile Include="Forms\Additional-Popups\FakeProgressBar.Designer.cs">
|
||||
<DependentUpon>FakeProgressBar.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms\Skins-And-Textures\addAnimatedTexture.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms\Skins-And-Textures\addAnimatedTexture.Designer.cs">
|
||||
<DependentUpon>addAnimatedTexture.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms\Additional-Popups\rename.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms\Additional-Popups\rename.Designer.cs">
|
||||
<DependentUpon>rename.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms\Utilities\Animation\ChangeTile.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms\Utilities\Animation\ChangeTile.Designer.cs">
|
||||
<DependentUpon>ChangeTile.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms\Utilities\Animation\SetBulkSpeed.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
@@ -459,10 +459,10 @@
|
||||
<Compile Include="Forms\Testx-12.Designer.cs">
|
||||
<DependentUpon>Testx-12.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms\Utilities\AnimationEditor.cs">
|
||||
<Compile Include="Forms\Utilities\Animation\AnimationEditor.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms\Utilities\AnimationEditor.Designer.cs">
|
||||
<Compile Include="Forms\Utilities\Animation\AnimationEditor.Designer.cs">
|
||||
<DependentUpon>AnimationEditor.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms\Utilities\Animation\FrameEditor.cs">
|
||||
@@ -471,10 +471,10 @@
|
||||
<Compile Include="Forms\Utilities\Animation\FrameEditor.Designer.cs">
|
||||
<DependentUpon>FrameEditor.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms\Utilities\AudioEditor.cs">
|
||||
<Compile Include="Forms\Utilities\Audio\AudioEditor.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms\Utilities\AudioEditor.Designer.cs">
|
||||
<Compile Include="Forms\Utilities\Audio\AudioEditor.Designer.cs">
|
||||
<DependentUpon>AudioEditor.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms\Utilities\COLEditor.cs">
|
||||
@@ -604,15 +604,12 @@
|
||||
<EmbeddedResource Include="Forms\Additional-Popups\FakeProgressBar.resx">
|
||||
<DependentUpon>FakeProgressBar.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\Skins-And-Textures\addAnimatedTexture.ja.resx">
|
||||
<DependentUpon>addAnimatedTexture.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\Skins-And-Textures\addAnimatedTexture.resx">
|
||||
<DependentUpon>addAnimatedTexture.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\Additional-Popups\rename.resx">
|
||||
<DependentUpon>rename.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\Utilities\Animation\ChangeTile.resx">
|
||||
<DependentUpon>ChangeTile.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\Utilities\Animation\SetBulkSpeed.resx">
|
||||
<DependentUpon>SetBulkSpeed.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
@@ -636,6 +633,7 @@
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\Skins-And-Textures\addnewskin.resx">
|
||||
<DependentUpon>addnewskin.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\Additional-Popups\AddPCKPassword.resx">
|
||||
<DependentUpon>AddPCKPassword.cs</DependentUpon>
|
||||
@@ -684,13 +682,13 @@
|
||||
<EmbeddedResource Include="Forms\Testx-12.resx">
|
||||
<DependentUpon>Testx-12.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\Utilities\AnimationEditor.resx">
|
||||
<EmbeddedResource Include="Forms\Utilities\Animation\AnimationEditor.resx">
|
||||
<DependentUpon>AnimationEditor.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\Utilities\Animation\FrameEditor.resx">
|
||||
<DependentUpon>FrameEditor.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\Utilities\AudioEditor.resx">
|
||||
<EmbeddedResource Include="Forms\Utilities\Audio\AudioEditor.resx">
|
||||
<DependentUpon>AudioEditor.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\Utilities\COLEditor.ja.resx">
|
||||
@@ -785,7 +783,7 @@
|
||||
<DependentUpon>programInfo.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
@@ -818,6 +816,7 @@
|
||||
<None Include="Resources\apps.zip" />
|
||||
<None Include="Resources\binkawin.asi" />
|
||||
<None Include="Resources\settings.ini" />
|
||||
<None Include="Resources\tileData.json" />
|
||||
<None Include="Resources\UntitledSkinPCK.pck" />
|
||||
<None Include="xbox.png" />
|
||||
<None Include="youtube_PNG15.png" />
|
||||
@@ -842,10 +841,15 @@
|
||||
<None Include="Resources\discord.png" />
|
||||
<None Include="Resources\man.png" />
|
||||
<None Include="Resources\external-content.duckduckgo.png" />
|
||||
<None Include="Resources\clock.png" />
|
||||
<None Include="Resources\changeTile.png" />
|
||||
<None Include="Resources\items.png" />
|
||||
<Content Include="Resources\mss32.dll" />
|
||||
<None Include="Resources\sdDownload.png" />
|
||||
<None Include="Resources\Replace.png" />
|
||||
<None Include="Resources\pack.png" />
|
||||
<None Include="Resources\TileData.txt" />
|
||||
<None Include="Resources\terrain.png" />
|
||||
<Content Include="Sin_titulo991.ico" />
|
||||
<Content Include="x64\d3dcompiler_47.dll" />
|
||||
<Content Include="x86\d3dcompiler_47.dll" />
|
||||
|
||||
132
MinecraftUSkinEditor/Properties/Resources.Designer.cs
generated
132
MinecraftUSkinEditor/Properties/Resources.Designer.cs
generated
@@ -19,10 +19,10 @@ namespace PckStudio.Properties {
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
public class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace PckStudio.Properties {
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
public static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PckStudio.Properties.Resources", typeof(Resources).Assembly);
|
||||
@@ -51,7 +51,7 @@ namespace PckStudio.Properties {
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
public static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
@@ -63,7 +63,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Byte[].
|
||||
/// </summary>
|
||||
internal static byte[] apps {
|
||||
public static byte[] apps {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("apps", resourceCulture);
|
||||
return ((byte[])(obj));
|
||||
@@ -73,7 +73,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap ARROW {
|
||||
public static System.Drawing.Bitmap ARROW {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ARROW", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -83,7 +83,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap bg1 {
|
||||
public static System.Drawing.Bitmap bg1 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("bg1", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -93,7 +93,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap bg2 {
|
||||
public static System.Drawing.Bitmap bg2 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("bg2", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -103,7 +103,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap BINKA_ICON {
|
||||
public static System.Drawing.Bitmap BINKA_ICON {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("BINKA_ICON", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -113,7 +113,27 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap Del {
|
||||
public static System.Drawing.Bitmap changeTile {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("changeTile", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
public static System.Drawing.Bitmap clock {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("clock", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
public static System.Drawing.Bitmap Del {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Del", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -123,7 +143,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap discord {
|
||||
public static System.Drawing.Bitmap discord {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("discord", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -133,7 +153,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap ExportFile {
|
||||
public static System.Drawing.Bitmap ExportFile {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ExportFile", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -143,7 +163,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap external_content_duckduckgo {
|
||||
public static System.Drawing.Bitmap external_content_duckduckgo {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("external-content.duckduckgo", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -153,7 +173,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap IMAGE_ICON {
|
||||
public static System.Drawing.Bitmap IMAGE_ICON {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("IMAGE_ICON", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -163,7 +183,17 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap LOC_ICON {
|
||||
public static System.Drawing.Bitmap items_sheet {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("items_sheet", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
public static System.Drawing.Bitmap LOC_ICON {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("LOC_ICON", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -173,7 +203,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap man {
|
||||
public static System.Drawing.Bitmap man {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("man", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -183,7 +213,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap More2 {
|
||||
public static System.Drawing.Bitmap More2 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("More2", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -193,7 +223,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap MROE {
|
||||
public static System.Drawing.Bitmap MROE {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("MROE", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -203,7 +233,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap NoImageFound {
|
||||
public static System.Drawing.Bitmap NoImageFound {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("NoImageFound", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -213,7 +243,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap pack {
|
||||
public static System.Drawing.Bitmap pack {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("pack", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -223,7 +253,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap PCK_ICON {
|
||||
public static System.Drawing.Bitmap PCK_ICON {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("PCK_ICON", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -233,7 +263,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap pckCenterHeader {
|
||||
public static System.Drawing.Bitmap pckCenterHeader {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("pckCenterHeader", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -243,7 +273,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap pckClosed {
|
||||
public static System.Drawing.Bitmap pckClosed {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("pckClosed", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -253,7 +283,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap pckDrop {
|
||||
public static System.Drawing.Bitmap pckDrop {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("pckDrop", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -263,7 +293,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap pckOpen {
|
||||
public static System.Drawing.Bitmap pckOpen {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("pckOpen", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -273,7 +303,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap power3 {
|
||||
public static System.Drawing.Bitmap power3 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("power3", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -283,7 +313,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap ps3 {
|
||||
public static System.Drawing.Bitmap ps3 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ps3", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -293,7 +323,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap Replace {
|
||||
public static System.Drawing.Bitmap Replace {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Replace", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -303,7 +333,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap sdDownload {
|
||||
public static System.Drawing.Bitmap sdDownload {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("sdDownload", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -314,7 +344,7 @@ namespace PckStudio.Properties {
|
||||
/// Looks up a localized string similar to http://nobledez.ga/
|
||||
///http://www.pckstudio.xyz/.
|
||||
/// </summary>
|
||||
internal static string settings {
|
||||
public static string settings {
|
||||
get {
|
||||
return ResourceManager.GetString("settings", resourceCulture);
|
||||
}
|
||||
@@ -323,7 +353,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap Splash {
|
||||
public static System.Drawing.Bitmap Splash {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Splash", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -333,7 +363,27 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap turn_off__1_1 {
|
||||
public static System.Drawing.Bitmap terrain_sheet {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("terrain_sheet", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Byte[].
|
||||
/// </summary>
|
||||
public static byte[] tileData {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("tileData", resourceCulture);
|
||||
return ((byte[])(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
public static System.Drawing.Bitmap turn_off__1_1 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("turn-off (1)1", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -343,7 +393,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Byte[].
|
||||
/// </summary>
|
||||
internal static byte[] UntitledSkinPCK {
|
||||
public static byte[] UntitledSkinPCK {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("UntitledSkinPCK", resourceCulture);
|
||||
return ((byte[])(obj));
|
||||
@@ -353,7 +403,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap wii_u_games_tool {
|
||||
public static System.Drawing.Bitmap wii_u_games_tool {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("wii-u-games-tool", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -363,7 +413,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap wiiu {
|
||||
public static System.Drawing.Bitmap wiiu {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("wiiu", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -373,7 +423,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap xbox {
|
||||
public static System.Drawing.Bitmap xbox {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("xbox", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -383,7 +433,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap youtube_PNG15 {
|
||||
public static System.Drawing.Bitmap youtube_PNG15 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("youtube_PNG15", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -393,7 +443,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap youtube_PNG151 {
|
||||
public static System.Drawing.Bitmap youtube_PNG151 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("youtube_PNG151", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -403,7 +453,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap youtube_PNG152 {
|
||||
public static System.Drawing.Bitmap youtube_PNG152 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("youtube_PNG152", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -413,7 +463,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap ZUnknown {
|
||||
public static System.Drawing.Bitmap ZUnknown {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ZUnknown", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
@@ -423,7 +473,7 @@ namespace PckStudio.Properties {
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap ZZFolder {
|
||||
public static System.Drawing.Bitmap ZZFolder {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ZZFolder", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
|
||||
@@ -157,12 +157,18 @@
|
||||
<data name="ExportFile" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ExportFile.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="pack" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\pack.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Del" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Del.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Splash" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Splash.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="external-content.duckduckgo" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\external-content.duckduckgo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="pckOpen" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\pckOpen.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
@@ -190,6 +196,12 @@
|
||||
<data name="pckClosed" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\pckClosed.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="UntitledSkinPCK" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\UntitledSkinPCK.pck;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="apps" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\apps.zip;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="ZUnknown" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\iconImageList\ZUnknown.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
@@ -199,6 +211,9 @@
|
||||
<data name="BINKA_ICON" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\iconImageList\BINKA ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="clock" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\clock.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="bg1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\bg1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
@@ -208,28 +223,25 @@
|
||||
<data name="xbox" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\xbox.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="settings" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\settings.ini;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
||||
</data>
|
||||
<data name="ZZFolder" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\iconImageList\ZZFolder.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="discord" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\discord.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="external-content.duckduckgo" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\external-content.duckduckgo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="changeTile" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\changeTile.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="apps" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\apps.zip;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<data name="items_sheet" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\items.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="pack" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\pack.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="terrain_sheet" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\terrain.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="settings" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\settings.ini;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
||||
<data name="tileData" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\tileData.json;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="UntitledSkinPCK" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\UntitledSkinPCK.pck;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<!--data name="settings1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\bin\Release\settings.ini;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
||||
</data-->
|
||||
</root>
|
||||
BIN
MinecraftUSkinEditor/Resources/changeTile.png
Normal file
BIN
MinecraftUSkinEditor/Resources/changeTile.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 568 B |
BIN
MinecraftUSkinEditor/Resources/clock.png
Normal file
BIN
MinecraftUSkinEditor/Resources/clock.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 209 B |
BIN
MinecraftUSkinEditor/Resources/items.png
Normal file
BIN
MinecraftUSkinEditor/Resources/items.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 140 KiB |
BIN
MinecraftUSkinEditor/Resources/terrain.png
Normal file
BIN
MinecraftUSkinEditor/Resources/terrain.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 189 KiB |
824
MinecraftUSkinEditor/Resources/tileData.json
Normal file
824
MinecraftUSkinEditor/Resources/tileData.json
Normal file
@@ -0,0 +1,824 @@
|
||||
{
|
||||
"COMMENT_1": "Tile data reearch by MattNL",
|
||||
"COMMENT_2": "JSON conversion by PhoenixARC",
|
||||
"Blocks": [
|
||||
{ "grass_top": "Grass Block (Top)" },
|
||||
{ "stone": "Stone" },
|
||||
{ "dirt": "Dirt" },
|
||||
{ "grass_side": "Grass Block (Side)" },
|
||||
{ "planks_oak": "Oak Planks" },
|
||||
{ "stoneslab_side": "Stone Slab (Side)" },
|
||||
{ "stoneslab_top": "Stone Slab (Top)" },
|
||||
{ "brick": "Bricks" },
|
||||
{ "tnt_side": "TNT (Side)" },
|
||||
{ "tnt_top": "TNT (Top)" },
|
||||
{ "tnt_bottom": "TNT (Bottom)" },
|
||||
{ "web": "Cobweb" },
|
||||
{ "flower_rose": "Poppy" },
|
||||
{ "flower_dandelion": "Dandelion" },
|
||||
{ "portal": "Nether Portal" },
|
||||
{ "sapling": "Oak Sapling" },
|
||||
{ "cobblestone": "Cobblestone" },
|
||||
{ "bedrock": "Bedrock" },
|
||||
{ "sand": "Sand" },
|
||||
{ "gravel": "Gravel" },
|
||||
{ "log_oak": "Oak Log (Side)" },
|
||||
{ "log_oak_top": "Oak Log (Top)" },
|
||||
{ "iron_block": "Iron Block" },
|
||||
{ "gold_block": "Gold Block" },
|
||||
{ "diamond_block": "Diamond Block" },
|
||||
{ "emerald_block": "Emerald Block" },
|
||||
{ "redstone_block": "Redstone Block" },
|
||||
{ "dropper_front_horizontal": "Dropper (Front)" },
|
||||
{ "mushroom_red": "Red Mushroom" },
|
||||
{ "mushroom_brown": "Brown Mushroom" },
|
||||
{ "sapling_jungle": "Jungle Sapling" },
|
||||
{ "fire_0": "Fire (Layer 1)" },
|
||||
{ "gold_ore": "Gold Ore" },
|
||||
{ "iron_ore": "Iron Ore" },
|
||||
{ "coal_ore": "Coal Ore" },
|
||||
{ "bookshelf": "Bookshelf" },
|
||||
{ "cobblestone_mossy": "Moss Stone" },
|
||||
{ "obsidian": "Obsidian" },
|
||||
{ "grass_side_overlay": "Grass Side (Overlay)" },
|
||||
{ "tallgrass": "Tall Grass" },
|
||||
{ "dispenser_front_vertical": "Dispenser (Vertical) (Front)" },
|
||||
{ "beacon": "Beacon" },
|
||||
{ "dropper_front_vertical": "Dropper (Vertical) (Front)" },
|
||||
{ "workbench_top": "Crafting Table (Top)" },
|
||||
{ "furnace_front": "Furnace (Front)" },
|
||||
{ "furnace_side": "Furnace (Side)" },
|
||||
{ "dispenser_front": "Dispenser (Front)" },
|
||||
{ "fire_1": "Fire (Layer 2)" },
|
||||
{ "sponge": "Sponge" },
|
||||
{ "glass": "Glass" },
|
||||
{ "diamond_ore": "Diamond Ore" },
|
||||
{ "redstone_ore": "Redstone Ore" },
|
||||
{ "leaves": "Oak Leaves" },
|
||||
{ "leaves_opaque": "Oak Leaves (Opaque)" },
|
||||
{ "stonebrick": "Stone Bricks" },
|
||||
{ "deadbush": "Dead Bush" },
|
||||
{ "fern": "Fern" },
|
||||
{ "daylight_detector_top": "Daylight Sensor (Top)" },
|
||||
{ "daylight_detector_side": "Daylight Sensor (Side)" },
|
||||
{ "workbench_front": "Crafting Table (Front)" },
|
||||
{ "workbench_side": "Crafting Table (Side)" },
|
||||
{ "furnace_front_lit": "Furnace (Lit) (Front)" },
|
||||
{ "furnace_top": "Furnace (Top)" },
|
||||
{ "sapling_spruce": "Spruce Sapling" },
|
||||
{ "wool_colored_white": "White Wool" },
|
||||
{ "mob_spawner": "Monster Spawner" },
|
||||
{ "snow": "Snow" },
|
||||
{ "ice": "Ice" },
|
||||
{ "snow_side": "Grass Block (Snow) (Side)" },
|
||||
{ "cactus_top": "Cactus (Top)" },
|
||||
{ "cactus_side": "Cactus (Side)" },
|
||||
{ "cactus_bottom": "Cactus (Bottom)" },
|
||||
{ "clay": "Clay" },
|
||||
{ "reeds": "Sugar Canes" },
|
||||
{ "jukebox_side": "Jukebox (Side)" },
|
||||
{ "jukebox_top": "Jukebox (Top)" },
|
||||
{ "waterlily": "Lily Pad" },
|
||||
{ "mycel_side": "Mycelium (Side)" },
|
||||
{ "mycel_top": "Mycelium (Top)" },
|
||||
{ "sapling_birch": "Birch Sapling" },
|
||||
{ "torch": "Torch" },
|
||||
{ "door_wood_upper": "Oak Door (Upper)" },
|
||||
{ "door_iron_upper": "Iron Door (Upper)" },
|
||||
{ "ladder": "Ladder" },
|
||||
{ "trapdoor": "Oak Trapdoor" },
|
||||
{ "iron_bars": "Iron Bars" },
|
||||
{ "farmland_wet": "Farmland (Wet)" },
|
||||
{ "farmland_dry": "Farmland" },
|
||||
{ "crops_0": "Wheat (Stage 1)" },
|
||||
{ "crops_1": "Wheat (Stage 2)" },
|
||||
{ "crops_2": "Wheat (Stage 3)" },
|
||||
{ "crops_3": "Wheat (Stage 4)" },
|
||||
{ "crops_4": "Wheat (Stage 5)" },
|
||||
{ "crops_5": "Wheat (Stage 6)" },
|
||||
{ "crops_6": "Wheat (Stage 7)" },
|
||||
{ "crops_7": "Wheat (Stage 8)" },
|
||||
{ "lever": "Lever" },
|
||||
{ "door_wood_lower": "Oak Door (Lower)" },
|
||||
{ "door_iron_lower": "Iron Door (Lower)" },
|
||||
{ "redstone_torch_on": "Redstone Torch" },
|
||||
{ "stonebrick_mossy": "Mossy Stone Bricks" },
|
||||
{ "stonebrick_cracked": "Cracked Stone Bricks" },
|
||||
{ "pumpkin_top": "Pumpkin (Top)" },
|
||||
{ "netherrack": "Netherrack" },
|
||||
{ "soul_sand": "Soul Sand" },
|
||||
{ "glowstone": "Glowstone" },
|
||||
{ "piston_top_sticky": "Stick Piston (Top)" },
|
||||
{ "piston_top": "Piston (Top)" },
|
||||
{ "piston_side": "Piston (Side)" },
|
||||
{ "piston_bottom": "Piston (Bottom)" },
|
||||
{ "piston_inner_top": "Piston (Inside)" },
|
||||
{ "pumpkin_stem": "Stem" },
|
||||
{ "rail_normal_turned": "Rail (Turned)" },
|
||||
{ "wool_colored_black": "Black Wool" },
|
||||
{ "wool_colored_gray": "Gray Wool" },
|
||||
{ "redstone_torch_off": "Redstone Torch (Off)" },
|
||||
{ "log_spruce": "Spruce Log (Side)" },
|
||||
{ "log_birch": "Birch Log (Side)" },
|
||||
{ "pumpkin_side": "Pumpkin (Side)" },
|
||||
{ "pumpkin_face_off": "Carved Pumpkin (Front)" },
|
||||
{ "pumpkin_face_on": "Jack o'Lantern (Front)" },
|
||||
{ "cake_top": "Cake (Top)" },
|
||||
{ "cake_side": "Cake (Side)" },
|
||||
{ "cake_inner": "Cake (Inside)" },
|
||||
{ "cake_bottom": "Cake (Bottom)" },
|
||||
{ "mushroom_block_skin_red": "Mushroom Block (Red)" },
|
||||
{ "mushroom_block_skin_brown": "Mushroom Block (Brown)" },
|
||||
{ "stem_bent": "Stem (Attached)" },
|
||||
{ "rail_normal": "Rail" },
|
||||
{ "wool_colored_red": "Red Wool" },
|
||||
{ "wool_colored_pink": "Pink Wool" },
|
||||
{ "repeater": "Repeater" },
|
||||
{ "leaves_spruce": "Spruce Leaves" },
|
||||
{ "leaves_spruce_opaque": "Spruce Leaves (Opaque)" },
|
||||
{ "UNUSED_conduit_top": "" },
|
||||
{ "turtle_egg_hatch_0": "Turtle Egg (Stage 1)" },
|
||||
{ "melon_side": "Melon (Side)" },
|
||||
{ "melon_top": "Melon (Top)" },
|
||||
{ "cauldron_top": "Cauldron (Top)" },
|
||||
{ "cauldron_inner": "Cauldron (Inside)" },
|
||||
{ "sponge_wet": "Sponge (Wet)" },
|
||||
{ "mushroom_block_skin_stem": "Mushroom Block (Stem)" },
|
||||
{ "mushroom_block_inside": "Mushroom Block (Inside)" },
|
||||
{ "vine": "Vine" },
|
||||
{ "lapis_block": "Lapis Lazuli Block" },
|
||||
{ "wool_colored_green": "Green Wool" },
|
||||
{ "wool_colored_lime": "Lime Wool" },
|
||||
{ "repeater_on": "Redstone Repeater (On)" },
|
||||
{ "glass_pane_top": "Glass Pane (Top)" },
|
||||
{ "UNUSED_CHEST_TOP": "" },
|
||||
{ "UNUSED_ENDER_CHEST_TOP": "" },
|
||||
{ "turtle_egg_hatch_1": "Turtle Egg (Stage 2)" },
|
||||
{ "turtle_egg_hatch_2": "Turtle Egg (Stage 3)" },
|
||||
{ "log_jungle": "Jungle Log (Side)" },
|
||||
{ "cauldron_side": "Cauldron (Side)" },
|
||||
{ "cauldron_bottom": "Cauldron (Bottom)" },
|
||||
{ "brewing_stand_base": "Brewing Stand (Base)" },
|
||||
{ "brewing_stand": "Brewing Stand" },
|
||||
{ "endframe_top": "End Portal Frame (Top)" },
|
||||
{ "endframe_side": "End Portal Frame (Side)" },
|
||||
{ "lapis_ore": "Lapis Lazuli Ore" },
|
||||
{ "wool_colored_brown": "Brown Wool" },
|
||||
{ "wool_colored_yellow": "Yellow Wool" },
|
||||
{ "rail_golden": "Powered Rail" },
|
||||
{ "redstone_dust_cross": "Redstone Dust (Cross)" },
|
||||
{ "redstone_dust_line": "Redstone Dust (Line)" },
|
||||
{ "enchantment_top": "Enchantment Table (Top)" },
|
||||
{ "dragon_egg": "Dragon Egg" },
|
||||
{ "cocoa_2": "Cocoa (Stage 2)" },
|
||||
{ "cocoa_1": "Cocoa (Stage 1)" },
|
||||
{ "cocoa_0": "Cocoa (Stage 0)" },
|
||||
{ "emerald_ore": "Emerald Ore" },
|
||||
{ "trip_wire_source": "Tripwire Hook" },
|
||||
{ "trip_wire": "Tripwire" },
|
||||
{ "endframe_eye": "End Portal Frame (Eye)" },
|
||||
{ "end_stone": "End Stone" },
|
||||
{ "sandstone_top": "Sandstone (Top)" },
|
||||
{ "wool_colored_blue": "Blue Wool" },
|
||||
{ "wool_colored_light_blue": "Light Blue Wool" },
|
||||
{ "powered_rail_on": "Powered Rail (On)" },
|
||||
{ "redstone_dust_cross_overlay": "Redstone Dust (Cross) (Overlay)" },
|
||||
{ "redstone_dust_line_overlay": "Redstone Dust (Line) (Overlay)" },
|
||||
{ "enchantment_side": "Enchantment Table (Side)" },
|
||||
{ "enchantment_bottom": "Enchantment Table (Bottom)" },
|
||||
{ "diamondRing": "Diamond Score Ring" },
|
||||
{ "itemframe_back": "Item Frame" },
|
||||
{ "flower_pot": "Flower Pot" },
|
||||
{ "comparator_off": "Redstone Comparator" },
|
||||
{ "comparator_on": "Redstone Comparator (On)" },
|
||||
{ "rail_activator": "Activator Rail" },
|
||||
{ "rail_activator_powered": "Activator Rail (On)" },
|
||||
{ "quartz_ore": "Quartz Ore" },
|
||||
{ "sandstone_side": "Sandstone (Side)" },
|
||||
{ "wool_colored_purple": "Purple Wool" },
|
||||
{ "wool_colored_magenta": "Magenta Wool" },
|
||||
{ "detectorRail": "Detector Rail" },
|
||||
{ "leaves_jungle": "Jungle Leaves" },
|
||||
{ "leaves_jungle_opaque": "Jungle Leaves (Opaque)" },
|
||||
{ "planks_spruce": "Spruce Planks" },
|
||||
{ "planks_jungle": "Jungle Planks" },
|
||||
{ "carrots_stage_0": "Carrots (Stage 1)" },
|
||||
{ "carrots_stage_1": "Carrots (Stage 2)" },
|
||||
{ "carrots_stage_2": "Carrots (Stage 3)" },
|
||||
{ "carrots_stage_3": "Carrots (Stage 4)" },
|
||||
{ "slime": "Slime Block" },
|
||||
{ "water": "Water" },
|
||||
{ "water_flow": "Flowing Water" },
|
||||
{ "water_flow_PART2": "" },
|
||||
{ "sandstone_bottom": "Sandstone (Bottom)" },
|
||||
{ "wool_colored_cyan": "Cyan Wool" },
|
||||
{ "wool_colored_orange": "Orange Wool" },
|
||||
{ "redstoneLight": "Redstone Lamp" },
|
||||
{ "redstoneLight_lit": "Redstone Lamp (On)" },
|
||||
{ "stonebrick_carved": "Chiseled Stone Bricks" },
|
||||
{ "planks_birch": "Birch Planks" },
|
||||
{ "anvil_base": "Anvil (Base)" },
|
||||
{ "anvil_top_damaged_1": "Anvil (Slightly Damaged) (Top)" },
|
||||
{ "quartz_block_chiseled_top": "Chiseled Quartz Block (Top)" },
|
||||
{ "quartz_block_lines_top": "Pillar Quartz Block (Top)" },
|
||||
{ "quartz_block_top": "Quartz Block (Top)" },
|
||||
{ "hopper_outside": "Hopper (Side)" },
|
||||
{ "detectorRail_on": "Detector Rail (On)" },
|
||||
{ "water_flow_PART3": "" },
|
||||
{ "water_flow_PART4": "" },
|
||||
{ "nether_brick": "Nether Brick" },
|
||||
{ "wool_colored_silver": "Light Gray Wool" },
|
||||
{ "nether_wart_stage_0": "Nether Wart (Stage 1)" },
|
||||
{ "nether_wart_stage_1": "Nether Wart (Stage 2)" },
|
||||
{ "nether_wart_stage_2": "Nether Wart (Stage 3)" },
|
||||
{ "sandstone_carved": "Chiseled Sandstone" },
|
||||
{ "sandstone_smooth": "Smooth Sandstone" },
|
||||
{ "anvil_top": "Anvil (Top)" },
|
||||
{ "anvil_top_damaged_2": "Anvil (Very Damaged) (Top)" },
|
||||
{ "quartz_block_chiseled": "Chiseled Quartz Block (Side)" },
|
||||
{ "quartz_block_lines": "Pillar Quartz Block (Side)" },
|
||||
{ "quartz_block_side": "Quartz Block (Side)" },
|
||||
{ "hopper_inside": "Hopper (Inside)" },
|
||||
{ "lava": "Lava" },
|
||||
{ "lava_flow": "Flowing Lava" },
|
||||
{ "lava_flow_PART2": "" },
|
||||
{ "destroy_0": "Destroy (Stage 1)" },
|
||||
{ "destroy_1": "Destroy (Stage 2)" },
|
||||
{ "destroy_2": "Destroy (Stage 3)" },
|
||||
{ "destroy_3": "Destroy (Stage 4)" },
|
||||
{ "destroy_4": "Destroy (Stage 5)" },
|
||||
{ "destroy_5": "Destroy (Stage 6)" },
|
||||
{ "destroy_6": "Destroy (Stage 7)" },
|
||||
{ "destroy_7": "Destroy (Stage 8)" },
|
||||
{ "destroy_8": "Destroy (Stage 9)" },
|
||||
{ "destroy_9": "Destroy (Stage 10)" },
|
||||
{ "hay_block_side": "Hay Block (Side)" },
|
||||
{ "quartz_block_bottom": "Quartz Block (Bottom)" },
|
||||
{ "hopper_top": "Hopper (Top)" },
|
||||
{ "hay_block_top": "Hay Block (Top)" },
|
||||
{ "lava_flow_PART3": "" },
|
||||
{ "lava_flow_PART4": "" },
|
||||
{ "coal_block": "Coal Block" },
|
||||
{ "hardened_clay": "Terracotta" },
|
||||
{ "noteblock": "Note Block" },
|
||||
{ "stone_andesite": "Andesite" },
|
||||
{ "stone_andesite_smooth": "Smooth Andesite" },
|
||||
{ "stone_diorite": "Diorite" },
|
||||
{ "stone_diorite_smooth": "Smooth Diorite" },
|
||||
{ "stone_granite": "Granite" },
|
||||
{ "stone_granite_smooth": "Smooth Granite" },
|
||||
{ "potatoes_stage_0": "Potatoes (Stage 1)" },
|
||||
{ "potatoes_stage_1": "Potatoes (Stage 2)" },
|
||||
{ "potatoes_stage_2": "Potatoes (Stage 3)" },
|
||||
{ "potatoes_stage_3": "Potatoes (Stage 4)" },
|
||||
{ "log_spruce_top": "Spruce Log (Top)" },
|
||||
{ "log_jungle_top": "Jungle Log (Top)" },
|
||||
{ "log_birch_top": "Birch Log (Top)" },
|
||||
{ "hardened_clay_stained_black": "Black Terracotta" },
|
||||
{ "hardened_clay_stained_blue": "Blue Terracotta" },
|
||||
{ "hardened_clay_stained_brown": "Brown Terracotta" },
|
||||
{ "hardened_clay_stained_cyan": "Cyan Terracotta" },
|
||||
{ "hardened_clay_stained_gray": "Gray Terracotta" },
|
||||
{ "hardened_clay_stained_green": "Green Terracotta" },
|
||||
{ "hardened_clay_stained_light_blue": "Light Blue Terracotta" },
|
||||
{ "hardened_clay_stained_lime": "Lime Terracotta" },
|
||||
{ "hardened_clay_stained_magenta": "Magenta Terracotta" },
|
||||
{ "hardened_clay_stained_orange": "Orange Terracotta" },
|
||||
{ "hardened_clay_stained_pink": "Pink Terracotta" },
|
||||
{ "hardened_clay_stained_purple": "Purple Terracotta" },
|
||||
{ "hardened_clay_stained_red": "Red Terracotta" },
|
||||
{ "hardened_clay_stained_silver": "Light Gray Terracotta" },
|
||||
{ "hardened_clay_stained_white": "White Terracotta" },
|
||||
{ "hardened_clay_stained_yellow": "Yellow Terracotta" },
|
||||
{ "glass_black": "Black Glass" },
|
||||
{ "glass_blue": "Blue Glass" },
|
||||
{ "glass_brown": "Brown Glass" },
|
||||
{ "glass_cyan": "Cyan Glass" },
|
||||
{ "glass_gray": "Gray Glass" },
|
||||
{ "glass_green": "Green Glass" },
|
||||
{ "glass_light_blue": "Light Blue Glass" },
|
||||
{ "glass_lime": "Lime Glass" },
|
||||
{ "glass_magenta": "Magenta Glass" },
|
||||
{ "glass_orange": "Orange Glass" },
|
||||
{ "glass_pink": "Pink Glass" },
|
||||
{ "glass_purple": "Purple Glass" },
|
||||
{ "glass_red": "Red Glass" },
|
||||
{ "glass_silver": "Light Gray Glass" },
|
||||
{ "glass_white": "White Glass" },
|
||||
{ "glass_yellow": "Yellow Glass" },
|
||||
{ "glass_pane_black": "Black Glass Pane" },
|
||||
{ "glass_pane_blue": "Blue Glass Pane" },
|
||||
{ "glass_pane_brown": "Brown Glass Pane" },
|
||||
{ "glass_pane_cyan": "Cyan Glass Pane" },
|
||||
{ "glass_pane_gray": "Gray Glass Pane" },
|
||||
{ "glass_pane_green": "Green Glass Pane" },
|
||||
{ "glass_pane_light_blue": "Light Blue Glass Pane" },
|
||||
{ "glass_pane_lime": "Lime Glass Pane" },
|
||||
{ "glass_pane_magenta": "Magenta Glass Pane" },
|
||||
{ "glass_pane_orange": "Orange Glass Pane" },
|
||||
{ "glass_pane_pink": "Pink Glass Pane" },
|
||||
{ "glass_pane_purple": "Purple Glass Pane" },
|
||||
{ "glass_pane_red": "Red Glass Pane" },
|
||||
{ "glass_pane_silver": "Light Gray Glass Pane" },
|
||||
{ "glass_pane_white": "White Glass Pane" },
|
||||
{ "glass_pane_yellow": "Yellow Glass Pane" },
|
||||
{ "double_plant_fern_top": "Large Fern (Top)" },
|
||||
{ "double_plant_grass_top": "Double Tall Grass (Top)" },
|
||||
{ "double_plant_paeonia_top": "Peony (Top)" },
|
||||
{ "double_plant_rose_top": "Rose Bush (Top)" },
|
||||
{ "double_plant_syringa_top": "Lilac (Top)" },
|
||||
{ "flower_tulip_orange": "Orange Tulip" },
|
||||
{ "double_plant_sunflower_top": "Sunflower (Top)" },
|
||||
{ "double_plant_sunflower_front": "Sunflower (Front)" },
|
||||
{ "log_acacia": "Acacia Log (Side)" },
|
||||
{ "log_acacia_top": "Acacia Log (Top)" },
|
||||
{ "planks_acacia": "Acacia Planks" },
|
||||
{ "leaves_acacia": "Acacia Leaves" },
|
||||
{ "leaves_acacia_fast": "Acacia Leaves (Opaque)" },
|
||||
{ "prismarine_bricks": "Prismarine Bricks" },
|
||||
{ "red_sand": "Red Sand" },
|
||||
{ "red_sandstone_top": "Red Sandstone (Top)" },
|
||||
{ "double_plant_fern_bottom": "Large Fern (Bottom)" },
|
||||
{ "double_plant_grass_bottom": "Double Tall Grass (Bottom)" },
|
||||
{ "double_plant_paeonia_bottom": "Peony (Bottom)" },
|
||||
{ "double_plant_rose_bottom": "Rose Bush (Bottom)" },
|
||||
{ "double_plant_syringa_bottom": "Lilac (Bottom)" },
|
||||
{ "flower_tulip_pink": "Pink Tulip" },
|
||||
{ "double_plant_sunflower_bottom": "Sunflower (Bottom)" },
|
||||
{ "double_plant_sunflower_back": "Sunflower (Back)" },
|
||||
{ "log_big_oak": "Dark Oak Log (Side)" },
|
||||
{ "log_big_oak_top": "Dark Oak Log (Top)" },
|
||||
{ "planks_big_oak": "Dark Oak Planks" },
|
||||
{ "leaves_big_oak": "Dark Oak Leaves" },
|
||||
{ "leaves_big_oak_fast": "Dark Oak Leaves (Opaque)" },
|
||||
{ "prismarine_dark": "Dark Prismarine" },
|
||||
{ "red_sandstone_bottom": "Red Sandstone (Bottom)" },
|
||||
{ "red_sandstone_normal": "Red Sandstone (Side)" },
|
||||
{ "flower_allium": "Allium" },
|
||||
{ "flower_blue_orchid": "Blue Orchid" },
|
||||
{ "flower_houstonia": "Azure Bluet" },
|
||||
{ "flower_oxeye_daisy": "Oxeye Daisy" },
|
||||
{ "flower_tulip_red": "Red Tulip" },
|
||||
{ "flower_tulip_white": "White Tulip" },
|
||||
{ "sapling_acacia": "Acacia Sapling" },
|
||||
{ "sapling_roofed_oak": "Dark Oak Sapling" },
|
||||
{ "coarse_dirt": "Coarse Dirt" },
|
||||
{ "dirt_podzol_side": "Podzol (Side)" },
|
||||
{ "dirt_podzol_top": "Podzol (Top)" },
|
||||
{ "leaves_birch": "Birch Leaves" },
|
||||
{ "leaves_birch_fast": "Birch Leaves (Opaque)" },
|
||||
{ "prismarine_rough": "Prismarine" },
|
||||
{ "red_sandstone_carved": "Chiseled Red Sandstone" },
|
||||
{ "red_sandstone_smooth": "Smooth Red Standstone" },
|
||||
{ "door_acacia_upper": "Acacia Door (Upper)" },
|
||||
{ "door_birch_upper": "Birch Door (Upper)" },
|
||||
{ "door_dark_oak_upper": "Dark Oak Door (Upper)" },
|
||||
{ "door_jungle_upper": "Jungle Door (Upper)" },
|
||||
{ "door_spruce_upper": "Spruce Door (Upper)" },
|
||||
{ "chorus_flower": "Chorus Flower" },
|
||||
{ "chorus_flower_dead": "Chorus Flower (Dead)" },
|
||||
{ "chorus_plant": "Chorus Plant" },
|
||||
{ "end_bricks": "End Bricks" },
|
||||
{ "grass_path_side": "Grass Path (Side)" },
|
||||
{ "grass_path_top": "Grass Path (Top)" },
|
||||
{ "barrier": "Barrier" },
|
||||
{ "ice_packed": "Packed Ice" },
|
||||
{ "sea_lantern": "Sea Lantern" },
|
||||
{ "daylight_detector_inverted_top": "Daylight Sensor (Inverted) (Top)" },
|
||||
{ "iron_trapdoor": "Iron Trapdoor" },
|
||||
{ "door_acacia_lower": "Acacia Door (Lower)" },
|
||||
{ "door_birch_lower": "Birch Door (Lower)" },
|
||||
{ "door_dark_oak_lower": "Dark Door (Lower)" },
|
||||
{ "door_jungle_lower": "Jungle Door (Lower)" },
|
||||
{ "door_spruce_lower": "Spruce Door (Lower)" },
|
||||
{ "purpur_block": "Purpur Block" },
|
||||
{ "purpur_pillar": "Purpur Pillar (Side)" },
|
||||
{ "purpur_pillar_top": "Purpur Pillar (Top)" },
|
||||
{ "end_rod": "End Rod" },
|
||||
{ "magma": "Magma Block" },
|
||||
{ "nether_wart_block": "Nether Wart Block" },
|
||||
{ "red_nether_brick": "Red Nether Brick" },
|
||||
{ "frosted_ice_0": "Frosted Ice (Stage 1)" },
|
||||
{ "frosted_ice_1": "Frosted Ice (Stage 2)" },
|
||||
{ "frosted_ice_2": "Frosted Ice (Stage 3)" },
|
||||
{ "frosted_ice_3": "Frosted Ice (Stage 4)" },
|
||||
{ "beetroots_stage_0": "Beetroots (Stage 1)" },
|
||||
{ "beetroots_stage_1": "Beetroots (Stage 2)" },
|
||||
{ "beetroots_stage_2": "Beetroots (Stage 3)" },
|
||||
{ "beetroots_stage_3": "Beetroots (Stage 4)" },
|
||||
{ "chain_command_block_back": "Chain Command Block (Back)" },
|
||||
{ "chain_command_block_conditional": "Chain Command Block (Conditional) (Side)" },
|
||||
{ "chain_command_block_front": "Chain Command Block (Front)" },
|
||||
{ "chain_command_block_side": "Chain Command Block (Side)" },
|
||||
{ "command_block_back": "Command Block (Back)" },
|
||||
{ "command_block_conditional": "Command Block (Conditional) (Side)" },
|
||||
{ "command_block_front": "Command Block (Front)" },
|
||||
{ "command_block_side": "Command Block (Side)" },
|
||||
{ "repeating_command_block_back": "Repeating Command Block (Back)" },
|
||||
{ "repeating_command_block_conditional": "Repeating Command Block (Conditional) (Side)" },
|
||||
{ "repeating_command_block_front": "Repeating Command Block (Front)" },
|
||||
{ "repeating_command_block_side": "Repeating Command Block (Side)" },
|
||||
{ "bone_block_side": "Bone Block (Side)" },
|
||||
{ "bone_block_top": "Bone Block (Top)" },
|
||||
{ "UNUSED_STEM": "" },
|
||||
{ "UNUSED_ATTACHED_STEM": "" },
|
||||
{ "observer_front": "Observer (Front)" },
|
||||
{ "observer_side": "Observer (Side)" },
|
||||
{ "observer_back": "Observer (Back)" },
|
||||
{ "observer_back_lit": "Observer (On) (Back)" },
|
||||
{ "observer_top": "Observer (Top)" },
|
||||
{ "goldRing": "Gold Score Ring" },
|
||||
{ "emeraldRing": "Emerald Score Ring" },
|
||||
{ "structure_block": "Structure Block" },
|
||||
{ "structure_block_corner": "Structure Block (Corner)" },
|
||||
{ "structure_block_data": "Structure Block (Data)" },
|
||||
{ "structure_block_load": "Structure Block (Load)" },
|
||||
{ "structure_block_save": "Structure Block (Save)" },
|
||||
{ "concrete_black": "Black Concrete" },
|
||||
{ "concrete_blue": "Blue Concrete" },
|
||||
{ "concrete_brown": "Brown Concrete" },
|
||||
{ "concrete_cyan": "Cyan Concrete" },
|
||||
{ "concrete_gray": "Gray Concrete" },
|
||||
{ "concrete_green": "Green Concrete" },
|
||||
{ "concrete_light_blue": "Light Blue Concrete" },
|
||||
{ "concrete_lime": "Lime Concrete" },
|
||||
{ "concrete_magenta": "Magenta Concrete" },
|
||||
{ "concrete_orange": "Orange Concrete" },
|
||||
{ "concrete_pink": "Pink Concrete" },
|
||||
{ "concrete_purple": "Purple Concrete" },
|
||||
{ "concrete_red": "Red Concrete" },
|
||||
{ "concrete_silver": "Light Gray Concrete" },
|
||||
{ "concrete_white": "White Concrete" },
|
||||
{ "concrete_yellow": "Yellow Concrete" },
|
||||
{ "concrete_powder_black": "Black Concrete Powder" },
|
||||
{ "concrete_powder_blue": "Blue Concrete Powder" },
|
||||
{ "concrete_powder_brown": "Brown Concrete Powder" },
|
||||
{ "concrete_powder_cyan": "Cyan Concrete Powder" },
|
||||
{ "concrete_powder_gray": "Gray Concrete Powder" },
|
||||
{ "concrete_powder_green": "Green Concrete Powder" },
|
||||
{ "concrete_powder_light_blue": "Light Blue Concrete Powder" },
|
||||
{ "concrete_powder_lime": "Lime Concrete Powder" },
|
||||
{ "concrete_powder_magenta": "Magenta Concrete Powder" },
|
||||
{ "concrete_powder_orange": "Orange Concrete Powder" },
|
||||
{ "concrete_powder_pink": "Pink Concrete Powder" },
|
||||
{ "concrete_powder_purple": "Purple Concrete Powder" },
|
||||
{ "concrete_powder_red": "Red Concrete Powder" },
|
||||
{ "concrete_powder_silver": "Light Gray Concrete Powder" },
|
||||
{ "concrete_powder_white": "White Concrete Powder" },
|
||||
{ "concrete_powder_yellow": "Yellow Concrete Powder" },
|
||||
{ "glazed_terracotta_black": "Black Glazed Terracotta" },
|
||||
{ "glazed_terracotta_blue": "Blue Glazed Terracotta" },
|
||||
{ "glazed_terracotta_brown": "Brown Glazed Terracotta" },
|
||||
{ "glazed_terracotta_cyan": "Cyan Glazed Terracotta" },
|
||||
{ "glazed_terracotta_gray": "Gray Glazed Terracotta" },
|
||||
{ "glazed_terracotta_green": "Green Glazed Terracotta" },
|
||||
{ "glazed_terracotta_light_blue": "Light Blue Glazed Terracotta" },
|
||||
{ "glazed_terracotta_lime": "Lime Glazed Terracotta" },
|
||||
{ "glazed_terracotta_magenta": "Magenta Glazed Terracotta" },
|
||||
{ "glazed_terracotta_orange": "Orange Glazed Terracotta" },
|
||||
{ "glazed_terracotta_pink": "Pink Glazed Terracotta" },
|
||||
{ "glazed_terracotta_purple": "Purple Glazed Terracotta" },
|
||||
{ "glazed_terracotta_red": "Red Glazed Terracotta" },
|
||||
{ "glazed_terracotta_silver": "Light Gray Glazed Terracotta" },
|
||||
{ "glazed_terracotta_white": "White Glazed Terracotta" },
|
||||
{ "glazed_terracotta_yellow": "Yellow Glazed Terracotta" },
|
||||
{ "shulker_top": "Shulker (Break Particles)" },
|
||||
{ "UNUSED_NULL": "" },
|
||||
{ "cauldron_water": "Cauldron Water" },
|
||||
{ "seagrass_doubletall_top_a": "Tall Seagrass (Top)" },
|
||||
{ "coral_blue": "Tube Coral" },
|
||||
{ "coral_purple": "Bubble Coral" },
|
||||
{ "coral_pink": "Brain Coral" },
|
||||
{ "coral_red": "Fire Coral" },
|
||||
{ "coral_yellow": "Horn Coral" },
|
||||
{ "coral_plant_blue": "Tube Coral Plant" },
|
||||
{ "coral_plant_purple": "Bubble Coral Plant" },
|
||||
{ "coral_plant_pink": "Brain Coral Plant" },
|
||||
{ "coral_plant_red": "Fire Coral Plant" },
|
||||
{ "coral_plant_yellow": "Horn Coral Plant" },
|
||||
{ "sea_pickle": "Sea Pickle" },
|
||||
{ "blue_ice": "Blue Ice" },
|
||||
{ "dried_kelp_top": "Dried Kelp Block (Top)" },
|
||||
{ "dried_kelp_side": "Dried Kelp Block (Side)" },
|
||||
{ "seagrass_carried": "Seagrass (Item)" },
|
||||
{ "seagrass_doubletall_bottom_a": "Tall Seagrass (Bottom)" },
|
||||
{ "coral_blue_dead": "Tube Coral" },
|
||||
{ "coral_purple_dead": "Bubble Coral" },
|
||||
{ "coral_pink_dead": "Brain Coral" },
|
||||
{ "coral_red_dead": "Fire Coral" },
|
||||
{ "coral_yellow_dead": "Horn Coral" },
|
||||
{ "coral_fan_blue": "Tube Coral Fan" },
|
||||
{ "coral_fan_purple": "Bubble Coral Fan" },
|
||||
{ "coral_fan_pink": "Brain Coral Fan" },
|
||||
{ "coral_fan_red": "Fire Coral Fan" },
|
||||
{ "coral_fan_yellow": "Horn Coral Fan" },
|
||||
{ "coral_layered_top_red": "Fire Coral (Overlay)" },
|
||||
{ "coral_layered_top_yellow": "Horn Coral (Overlay)" },
|
||||
{ "kelp_a": "Kelp (Bottom)" },
|
||||
{ "UNUSED_KELP_PLANT0": "" },
|
||||
{ "UNUSED_KELP_PLANT1": "" },
|
||||
{ "UNUSED_KELP_PLANT2": "" },
|
||||
{ "kelp_top_a": "Kelp (Top)" },
|
||||
{ "UNUSED_KELP0": "" },
|
||||
{ "UNUSED_KELP1": "" },
|
||||
{ "UNUSED_KELP2": "" },
|
||||
{ "seagrass": "Seagrass" },
|
||||
{ "coral_fan_blue_dead": "Tube Coral Fan (Dead)" },
|
||||
{ "coral_fan_purple_dead": "Bubble Coral Fan (Dead)" },
|
||||
{ "coral_fan_pink_dead": "Brain Coral Fan (Dead)" },
|
||||
{ "coral_fan_red_dead": "Red Coral Fan (Dead)" },
|
||||
{ "coral_fan_yellow_dead": "Horn Coral Fan (Dead)" },
|
||||
{ "UNUSED_UNKNOWN2": "" },
|
||||
{ "spruce_trapdoor": "Spruce Trapdoor" },
|
||||
{ "stripped_log_oak": "Stripped Oak Log (Side)" },
|
||||
{ "stripped_log_oak_top": "Stripped Oak Log (Top)" },
|
||||
{ "stripped_log_acacia": "Stripped Acacia Log (Side)" },
|
||||
{ "stripped_log_acacia_top": "Stripped Acacia Log (Top)" },
|
||||
{ "stripped_log_birch": "Stripped Birch Log (Side)" },
|
||||
{ "stripped_log_birch_top": "Stripped Birch Log (Top)" },
|
||||
{ "stripped_log_dark_oak": "Stripped Dark Oak Log (Side)" },
|
||||
{ "stripped_log_dark_oak_top": "Stripped Dark Oak Log (Top)" },
|
||||
{ "stripped_log_jungle": "Stripped Jungle Log (Side)" },
|
||||
{ "stripped_log_jungle_top": "Stripped Birch Log (Top)" },
|
||||
{ "stripped_log_spruce": "Stripped Spruce Log (Side)" },
|
||||
{ "stripped_log_spruce_top": "Stripped Spruce Log (Top)" },
|
||||
{ "acacia_trapdoor": "Acacia Trapdoor" },
|
||||
{ "birch_trapdoor": "Birch Trapdoor" },
|
||||
{ "dark_oak_trapdoor": "Dark Oak Trapdoor" },
|
||||
{ "jungle_trapdoor": "Jungle Trapdoor" }
|
||||
],
|
||||
"Items": [
|
||||
{ "helmetCloth": "Leather Helmet" },
|
||||
{ "helmetChain": "Chain Helmet" },
|
||||
{ "helmetIron": "Iron Helmet" },
|
||||
{ "helmetDiamond": "Diamond Helmet" },
|
||||
{ "helmetGold": "Golden Helmet" },
|
||||
{ "flintAndSteel": "Flint and Steel" },
|
||||
{ "flint": "Flint" },
|
||||
{ "coal": "Coal" },
|
||||
{ "string": "String" },
|
||||
{ "seeds": "Seeds" },
|
||||
{ "apple": "Apple" },
|
||||
{ "appleGold": "Golden Apple" },
|
||||
{ "egg": "Egg" },
|
||||
{ "sugar": "Sugar" },
|
||||
{ "snowball": "Snowball" },
|
||||
{ "elytra": "Elytra" },
|
||||
{ "chestplateCloth": "Leather Chestplate" },
|
||||
{ "chestplateChain": "Chain Chestplate" },
|
||||
{ "chestplateIron": "Iron Chestplate" },
|
||||
{ "chestplateDiamond": "Diamond Chestplate" },
|
||||
{ "chestplateGold": "Golden Chestplate" },
|
||||
{ "bow": "Bow" },
|
||||
{ "brick": "Brick" },
|
||||
{ "ingotIron": "Iron Ingot" },
|
||||
{ "feather": "Feather" },
|
||||
{ "wheat": "Wheat" },
|
||||
{ "painting": "Painting" },
|
||||
{ "reeds": "Sugar Canes" },
|
||||
{ "bone": "Bone" },
|
||||
{ "cake": "Cake" },
|
||||
{ "slimeball": "Slimeball" },
|
||||
{ "broken_elytra": "Elytra (Broken)" },
|
||||
{ "leggingsCloth": "Leather Leggings" },
|
||||
{ "leggingsChain": "Chain Leggings" },
|
||||
{ "leggingsIron": "Iron Leggings" },
|
||||
{ "leggingsDiamond": "Diamond Leggings" },
|
||||
{ "leggingsGold": "Golden Leggings" },
|
||||
{ "arrow": "Arrow" },
|
||||
{ "end_crystal": "End Crystal" },
|
||||
{ "ingotGold": "Gold Ingot" },
|
||||
{ "sulphur": "Gunpowder" },
|
||||
{ "bread": "Bread" },
|
||||
{ "sign": "Sign" },
|
||||
{ "doorWood": "Oak Door" },
|
||||
{ "doorIron": "Iron Door" },
|
||||
{ "bed": "Bed" },
|
||||
{ "fireball": "Fire Call" },
|
||||
{ "chorus_fruit": "Chorus Fruit" },
|
||||
{ "bootsCloth": "Leather Boots" },
|
||||
{ "bootsChain": "Chain Boots" },
|
||||
{ "bootsIron": "Iron Boots" },
|
||||
{ "bootsDiamond": "Diamond Boots" },
|
||||
{ "bootsGold": "Golden Boots" },
|
||||
{ "stick": "Stick" },
|
||||
{ "UNUSED_compass": "" },
|
||||
{ "diamond": "Diamond" },
|
||||
{ "redstone": "Redstone" },
|
||||
{ "clay": "Clay" },
|
||||
{ "paper": "Paper" },
|
||||
{ "book": "Book" },
|
||||
{ "map": "Map" },
|
||||
{ "seeds_pumpkin": "Pumpkin Seeds" },
|
||||
{ "seeds_melon": "Melon Seeds" },
|
||||
{ "chorus_fruit_popped": "Chorus Fruit (Popped)" },
|
||||
{ "swordWood": "Wooden Sword" },
|
||||
{ "swordStone": "Stone Sword" },
|
||||
{ "swordIron": "Iron Sword" },
|
||||
{ "swordDiamond": "Diamond Sword" },
|
||||
{ "swordGold": "Golden Sword" },
|
||||
{ "fishingRod_uncast": "Fishing Rod" },
|
||||
{ "UNUSED_clock": "" },
|
||||
{ "bowl": "Bowl" },
|
||||
{ "mushroomStew": "Mushroom Stew" },
|
||||
{ "yellowDust": "Glowstone Dust" },
|
||||
{ "bucket": "Bucket" },
|
||||
{ "bucketWater": "Water Bucket" },
|
||||
{ "bucketLava": "Lava Bucket" },
|
||||
{ "milk": "Milk" },
|
||||
{ "dyePowder_black": "Ink Sac" },
|
||||
{ "dyePowder_gray": "Gray Dye" },
|
||||
{ "shovelWood": "Wooden Shovel" },
|
||||
{ "shovelStone": "Stone Shovel" },
|
||||
{ "shovelIron": "Iron Shovel" },
|
||||
{ "shovelDiamond": "Diamond Shovel" },
|
||||
{ "shovelGold": "Golden Shovel" },
|
||||
{ "fishingRod_cast": "Fishing Rod (Cast)" },
|
||||
{ "repeater": "Redstone Repeater" },
|
||||
{ "porkchopRaw": "Raw Porkchop" },
|
||||
{ "porkchopCooked": "Cooked Porkchop" },
|
||||
{ "fishRaw": "Raw Cod" },
|
||||
{ "fishCooked": "Cooked Cod" },
|
||||
{ "rottenFlesh": "Rotten Flesh" },
|
||||
{ "cookie": "Cookie" },
|
||||
{ "shears": "Shears" },
|
||||
{ "dyePowder_red": "Rose Red" },
|
||||
{ "dyePowder_pink": "Pink Dye" },
|
||||
{ "pickaxeWood": "Wooden Pickaxe" },
|
||||
{ "pickaxeStone": "Stone Pickaxe" },
|
||||
{ "pickaxeIron": "Iron Pickaxe" },
|
||||
{ "pickaxeDiamond": "Diamond Pickaxe" },
|
||||
{ "pickaxeGold": "Golden Pickaxe" },
|
||||
{ "bow_pull_0": "Bow (Pulling Stage 1)" },
|
||||
{ "carrotOnAStick": "Carrot on a Stick" },
|
||||
{ "leather": "Leather" },
|
||||
{ "saddle": "Saddle" },
|
||||
{ "beefRaw": "Raw Beef" },
|
||||
{ "beefCooked": "Cooked Beef" },
|
||||
{ "enderPearl": "Ender Pearl" },
|
||||
{ "blazeRod": "Blaze Rod" },
|
||||
{ "melon": "Melon" },
|
||||
{ "dyePowder_green": "Cactus Green" },
|
||||
{ "dyePowder_lime": "Lime Dye" },
|
||||
{ "hatchetWood": "Wooden Axe" },
|
||||
{ "hatchetStone": "Stone Axe" },
|
||||
{ "hatchetIron": "Iron Axe" },
|
||||
{ "hatchetDiamond": "Diamond Axe" },
|
||||
{ "hatchetGold": "Golden Axe" },
|
||||
{ "bow_pull_1": "Bow (Pulling Stage 2)" },
|
||||
{ "potatoBaked": "Baked Potato" },
|
||||
{ "potato": "Potato" },
|
||||
{ "carrots": "Carrot" },
|
||||
{ "chickenRaw": "Raw Chicken" },
|
||||
{ "chickenCooked": "Cooked Chicken" },
|
||||
{ "ghastTear": "Ghast Tear" },
|
||||
{ "goldNugget": "Gold Nugget" },
|
||||
{ "netherStalkSeeds": "Nether Wart" },
|
||||
{ "dyePowder_brown": "Brown Dye" },
|
||||
{ "dyePowder_yellow": "Yellow Dye" },
|
||||
{ "hoeWood": "Wooden Hoe" },
|
||||
{ "hoeStone": "Stone Hoe" },
|
||||
{ "hoeIron": "Iron Hoe" },
|
||||
{ "hoeDiamond": "Diamond Hoe" },
|
||||
{ "hoeGold": "Golden Hoe" },
|
||||
{ "bow_pull_2": "Bow (Pulling Stage 3)" },
|
||||
{ "potatoPoisonous": "Poisonous Potato" },
|
||||
{ "minecart": "Minecart" },
|
||||
{ "boat": "Boat" },
|
||||
{ "speckledMelon": "Speckled Melon" },
|
||||
{ "fermentedSpiderEye": "Fermented Spider Eye" },
|
||||
{ "spiderEye": "Spider Eye" },
|
||||
{ "glassBottle": "Glass Bottle" },
|
||||
{ "potion_contents": "Potion (Overlay)" },
|
||||
{ "dyePowder_blue": "Lapis Lazuli" },
|
||||
{ "dyePowder_light_blue": "Light Blue Dye" },
|
||||
{ "helmetCloth_overlay": "Leather Helmet (Overlay)" },
|
||||
{ "spectral_arrow": "Spectral Arrow" },
|
||||
{ "iron_horse_armor": "Iron Horse Armor" },
|
||||
{ "diamond_horse_armor": "Diamond Horse Armor" },
|
||||
{ "gold_horse_armor": "Gold Horse Armor" },
|
||||
{ "comparator": "Redstone Comparator" },
|
||||
{ "carrotGolden": "Golden Carrot" },
|
||||
{ "minecart_chest": "Minecart with Chest" },
|
||||
{ "pumpkinPie": "Pumpkin Pie" },
|
||||
{ "monsterPlacer": "Spawn Egg" },
|
||||
{ "potion_splash": "Splash Potion" },
|
||||
{ "eyeOfEnder": "Eye of Ender" },
|
||||
{ "cauldron": "Cauldron" },
|
||||
{ "blazePowder": "Blaze Powder" },
|
||||
{ "dyePowder_purple": "Purple Dye" },
|
||||
{ "dyePowder_magenta": "Magenta Dye" },
|
||||
{ "chestplateCloth_overlay": "Leather Chestplate (Overlay)" },
|
||||
{ "tipped_arrow_base": "Tipped Arrow" },
|
||||
{ "dragon_breath": "Dragon's Breath" },
|
||||
{ "name_tag": "Name Tag" },
|
||||
{ "lead": "Lead" },
|
||||
{ "netherbrick": "Nether Brick" },
|
||||
{ "fish_clownfish_raw": "Clownfish" },
|
||||
{ "minecart_furnace": "Minecart with Furnace" },
|
||||
{ "charcoal": "Charcoal" },
|
||||
{ "monsterPlacer_overlay": "Spawn Egg (Overlay)" },
|
||||
{ "bed_overlay": "Bed (Overlay)" },
|
||||
{ "expBottle": "Experience Bottle" },
|
||||
{ "brewingStand": "Brewing Stand" },
|
||||
{ "magmaCream": "Magma Cream" },
|
||||
{ "dyePowder_cyan": "Cyan Dye" },
|
||||
{ "dyePowder_orange": "Orange Dye" },
|
||||
{ "leggingsCloth_overlay": "Leather Leggings (Overlay)" },
|
||||
{ "tipped_arrow_head": "Tipped Arrow (Overlay)" },
|
||||
{ "potion_bottle_lingering": "Lingering Potion" },
|
||||
{ "barrier": "Barrier" },
|
||||
{ "mutton_raw": "Raw Mutton" },
|
||||
{ "rabbit_raw": "Raw Rabbit" },
|
||||
{ "fish_pufferfish_raw": "Pufferfish" },
|
||||
{ "minecart_hopper": "Minecart with Hopper" },
|
||||
{ "hopper": "Hopper" },
|
||||
{ "nether_star": "Nether Star" },
|
||||
{ "emerald": "Emerald" },
|
||||
{ "writingBook": "Book and Quill" },
|
||||
{ "written_book": "Written Book" },
|
||||
{ "flower_pot": "Flower Pot" },
|
||||
{ "dyePowder_silver": "Light Gray Dye" },
|
||||
{ "dyePowder_white": "White Dye" },
|
||||
{ "bootsCloth_overlay": "Leather Boots (Overlay)" },
|
||||
{ "beetroot": "Beetroot" },
|
||||
{ "beetroot_seeds": "Beetroot Seeds" },
|
||||
{ "beetroot_soup": "Beetroot Soup" },
|
||||
{ "mutton_cooked": "Cooked Mutton" },
|
||||
{ "rabbit_cooked": "Cooked Rabbit" },
|
||||
{ "fish_salmon_raw": "Raw Salmon" },
|
||||
{ "minecart_tnt": "Minecart with TNT" },
|
||||
{ "wooden_armorstand": "Armor Stand" },
|
||||
{ "fireworks": "Firework Rocket" },
|
||||
{ "fireworks_charge": "Firework Star" },
|
||||
{ "fireworks_charge_overlay": "Firework Star (Overlay)" },
|
||||
{ "netherquartz": "Nether Quartz" },
|
||||
{ "map_empty": "Empty Map" },
|
||||
{ "frame": "Item Frame" },
|
||||
{ "enchantedBook": "Enchanted Book" },
|
||||
{ "door_acacia": "Acacia Door" },
|
||||
{ "door_birch": "Birch Door" },
|
||||
{ "door_jungle": "Jungle Door" },
|
||||
{ "door_dark_oak": "Dark Oak Door" },
|
||||
{ "door_spruce": "Spruce Door" },
|
||||
{ "rabbit_stew": "Rabbit Stew" },
|
||||
{ "fish_salmon_cooked": "Cooked Salmon" },
|
||||
{ "minecart_command_block": "Minecart with Command Block" },
|
||||
{ "acacia_boat": "Acacia Boat" },
|
||||
{ "birch_boat": "Birch Boat" },
|
||||
{ "dark_oak_boat": "Dark Oak Boat" },
|
||||
{ "jungle_boat": "Jungle Boat" },
|
||||
{ "spruce_boat": "Spruce Boat" },
|
||||
{ "prismarine_shard": "Prismarine Shard" },
|
||||
{ "prismarine_crystals": "Prismarine Crystals" },
|
||||
{ "leather_horse_armor_base": "Leather Horse Armor" },
|
||||
{ "structure_void": "Structure Void" },
|
||||
{ "map_filled_markings": "Filled Map (Overlay)" },
|
||||
{ "totem": "Totem of Undying" },
|
||||
{ "shulker_shell": "Shulker Shell" },
|
||||
{ "iron_nugget": "Iron Nugget" },
|
||||
{ "rabbit_foot": "Rabbit Foot" },
|
||||
{ "rabbit_hide": "Rabbit Hide" },
|
||||
{ "UNUSED_COMPASS_P0": "" },
|
||||
{ "UNUSED_COMPASS_P1": "" },
|
||||
{ "UNUSED_COMPASS_P2": "" },
|
||||
{ "UNUSED_COMPASS_P3": "" },
|
||||
{ "UNUSED_CLOCK_P0": "" },
|
||||
{ "UNUSED_CLOCK_P1": "" },
|
||||
{ "UNUSED_CLOCK_P2": "" },
|
||||
{ "UNUSED_CLOCK_P3": "" },
|
||||
{ "dragonFireball": "Dragon Fireball" },
|
||||
{ "record_13": "Music Disc (C418 - 13)" },
|
||||
{ "record_cat": "Music Disc (C418 - cat)" },
|
||||
{ "record_blocks": "Music Disc (C418 - blocks)" },
|
||||
{ "record_chirp": "Music Disc (C418 - chirp)" },
|
||||
{ "record_far": "Music Disc (C418 - far)" },
|
||||
{ "record_mall": "Music Disc (C418 - mall)" },
|
||||
{ "record_mellohi": "Music Disc (C418 - mellohi)" },
|
||||
{ "record_stal": "Music Disc (C418 - stal)" },
|
||||
{ "record_strad": "Music Disc (C418 - strad)" },
|
||||
{ "record_ward": "Music Disc (C418 - ward)" },
|
||||
{ "record_11": "Music Disc (C418 - 11)" },
|
||||
{ "record_where are we now": "Music Disc (C418 - wait)" },
|
||||
{ "bucketFish": "Bucket of Cod" },
|
||||
{ "bucketSalmon": "Bucket of Salmon" },
|
||||
{ "bucketPuffer": "Bucket of Pufferfish" },
|
||||
{ "bucketTropical": "Bucket of Tropical Fish" },
|
||||
{ "leather_horse_armor_detail": "Leather Horse Armor (Overlay)" },
|
||||
{ "UNUSED1": "" },
|
||||
{ "UNUSED2": "" },
|
||||
{ "UNUSED3": "" },
|
||||
{ "UNUSED4": "" },
|
||||
{ "UNUSED5": "" },
|
||||
{ "UNUSED6": "" },
|
||||
{ "kelp": "Kelp" },
|
||||
{ "dried_kelp": "Dried Kelp" },
|
||||
{ "sea_pickle": "Sea Pickle" },
|
||||
{ "nautilus": "Nautilus Shell" },
|
||||
{ "nautilus_core": "Heart of the Sea" },
|
||||
{ "turtle_helmet": "Turtle Helmet" },
|
||||
{ "turtle_shell_piece": "Scute" },
|
||||
{ "trident": "Trident" },
|
||||
{ "phantom_membrane": "Phantom Membrane" }
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user