protected override void Save(StackWriter writer, Map map) { foreach (var building in map.Buildings) { if (building is Core) { continue; } writer.PushItems(building.Pos, building.Type); if (building is Workshop w) { writer.PushItem(w.Recipe.Name); } if (building.Output is DirectProducer p) { writer.PushItem(p.Buffer); } if (building.Input is DirectConsumer c) { foreach (var buffer in c.Buffers) { writer.PushItems(buffer.Item, buffer.Buffer); } } writer.WriteStack(); } }
protected override void Save(StackWriter writer, Map map) { foreach (var route in map.Routes) { writer.PushItem(route.Id); writer.PushItem(route.Destinations.Count); foreach (var destination in route.Destinations) { var action = route.GetAction(destination); writer.PushItems(destination.Pos, action.Type, action.Item); } foreach (var node in route.Path) { writer.PushItem(node.Pos); } writer.WriteStack(); } }