mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-05-30 12:47:27 +00:00
Rename Util files and update OMI commit ref
This commit is contained in:
@@ -23,7 +23,7 @@ namespace PckStudio.Forms.Additional_Popups.Animation
|
||||
InitializeComponent();
|
||||
ImageList tiles = new ImageList();
|
||||
tiles.ColorDepth = ColorDepth.Depth32Bit;
|
||||
tiles.Images.AddRange(AnimationUtil.tileImages);
|
||||
tiles.Images.AddRange(AnimationResources.tileImages);
|
||||
treeViewBlocks.ImageList = tiles;
|
||||
treeViewItems.ImageList = tiles;
|
||||
|
||||
@@ -31,9 +31,9 @@ namespace PckStudio.Forms.Additional_Popups.Animation
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
if (AnimationUtil.tileData["blocks"] != null)
|
||||
if (AnimationResources.tileData["blocks"] != null)
|
||||
{
|
||||
foreach (JObject content in AnimationUtil.tileData["blocks"].Children())
|
||||
foreach (JObject content in AnimationResources.tileData["blocks"].Children())
|
||||
{
|
||||
foreach (JProperty prop in content.Properties())
|
||||
{
|
||||
@@ -52,9 +52,9 @@ namespace PckStudio.Forms.Additional_Popups.Animation
|
||||
}
|
||||
}
|
||||
}
|
||||
if (AnimationUtil.tileData["items"] != null)
|
||||
if (AnimationResources.tileData["items"] != null)
|
||||
{
|
||||
foreach (JObject content in AnimationUtil.tileData["items"].Children())
|
||||
foreach (JObject content in AnimationResources.tileData["items"].Children())
|
||||
{
|
||||
foreach (JProperty prop in content.Properties())
|
||||
{
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace PckStudio.Forms.Editor
|
||||
AnimationPlayer player;
|
||||
|
||||
bool isItem = false;
|
||||
string animationSection => AnimationUtil.GetAnimationSection(isItem);
|
||||
string animationSection => AnimationResources.GetAnimationSection(isItem);
|
||||
|
||||
public string TileName = string.Empty;
|
||||
|
||||
@@ -58,7 +58,7 @@ namespace PckStudio.Forms.Editor
|
||||
: new Animation(frameTextures);
|
||||
player = new AnimationPlayer(pictureBoxWithInterpolationMode1);
|
||||
|
||||
foreach (JObject content in AnimationUtil.tileData[animationSection].Children())
|
||||
foreach (JObject content in AnimationResources.tileData[animationSection].Children())
|
||||
{
|
||||
var prop = content.Properties().FirstOrDefault(prop => prop.Name == TileName);
|
||||
if (prop is JProperty)
|
||||
@@ -369,7 +369,7 @@ namespace PckStudio.Forms.Editor
|
||||
exportJavaAnimationToolStripMenuItem.Enabled =
|
||||
InterpolationCheckbox.Visible = !IsEditingSpecial;
|
||||
|
||||
foreach (JObject content in AnimationUtil.tileData[animationSection].Children())
|
||||
foreach (JObject content in AnimationResources.tileData[animationSection].Children())
|
||||
{
|
||||
var first = content.Properties().FirstOrDefault(p => p.Name == TileName);
|
||||
if (first is JProperty p) tileLabel.Text = (string)p.Value;
|
||||
|
||||
@@ -28,13 +28,13 @@ namespace PckStudio.Forms.Editor
|
||||
{
|
||||
TreeNode EntryNode = new TreeNode(entry.name);
|
||||
|
||||
foreach (JObject content in Utilities.BehaviourUtil.entityData["entities"].Children())
|
||||
foreach (JObject content in Utilities.BehaviourResources.entityData["entities"].Children())
|
||||
{
|
||||
var prop = content.Properties().FirstOrDefault(prop => prop.Name == entry.name);
|
||||
if (prop is JProperty)
|
||||
{
|
||||
EntryNode.Text = (string)prop.Value;
|
||||
EntryNode.ImageIndex = Utilities.BehaviourUtil.entityData["entities"].Children().ToList().IndexOf(content);
|
||||
EntryNode.ImageIndex = Utilities.BehaviourResources.entityData["entities"].Children().ToList().IndexOf(content);
|
||||
EntryNode.SelectedImageIndex = EntryNode.ImageIndex;
|
||||
break;
|
||||
}
|
||||
@@ -68,7 +68,7 @@ namespace PckStudio.Forms.Editor
|
||||
}
|
||||
|
||||
treeView1.ImageList = new ImageList();
|
||||
treeView1.ImageList.Images.AddRange(Utilities.BehaviourUtil.entityImages);
|
||||
treeView1.ImageList.Images.AddRange(Utilities.BehaviourResources.entityImages);
|
||||
treeView1.ImageList.ColorDepth = ColorDepth.Depth32Bit;
|
||||
SetUpTree();
|
||||
}
|
||||
@@ -149,7 +149,7 @@ namespace PckStudio.Forms.Editor
|
||||
if (treeView1.SelectedNode == null) return;
|
||||
if (!(treeView1.SelectedNode.Tag is BehaviourFile.RiderPositionOverride entry)) return;
|
||||
|
||||
var diag = new Additional_Popups.EntityForms.AddEntry(Utilities.BehaviourUtil.entityData, Utilities.BehaviourUtil.entityImages);
|
||||
var diag = new Additional_Popups.EntityForms.AddEntry(Utilities.BehaviourResources.entityData, Utilities.BehaviourResources.entityImages);
|
||||
diag.acceptBtn.Text = "Save";
|
||||
|
||||
if (diag.ShowDialog() == DialogResult.OK)
|
||||
@@ -164,13 +164,13 @@ namespace PckStudio.Forms.Editor
|
||||
entry.name = diag.SelectedEntity;
|
||||
treeView1.SelectedNode.Tag = entry;
|
||||
|
||||
foreach (JObject content in Utilities.BehaviourUtil.entityData["entities"].Children())
|
||||
foreach (JObject content in Utilities.BehaviourResources.entityData["entities"].Children())
|
||||
{
|
||||
var prop = content.Properties().FirstOrDefault(prop => prop.Name == entry.name);
|
||||
if (prop is JProperty)
|
||||
{
|
||||
treeView1.SelectedNode.Text = (string)prop.Value;
|
||||
treeView1.SelectedNode.ImageIndex = Utilities.BehaviourUtil.entityData["entities"].Children().ToList().IndexOf(content);
|
||||
treeView1.SelectedNode.ImageIndex = Utilities.BehaviourResources.entityData["entities"].Children().ToList().IndexOf(content);
|
||||
treeView1.SelectedNode.SelectedImageIndex = treeView1.SelectedNode.ImageIndex;
|
||||
break;
|
||||
}
|
||||
@@ -203,7 +203,7 @@ namespace PckStudio.Forms.Editor
|
||||
|
||||
private void addNewEntryToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
var diag = new AddEntry(Utilities.BehaviourUtil.entityData, Utilities.BehaviourUtil.entityImages);
|
||||
var diag = new AddEntry(Utilities.BehaviourResources.entityData, Utilities.BehaviourResources.entityImages);
|
||||
|
||||
if(diag.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
@@ -217,13 +217,13 @@ namespace PckStudio.Forms.Editor
|
||||
|
||||
TreeNode NewOverrideNode = new TreeNode(NewOverride.name);
|
||||
NewOverrideNode.Tag = NewOverride;
|
||||
foreach (JObject content in Utilities.BehaviourUtil.entityData["entities"].Children())
|
||||
foreach (JObject content in Utilities.BehaviourResources.entityData["entities"].Children())
|
||||
{
|
||||
var prop = content.Properties().FirstOrDefault(prop => prop.Name == NewOverride.name);
|
||||
if (prop is JProperty)
|
||||
{
|
||||
NewOverrideNode.Text = (string)prop.Value;
|
||||
NewOverrideNode.ImageIndex = Utilities.BehaviourUtil.entityData["entities"].Children().ToList().IndexOf(content);
|
||||
NewOverrideNode.ImageIndex = Utilities.BehaviourResources.entityData["entities"].Children().ToList().IndexOf(content);
|
||||
NewOverrideNode.SelectedImageIndex = NewOverrideNode.ImageIndex;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -27,13 +27,13 @@ namespace PckStudio.Forms.Editor
|
||||
{
|
||||
TreeNode EntryNode = new TreeNode(entry.Name);
|
||||
|
||||
foreach (JObject content in Utilities.MaterialUtil.entityData["entities"].Children())
|
||||
foreach (JObject content in Utilities.MaterialResources.entityData["entities"].Children())
|
||||
{
|
||||
var prop = content.Properties().FirstOrDefault(prop => prop.Name == entry.Name);
|
||||
if (prop is JProperty)
|
||||
{
|
||||
EntryNode.Text = (string)prop.Value;
|
||||
EntryNode.ImageIndex = Utilities.MaterialUtil.entityData["entities"].Children().ToList().IndexOf(content);
|
||||
EntryNode.ImageIndex = Utilities.MaterialResources.entityData["entities"].Children().ToList().IndexOf(content);
|
||||
EntryNode.SelectedImageIndex = EntryNode.ImageIndex;
|
||||
break;
|
||||
}
|
||||
@@ -58,7 +58,7 @@ namespace PckStudio.Forms.Editor
|
||||
}
|
||||
|
||||
treeView1.ImageList = new ImageList();
|
||||
Utilities.MaterialUtil.entityImages.ToList().ForEach(img => treeView1.ImageList.Images.Add(img));
|
||||
Utilities.MaterialResources.entityImages.ToList().ForEach(img => treeView1.ImageList.Images.Add(img));
|
||||
treeView1.ImageList.ColorDepth = ColorDepth.Depth32Bit;
|
||||
SetUpTree();
|
||||
}
|
||||
@@ -132,7 +132,7 @@ namespace PckStudio.Forms.Editor
|
||||
|
||||
private void addToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
var diag = new Additional_Popups.EntityForms.AddEntry(Utilities.MaterialUtil.entityData, Utilities.MaterialUtil.entityImages);
|
||||
var diag = new Additional_Popups.EntityForms.AddEntry(Utilities.MaterialResources.entityData, Utilities.MaterialResources.entityImages);
|
||||
|
||||
if (diag.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
@@ -146,13 +146,13 @@ namespace PckStudio.Forms.Editor
|
||||
|
||||
TreeNode NewEntryNode = new TreeNode(NewEntry.Name);
|
||||
NewEntryNode.Tag = NewEntry;
|
||||
foreach (JObject content in Utilities.MaterialUtil.entityData["entities"].Children())
|
||||
foreach (JObject content in Utilities.MaterialResources.entityData["entities"].Children())
|
||||
{
|
||||
var prop = content.Properties().FirstOrDefault(prop => prop.Name == NewEntry.Name);
|
||||
if (prop is JProperty)
|
||||
{
|
||||
NewEntryNode.Text = (string)prop.Value;
|
||||
NewEntryNode.ImageIndex = Utilities.MaterialUtil.entityData["entities"].Children().ToList().IndexOf(content);
|
||||
NewEntryNode.ImageIndex = Utilities.MaterialResources.entityData["entities"].Children().ToList().IndexOf(content);
|
||||
NewEntryNode.SelectedImageIndex = NewEntryNode.ImageIndex;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -10,25 +10,12 @@ using OMI.Formats.Pck;
|
||||
|
||||
namespace PckStudio.Forms.Utilities
|
||||
{
|
||||
public static class AnimationUtil
|
||||
public static class AnimationResources
|
||||
{
|
||||
public static string GetAnimationSection(bool isItem) => isItem ? "items" : "blocks";
|
||||
|
||||
public static readonly JObject tileData = JObject.Parse(Resources.tileData);
|
||||
private static Image[] _tileImages;
|
||||
|
||||
public static Image[] tileImages => _tileImages ??= Resources.terrain_sheet.CreateImageList(16).Concat(Resources.items_sheet.CreateImageList(16)).ToArray();
|
||||
|
||||
public static PckFile.FileData CreateNewAnimationFile(Image source, string tileName, bool isItem)
|
||||
{
|
||||
PckFile.FileData file = new PckFile.FileData($"res/textures/{GetAnimationSection(isItem)}/{tileName}.png", PckFile.FileData.FileType.TextureFile);
|
||||
file.Properties.Add(("ANIM", string.Empty));
|
||||
using (var stream = new MemoryStream())
|
||||
{
|
||||
source.Save(stream, ImageFormat.Png);
|
||||
file.SetData(stream.ToArray());
|
||||
}
|
||||
return file;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,28 +8,23 @@ using PckStudio.Classes.Extentions;
|
||||
using OMI.Formats.Behaviour;
|
||||
using OMI.Workers.Behaviour;
|
||||
using OMI.Formats.Pck;
|
||||
using System;
|
||||
|
||||
namespace PckStudio.Forms.Utilities
|
||||
{
|
||||
public static class BehaviourUtil
|
||||
public static class BehaviourResources
|
||||
{
|
||||
public static readonly JObject entityData = JObject.Parse(Resources.entityBehaviourData);
|
||||
private static Image[] _entityImages;
|
||||
|
||||
public static Image[] entityImages => _entityImages ??= Resources.entities_sheet.CreateImageList(32).ToArray();
|
||||
|
||||
public static PckFile.FileData CreateNewBehaviourFile()
|
||||
internal static byte[] BehaviourFileInitializer()
|
||||
{
|
||||
PckFile.FileData file = new PckFile.FileData($"behaviours.bin", PckFile.FileData.FileType.BehavioursFile);
|
||||
|
||||
using (var stream = new MemoryStream())
|
||||
{
|
||||
var writer = new BehavioursWriter(new BehaviourFile());
|
||||
writer.WriteToStream(stream);
|
||||
file.SetData(stream.ToArray());
|
||||
}
|
||||
|
||||
return file;
|
||||
using var stream = new MemoryStream();
|
||||
var writer = new BehavioursWriter(new BehaviourFile());
|
||||
writer.WriteToStream(stream);
|
||||
return stream.ToArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
33
PCK-Studio/Forms/Utilities/MaterialResources.cs
Normal file
33
PCK-Studio/Forms/Utilities/MaterialResources.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.IO;
|
||||
|
||||
using PckStudio.Properties;
|
||||
using PckStudio.Classes.Extentions;
|
||||
using OMI.Formats.Pck;
|
||||
using OMI.Formats.Material;
|
||||
using OMI.Workers.Material;
|
||||
using System;
|
||||
|
||||
namespace PckStudio.Forms.Utilities
|
||||
{
|
||||
public static class MaterialResources
|
||||
{
|
||||
public static readonly JObject entityData = JObject.Parse(Resources.entityMaterialData);
|
||||
private static Image[] _entityImages;
|
||||
public static Image[] entityImages => _entityImages ??= Resources.entities_sheet.CreateImageList(32).ToArray();
|
||||
|
||||
public static byte[] MaterialsFileInitializer()
|
||||
{
|
||||
using var stream = new MemoryStream();
|
||||
var matFile = new MaterialContainer
|
||||
{
|
||||
new MaterialContainer.Material("bat", "entity_alphatest")
|
||||
};
|
||||
var writer = new MaterialFileWriter(matFile);
|
||||
writer.WriteToStream(stream);
|
||||
return stream.ToArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.IO;
|
||||
|
||||
using PckStudio.Properties;
|
||||
using PckStudio.Classes.Extentions;
|
||||
using OMI.Formats.Pck;
|
||||
using OMI.Formats.Material;
|
||||
using OMI.Workers.Material;
|
||||
|
||||
namespace PckStudio.Forms.Utilities
|
||||
{
|
||||
public static class MaterialUtil
|
||||
{
|
||||
public static readonly JObject entityData = JObject.Parse(Resources.entityMaterialData);
|
||||
private static Image[] _entityImages;
|
||||
public static Image[] entityImages => _entityImages ??= Resources.entities_sheet.CreateImageList(32).ToArray();
|
||||
|
||||
public static PckFile.FileData CreateNewMaterialsFile()
|
||||
{
|
||||
PckFile.FileData file = new PckFile.FileData($"entityMaterials.bin", PckFile.FileData.FileType.MaterialFile);
|
||||
|
||||
using (var stream = new MemoryStream())
|
||||
{
|
||||
var matFile = new MaterialContainer
|
||||
{
|
||||
new MaterialContainer.Material("bat", "entity_alphatest")
|
||||
};
|
||||
var writer = new MaterialFileWriter(matFile);
|
||||
writer.WriteToStream(stream);
|
||||
file.SetData(stream.ToArray());
|
||||
}
|
||||
|
||||
return file;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,24 +11,27 @@ using OMI.Workers.Model;
|
||||
|
||||
namespace PckStudio.Forms.Utilities
|
||||
{
|
||||
public static class ModelsUtil
|
||||
public static class ModelsResources
|
||||
{
|
||||
public static readonly JObject entityData = JObject.Parse(Resources.entityModelData);
|
||||
private static Image[] _entityImages;
|
||||
|
||||
public static Image[] entityImages => _entityImages ??= Resources.entities_sheet.CreateImageList(32).ToArray();
|
||||
|
||||
public static PckFile.FileData CreateNewModelsFile()
|
||||
public static void ModelsFileInitializer(PckFile.FileData file)
|
||||
{
|
||||
PckFile.FileData file = new PckFile.FileData($"models.bin", PckFile.FileData.FileType.ModelsFile);
|
||||
|
||||
using (var stream = new MemoryStream())
|
||||
{
|
||||
var writer = new ModelFileWriter(new ModelContainer());
|
||||
var writer = new ModelFileWriter(new ModelContainer());
|
||||
writer.WriteToStream(stream);
|
||||
file.SetData(stream.ToArray());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static PckFile.FileData CreateNewModelsFile()
|
||||
{
|
||||
PckFile.FileData file = new PckFile.FileData("models.bin", PckFile.FileData.FileType.ModelsFile);
|
||||
ModelsFileInitializer(file);
|
||||
return file;
|
||||
}
|
||||
}
|
||||
@@ -841,7 +841,7 @@ namespace PckStudio
|
||||
audioPck.AddCategory(PCKAudioFile.AudioCategory.EAudioType.Overworld);
|
||||
audioPck.AddCategory(PCKAudioFile.AudioCategory.EAudioType.Nether);
|
||||
audioPck.AddCategory(PCKAudioFile.AudioCategory.EAudioType.End);
|
||||
PckFile.FileData pckFileData = currentPCK.CreateNew("audio.pck", PckFile.FileData.FileType.AudioFile);
|
||||
PckFile.FileData pckFileData = currentPCK.CreateNewFile("audio.pck", PckFile.FileData.FileType.AudioFile);
|
||||
using (var stream = new MemoryStream())
|
||||
{
|
||||
PCKAudioFileWriter.Write(stream, audioPck, isLittle);
|
||||
@@ -869,28 +869,37 @@ namespace PckStudio
|
||||
|
||||
private void createAnimatedTextureToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
using (var ofd = new OpenFileDialog())
|
||||
using var ofd = new OpenFileDialog()
|
||||
{
|
||||
ofd.Filter = "PNG Files | *.png";
|
||||
ofd.Title = "Select a PNG File";
|
||||
if (ofd.ShowDialog() == DialogResult.OK)
|
||||
Filter = "PNG Files | *.png",
|
||||
Title = "Select a PNG File",
|
||||
};
|
||||
if (ofd.ShowDialog() != DialogResult.OK)
|
||||
return;
|
||||
|
||||
using ChangeTile diag = new ChangeTile();
|
||||
if (diag.ShowDialog(this) != DialogResult.OK)
|
||||
return;
|
||||
|
||||
using Image img = new Bitmap(ofd.FileName);
|
||||
var file = currentPCK.CreateNewFile(
|
||||
$"res/textures/{AnimationResources.GetAnimationSection(diag.IsItem)}/{diag.SelectedTile}.png",
|
||||
PckFile.FileData.FileType.TextureFile,
|
||||
() =>
|
||||
{
|
||||
using ChangeTile diag = new ChangeTile();
|
||||
if (diag.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
using Image img = new Bitmap(ofd.FileName);
|
||||
var file = AnimationUtil.CreateNewAnimationFile(img, diag.SelectedTile, diag.IsItem);
|
||||
using AnimationEditor animationEditor = new AnimationEditor(file);
|
||||
if (animationEditor.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
file.Filename = animationEditor.TileName;
|
||||
currentPCK.Files.Add(file);
|
||||
ReloadMetaTreeView();
|
||||
BuildMainTreeView();
|
||||
wasModified = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
using var stream = new MemoryStream();
|
||||
img.Save(stream, ImageFormat.Png);
|
||||
return stream.ToArray();
|
||||
});
|
||||
file.Properties.Add(("ANIM", string.Empty));
|
||||
|
||||
using AnimationEditor animationEditor = new AnimationEditor(file);
|
||||
if (animationEditor.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
file.Filename = animationEditor.TileName;
|
||||
ReloadMetaTreeView();
|
||||
BuildMainTreeView();
|
||||
wasModified = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -955,7 +964,7 @@ namespace PckStudio
|
||||
{
|
||||
if (node.Tag is PckFile.FileData node_file)
|
||||
{
|
||||
PckFile.FileData new_file = newPCKFile.CreateNew(node_file.Filename, node_file.Filetype);
|
||||
PckFile.FileData new_file = newPCKFile.CreateNewFile(node_file.Filename, node_file.Filetype);
|
||||
foreach (var prop in node_file.Properties) new_file.Properties.Add(prop);
|
||||
new_file.SetData(node_file.Data);
|
||||
}
|
||||
@@ -1207,23 +1216,25 @@ namespace PckStudio
|
||||
private PckFile InitializePack(int packId, int packVersion, string packName, bool createSkinsPCK)
|
||||
{
|
||||
var newPck = new PckFile(3);
|
||||
var zeroFile = newPck.CreateNew("0", PckFile.FileData.FileType.InfoFile);
|
||||
|
||||
var zeroFile = newPck.CreateNewFile("0", PckFile.FileData.FileType.InfoFile);
|
||||
zeroFile.Properties.Add(("PACKID", packId.ToString()));
|
||||
zeroFile.Properties.Add(("PACKVERSION", packVersion.ToString()));
|
||||
var loc = newPck.CreateNew("localisation.loc", PckFile.FileData.FileType.LocalisationFile);
|
||||
var locFile = new LOCFile();
|
||||
locFile.InitializeDefault(packName);
|
||||
using (var stream = new MemoryStream())
|
||||
|
||||
var loc = newPck.CreateNewFile("localisation.loc", PckFile.FileData.FileType.LocalisationFile, () =>
|
||||
{
|
||||
var locFile = new LOCFile();
|
||||
locFile.InitializeDefault(packName);
|
||||
using var stream = new MemoryStream();
|
||||
LOCFileWriter.Write(stream, locFile);
|
||||
loc.SetData(stream.ToArray());
|
||||
}
|
||||
return stream.ToArray();
|
||||
});
|
||||
|
||||
if (createSkinsPCK)
|
||||
{
|
||||
PckFile.FileData skinsPCKFile = newPck.CreateNew("Skins.pck", PckFile.FileData.FileType.SkinDataFile);
|
||||
using (var stream = new MemoryStream())
|
||||
{
|
||||
PckFile.FileData skinsPCKFile = newPck.CreateNewFile("Skins.pck", PckFile.FileData.FileType.SkinDataFile, () =>
|
||||
{
|
||||
using var stream = new MemoryStream();
|
||||
var writer = new PckFileWriter(new PckFile(3)
|
||||
{
|
||||
HasVerionString = true
|
||||
@@ -1232,8 +1243,8 @@ namespace PckStudio
|
||||
? OMI.Endianness.LittleEndian
|
||||
: OMI.Endianness.BigEndian);
|
||||
writer.WriteToStream(stream);
|
||||
skinsPCKFile.SetData(stream.ToArray());
|
||||
}
|
||||
return stream.ToArray();
|
||||
});
|
||||
}
|
||||
return newPck;
|
||||
}
|
||||
@@ -1241,7 +1252,17 @@ namespace PckStudio
|
||||
private PckFile InitializeTexturePack(int packId, int packVersion, string packName, string res, bool createSkinsPCK = false)
|
||||
{
|
||||
var newPck = InitializePack(packId, packVersion, packName, createSkinsPCK);
|
||||
var texturepackInfo = newPck.CreateNew($"{res}/{res}Info.pck", PckFile.FileData.FileType.TexturePackInfoFile);
|
||||
var texturepackInfo = newPck.CreateNewFile($"{res}/{res}Info.pck", PckFile.FileData.FileType.TexturePackInfoFile,
|
||||
() =>
|
||||
{
|
||||
using var ms = new MemoryStream();
|
||||
var writer = new PckFileWriter(new PckFile(3),
|
||||
LittleEndianCheckBox.Checked
|
||||
? OMI.Endianness.LittleEndian
|
||||
: OMI.Endianness.BigEndian);
|
||||
writer.WriteToStream(ms);
|
||||
return ms.ToArray();
|
||||
});
|
||||
texturepackInfo.Properties.Add(("PACKID", "0"));
|
||||
texturepackInfo.Properties.Add(("DATAPATH", $"{res}Data.pck"));
|
||||
|
||||
@@ -1249,34 +1270,25 @@ namespace PckStudio
|
||||
|
||||
using (var ms = new MemoryStream())
|
||||
{
|
||||
var icon = infoPCK.CreateNew("icon.png", PckFile.FileData.FileType.TextureFile);
|
||||
var icon = infoPCK.CreateNewFile("icon.png", PckFile.FileData.FileType.TextureFile);
|
||||
Resources.TexturePackIcon.Save(ms, ImageFormat.Png);
|
||||
icon.SetData(ms.ToArray());
|
||||
}
|
||||
|
||||
using (var ms = new MemoryStream())
|
||||
{
|
||||
var comparison = infoPCK.CreateNew("comparison.png", PckFile.FileData.FileType.TextureFile);
|
||||
var comparison = infoPCK.CreateNewFile("comparison.png", PckFile.FileData.FileType.TextureFile);
|
||||
Resources.Comparison.Save(ms, ImageFormat.Png);
|
||||
comparison.SetData(ms.ToArray());
|
||||
}
|
||||
|
||||
using (var ms = new MemoryStream())
|
||||
{
|
||||
var writer = new PckFileWriter(new PckFile(3),
|
||||
LittleEndianCheckBox.Checked
|
||||
? OMI.Endianness.LittleEndian
|
||||
: OMI.Endianness.BigEndian);
|
||||
writer.WriteToStream(ms);
|
||||
texturepackInfo.SetData(ms.ToArray());
|
||||
}
|
||||
return newPck;
|
||||
}
|
||||
|
||||
private PckFile InitializeMashUpPack(int packId, int packVersion, string packName, string res)
|
||||
{
|
||||
var newPck = InitializeTexturePack(packId, packVersion, packName, res, true);
|
||||
var gameRuleFile = newPck.CreateNew("GameRules.grf", PckFile.FileData.FileType.GameRulesFile);
|
||||
var gameRuleFile = newPck.CreateNewFile("GameRules.grf", PckFile.FileData.FileType.GameRulesFile);
|
||||
var grfFile = new GameRuleFile();
|
||||
grfFile.AddRule("MapOptions",
|
||||
new KeyValuePair<string, string>("seed", "0"),
|
||||
@@ -1604,7 +1616,7 @@ namespace PckStudio
|
||||
{
|
||||
string skinNameImport = Path.GetFileName(contents.FileName);
|
||||
byte[] data = File.ReadAllBytes(contents.FileName);
|
||||
PckFile.FileData mfNew = currentPCK.CreateNew(skinNameImport, PckFile.FileData.FileType.SkinFile);
|
||||
PckFile.FileData mfNew = currentPCK.CreateNewFile(skinNameImport, PckFile.FileData.FileType.SkinFile);
|
||||
mfNew.SetData(data);
|
||||
string propertyFile = Path.GetFileNameWithoutExtension(contents.FileName) + ".txt";
|
||||
if (File.Exists(propertyFile))
|
||||
@@ -1957,7 +1969,7 @@ namespace PckStudio
|
||||
renamePrompt.TextLabel.Text = "Path";
|
||||
if (renamePrompt.ShowDialog() == DialogResult.OK && !string.IsNullOrEmpty(renamePrompt.NewText))
|
||||
{
|
||||
var file = currentPCK.CreateNew(renamePrompt.NewText, PckFile.FileData.FileType.TextureFile);
|
||||
var file = currentPCK.CreateNewFile(renamePrompt.NewText, PckFile.FileData.FileType.TextureFile);
|
||||
file.SetData(File.ReadAllBytes(fileDialog.FileName));
|
||||
BuildMainTreeView();
|
||||
wasModified = true;
|
||||
@@ -2030,14 +2042,13 @@ namespace PckStudio
|
||||
|
||||
private void colourscolToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
PckFile.FileData NewColorFile;
|
||||
if (currentPCK.TryGetFile("colours.col", PckFile.FileData.FileType.ColourTableFile, out NewColorFile))
|
||||
if (currentPCK.TryGetFile("colours.col", PckFile.FileData.FileType.ColourTableFile, out _))
|
||||
{
|
||||
MessageBox.Show("A color table file already exists in this PCK and a new one cannot be created.", "Operation aborted");
|
||||
return;
|
||||
}
|
||||
NewColorFile = currentPCK.CreateNew("colours.col", PckFile.FileData.FileType.ColourTableFile);
|
||||
NewColorFile.SetData(Resources.tu69colours);
|
||||
var newColorFile = currentPCK.CreateNewFile("colours.col", PckFile.FileData.FileType.ColourTableFile);
|
||||
newColorFile.SetData(Resources.tu69colours);
|
||||
BuildMainTreeView();
|
||||
}
|
||||
|
||||
@@ -2143,19 +2154,14 @@ namespace PckStudio
|
||||
return;
|
||||
}
|
||||
|
||||
PckFile.FileData newSkinsPCKFile = currentPCK.CreateNew("Skins.pck", PckFile.FileData.FileType.SkinDataFile);
|
||||
using (var stream = new MemoryStream())
|
||||
currentPCK.CreateNewFile("Skins.pck", PckFile.FileData.FileType.SkinDataFile, () =>
|
||||
{
|
||||
var writer = new PckFileWriter(new PckFile(3)
|
||||
{
|
||||
HasVerionString = true
|
||||
},
|
||||
LittleEndianCheckBox.Checked
|
||||
? OMI.Endianness.LittleEndian
|
||||
: OMI.Endianness.BigEndian);
|
||||
writer.WriteToStream(stream);
|
||||
newSkinsPCKFile.SetData(stream.ToArray());
|
||||
}
|
||||
using var stream = new MemoryStream();
|
||||
var writer = new PckFileWriter(new PckFile(3) { HasVerionString = true },
|
||||
LittleEndianCheckBox.Checked ? OMI.Endianness.LittleEndian : OMI.Endianness.BigEndian);
|
||||
writer.WriteToStream(stream);
|
||||
return stream.ToArray();
|
||||
});
|
||||
|
||||
BuildMainTreeView();
|
||||
|
||||
@@ -2204,7 +2210,7 @@ namespace PckStudio
|
||||
using AddFilePrompt diag = new AddFilePrompt("res/" + Path.GetFileName(ofd.FileName));
|
||||
if (diag.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
PckFile.FileData file = currentPCK.CreateNew(diag.filepath, (PckFile.FileData.FileType)diag.filetype);
|
||||
PckFile.FileData file = currentPCK.CreateNewFile(diag.filepath, (PckFile.FileData.FileType)diag.filetype);
|
||||
file.SetData(File.ReadAllBytes(ofd.FileName));
|
||||
|
||||
if (IsSubPCKNode(treeViewMain.SelectedNode.FullPath)) RebuildSubPCK(treeViewMain.SelectedNode);
|
||||
@@ -2219,27 +2225,24 @@ namespace PckStudio
|
||||
|
||||
private void behavioursbinToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
PckFile.FileData NewBehaviourFile;
|
||||
if (currentPCK.TryGetFile("behaviours.bin", PckFile.FileData.FileType.BehavioursFile, out NewBehaviourFile))
|
||||
if (currentPCK.TryGetFile("behaviours.bin", PckFile.FileData.FileType.BehavioursFile, out _))
|
||||
{
|
||||
MessageBox.Show("A behaviours file already exists in this PCK and a new one cannot be created.", "Operation aborted");
|
||||
return;
|
||||
}
|
||||
NewBehaviourFile = BehaviourUtil.CreateNewBehaviourFile();
|
||||
currentPCK.Files.Add(NewBehaviourFile);
|
||||
|
||||
currentPCK.CreateNewFile("behaviours.bin", PckFile.FileData.FileType.BehavioursFile, BehaviourResources.BehaviourFileInitializer);
|
||||
BuildMainTreeView();
|
||||
}
|
||||
|
||||
private void entityMaterialsbinToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
PckFile.FileData NewMaterialsFile;
|
||||
if (currentPCK.TryGetFile("entityMaterials.bin", PckFile.FileData.FileType.MaterialFile, out NewMaterialsFile))
|
||||
if (currentPCK.TryGetFile("entityMaterials.bin", PckFile.FileData.FileType.MaterialFile, out _))
|
||||
{
|
||||
MessageBox.Show("A behaviours file already exists in this PCK and a new one cannot be created.", "Operation aborted");
|
||||
return;
|
||||
}
|
||||
NewMaterialsFile = MaterialUtil.CreateNewMaterialsFile();
|
||||
currentPCK.Files.Add(NewMaterialsFile);
|
||||
currentPCK.CreateNewFile("entityMaterials.bin", PckFile.FileData.FileType.MaterialFile, MaterialResources.MaterialsFileInitializer);
|
||||
BuildMainTreeView();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -346,10 +346,10 @@
|
||||
<Compile Include="Forms\Additional-Popups\Audio\pleaseWait.Designer.cs">
|
||||
<DependentUpon>pleaseWait.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms\Utilities\ModelsUtil.cs" />
|
||||
<Compile Include="Forms\Utilities\MaterialUtil.cs" />
|
||||
<Compile Include="Forms\Utilities\BehaviourUtil.cs" />
|
||||
<Compile Include="Forms\Utilities\AnimationUtil.cs" />
|
||||
<Compile Include="Forms\Utilities\ModelsResources.cs" />
|
||||
<Compile Include="Forms\Utilities\MaterialResources.cs" />
|
||||
<Compile Include="Forms\Utilities\BehaviourResources.cs" />
|
||||
<Compile Include="Forms\Utilities\AnimationResources.cs" />
|
||||
<Compile Include="Forms\Utilities\Skins\BoxEditor.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
|
||||
2
Vendor/OMI-Lib
vendored
2
Vendor/OMI-Lib
vendored
Submodule Vendor/OMI-Lib updated: e859271a0d...76ba41c740
Reference in New Issue
Block a user