public void Read(byte[] data) { this.amx = new Amx(data); var itemData = this.ItemData.ToArray(); if (itemData.Length % 3 != 0) { throw new InvalidOperationException($"Item data in script has invalid length \"{itemData.Length}\". Length must be divisible by 3."); } if (itemData.Length / 3 < ItemCounts[this.gameVersion]) { throw new InvalidOperationException($"Item data in script has invalid length \"{itemData.Length}\". Length must be at least {ItemCounts[ this.gameVersion ] * 3}."); } this.ScriptIdBase = ScriptIdBases[this.gameVersion]; this.Items = new List <OverworldItem>(); for (var i = 0; i < ItemCounts[this.gameVersion]; i++) { this.Items.Add(new OverworldItem { ItemId = itemData[i * 3], Unused1 = itemData[i * 3 + 1], ScriptIdOffset = itemData[i * 3 + 2], }); } }
public Task SaveAmxScript(AmxNames amxName, Amx amxScript) => this.SaveAmxFile(amxName, amxScript.Data);