internal void WriteTo(BinaryWriter writer) { writer.Write((int)FormatVersion); writer.WriteBool(UnitData is not null); UnitData?.WriteTo(writer); writer.WriteBool(ItemData is not null); ItemData?.WriteTo(writer); writer.WriteBool(DestructableData is not null); DestructableData?.WriteTo(writer); writer.WriteBool(DoodadData is not null); DoodadData?.WriteTo(writer); writer.WriteBool(AbilityData is not null); AbilityData?.WriteTo(writer); writer.WriteBool(BuffData is not null); BuffData?.WriteTo(writer); writer.WriteBool(UpgradeData is not null); UpgradeData?.WriteTo(writer); }
protected virtual bool CreateAllDestructablesConditionSingleDoodad(Map map, DoodadData doodadData) { if (map is null) { throw new ArgumentNullException(nameof(map)); } if (doodadData is null) { throw new ArgumentNullException(nameof(doodadData)); } return(doodadData.ItemTableSets.Any() || doodadData.MapItemTableId != -1); }
protected virtual JassFunctionDeclarationSyntax ItemTableDropItems(Map map, WidgetData widgetData, int id) { if (map is null) { throw new ArgumentNullException(nameof(map)); } if (widgetData is null) { throw new ArgumentNullException(nameof(widgetData)); } var funcName = widgetData switch { DoodadData doodadData => doodadData.GetDropItemsFunctionName(id), UnitData unitData => unitData.GetDropItemsFunctionName(id), }; return(SyntaxFactory.FunctionDeclaration(SyntaxFactory.FunctionDeclarator(funcName), GetItemTableDropItemsStatements(map, widgetData.ItemTableSets, true))); }
public static void Write(this BinaryWriter writer, DoodadData mapDoodadData, MapWidgetsFormatVersion formatVersion, MapWidgetsSubVersion subVersion, bool useNewFormat) => mapDoodadData.WriteTo(writer, formatVersion, subVersion, useNewFormat);
public static string GetDropItemsFunctionName(this DoodadData doodadData, int id) { return(doodadData.MapItemTableId == -1 ? $"Doodad{id:D6}_DropItems" : $"ItemTable{doodadData.MapItemTableId:D6}_DropItems"); }
public static string GetDropItemsFunctionName(this DoodadData doodadData, int id) { return($"Doodad{id:D6}_DropItems"); }