protected override void ExpandCore() { try { if (_region == null) { _region = new RegionFile(_path); } for (int x = 0; x < 32; x++) { for (int z = 0; z < 32; z++) { if (_region.HasChunk(x, z)) { Nodes.Add(new RegionChunkDataNode(_region, x, z)); } } } } catch (Exception e) { if (FormRegistry.MessageBox != null) { FormRegistry.MessageBox("Not a valid region file."); } } }
public override bool CreateNode(TagType type) { if (!CanCreateTag(type)) { return(false); } if (FormRegistry.CreateNode != null) { CreateTagFormData data = new CreateTagFormData() { TagType = type, HasName = true, }; data.RestrictedNames.AddRange(_container.TagNamesInUse); if (FormRegistry.CreateNode(data)) { AddTag(data.TagNode, data.TagName); return(true); } } return(false); }
protected bool EditIntHexValue(TagNode tag) { if (FormRegistry.EditByteArray != null) { TagNodeIntArray iatag = tag.ToTagIntArray(); byte[] byteData = new byte[iatag.Length * 4]; for (int i = 0; i < iatag.Length; i++) { byte[] buf = BitConverter.GetBytes(iatag.Data[i]); Array.Copy(buf, 0, byteData, 4 * i, 4); } ByteArrayFormData data = new ByteArrayFormData() { NodeName = NodeName, BytesPerElement = 4, Data = byteData, }; if (FormRegistry.EditByteArray(data)) { iatag.Data = new int[data.Data.Length / 4]; for (int i = 0; i < iatag.Length; i++) { iatag.Data[i] = BitConverter.ToInt32(data.Data, i * 4); } IsDataModified = true; return(true); } } return(false); }
protected bool EditByteHexValue(TagNode tag) { if (FormRegistry.EditByteArray != null) { byte[] byteData = new byte[tag.ToTagByteArray().Length]; Array.Copy(tag.ToTagByteArray().Data, byteData, byteData.Length); ByteArrayFormData data = new ByteArrayFormData() { NodeName = NodeName, BytesPerElement = 1, Data = byteData, }; if (FormRegistry.EditByteArray(data)) { tag.ToTagByteArray().Data = data.Data; //Array.Copy(data.Data, tag.ToTagByteArray().Data, tag.ToTagByteArray().Length); IsDataModified = true; return(true); } } return(false); }
protected bool EditLongHexValue(TagNode tag) { if (FormRegistry.EditByteArray != null) { TagNodeLongArray latag = tag.ToTagLongArray(); byte[] byteData = new byte[latag.Length * 8]; for (int i = 0; i < latag.Length; i++) { byte[] buf = BitConverter.GetBytes(latag.Data[i]); Array.Copy(buf, 0, byteData, 8 * i, 8); } ByteArrayFormData data = new ByteArrayFormData() { NodeName = NodeName, BytesPerElement = 8, Data = byteData, }; if (FormRegistry.EditByteArray(data)) { latag.Data = new long[data.Data.Length / 8]; for (int i = 0; i < latag.Length; i++) { latag.Data[i] = BitConverter.ToInt64(data.Data, i * 8); } IsDataModified = true; return(true); } } return(false); }
protected bool EditScalarValue(TagNode tag) { if (FormRegistry.EditTagScalar != null) { if (FormRegistry.EditTagScalar(new TagScalarFormData(tag))) { IsDataModified = true; return(true); } } return(false); }
protected bool EditStringValue(TagNode tag) { if (FormRegistry.EditString != null) { StringFormData data = new StringFormData(tag.ToTagString().Data); if (FormRegistry.EditString(data)) { tag.ToTagString().Data = data.Value; IsDataModified = true; return(true); } } return(false); }
public override bool RenameNode() { if (CanRenameNode && TagParent != null && TagParent.IsNamedContainer && FormRegistry.EditString != null) { RestrictedStringFormData data = new RestrictedStringFormData(TagParent.NamedTagContainer.GetTagName(Tag)); data.RestrictedValues.AddRange(TagParent.NamedTagContainer.TagNamesInUse); if (FormRegistry.RenameTag(data)) { if (TagParent.NamedTagContainer.RenameTag(Tag, data.Value)) { IsDataModified = true; return(true); } } } return(false); }
public override bool RenameNode() { if (CanRenameNode && FormRegistry.EditString != null) { var data = new RestrictedStringFormData(_tree.Name ?? "") { AllowEmpty = true }; if (FormRegistry.RenameTag(data)) if (_tree.Name != data.Value) { _tree.Name = data.Value; IsDataModified = true; return true; } } return false; }