Worms4Editor/LibW4M/Data/InputMapping/InputMappingCollective.cs

56 lines
1.8 KiB
C#

using LibW4M.Data.WeaponFactory;
using LibXom.Data;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LibW4M.Data.InputMapping
{
public class InputMappingCollective : SaveDataCollective
{
public InputMappingCollective(W4SaveFile fileBelongs, XomContainer mainContainer) : base(fileBelongs, mainContainer)
{
}
public override void Create()
{
InputEventMappingData eventMapping = new InputEventMappingData(this.fileBelongs, this.fileBelongs.CreateContainer("InputEventMappingContainer"), false);
this.collectiveEntries.Add(eventMapping);
}
public override void Load()
{
int[] collective = mainContainer.Decompress();
for (int i = 0; i < collective[0]; i++)
{
InputEventMappingData eventMappingData = new InputEventMappingData(this.fileBelongs, this.fileBelongs.LookupContainerById(collective[i + 1]));
base.collectiveEntries.Add(eventMappingData);
}
}
public override void Save()
{
int len = this.Length;
int[] collective = new int[len + 1];
collective[0] = len;
for (int i = 0; i < len; i++)
{
InputEventMappingData eventMappingData = collectiveEntries[i] as InputEventMappingData;
if (eventMappingData is null) continue;
eventMappingData.Save();
collective[i + 1] = eventMappingData.mainContainer.Id;
}
mainContainer.CompressAndUpdate(collective);
}
private string GetDebuggerDisplay()
{
return ToString();
}
}
}